|
|

楼主 |
发表于 2022-6-21 07:17
|
显示全部楼层
代码(自己机子上测试时.mama 选择器的 left: -214px 改为 margin: auto):
- <style type="text/css">
- .mama { left: -214px; width: 1024px; height: 560px; background: #eee; overflow: hidden; box-shadow: 0 4px 30px #000; position: relative; }
- .player { position: absolute; bottom: 10px; right: 10px; padding: 12px; cursor: pointer; }
- .vid { position: absolute; top: -55px; width: 1024px; height: 615px; object-fit: cover; }
- .circleTxt { position: relative; left: calc(50% - 150px); top: 120px; display: flex; justify-content: center; width: 300px; height: 300px; animation: fade 1.5s linear infinite alternate; }
- .circleTxt span { position: absolute; font: bold 1.8em / 150px sans-serif; text-align: center; text-shadow: 1px 1px 2px #111; border-radius: 50%; color:#0B3B39; display: block; }
- #lrcMsg { font: bold 1.5em / 2em sans-serif; display: block; color: #eee; text-shadow: 1px 1px 2px #000; }
- #meter { width: 160px; cursor: pointer; }
- @keyframes fade { to { opacity: .5; } }
- </style>
- <div class="mama">
- <video class="vid" src="https://img.tukuppt.com/video_show/14490244/00/16/53/5ea3335d1ac08.mp4" autoplay="autoplay" loop="loop" muted="muted"></video>
- <div class="circleTxt"></div>
- <div class="player">
- <span id="lrcMsg">中國風·致東籬</span>
- <meter id="meter" min="0" max="100" low="33" high="66" optimum = "70" value="0"></meter>
- </div>
- </div>
- <audio id="aud" src="https://music.163.com/song/media/outer/url?id=1386711437.mp3" autoplay="autoplay" loop="loop"></audio>
- <script language="javascript">
- let lrcMsg = document.querySelector('#lrcMsg'),
- player = document.querySelector('.player');
- aud = document.querySelector('#aud'),
- ct = document.querySelector('.circleTxt'),
- meter = document.querySelector('#meter');
- circleText('勝日尋芳泗水濱無邊光景一時新等閑識得東風面萬紫千紅總是春',ct);
- aud.addEventListener('timeupdate',() => playMsg());
- aud.addEventListener('ended',() => lrcKey = 0);
- player.onclick = () => aud.paused ? aud.play() : aud.pause();
- let playMsg = () => meter.value = 100 * aud.currentTime / aud.duration;
- function circleText(txt,ele) {
- let width = ele.clientWidth, total = txt.length; angle = 360 / total, str = "";
- for(j=0; j<total; j++) {
- let transform =`rotate(${angle * j}deg) translateY(-${width / 2}px) rotate(${360 - angle*j}deg)`;
- let color = `#${Math.random().toString(16).substr(-6)}`;
- str += `<span style="color: ${color}; transform: ${transform};">${txt.charAt(j)}</span>\n`;
- }
- ele.innerHTML = str;
- }
- </script>
复制代码
|
|