|
|

楼主 |
发表于 2022-7-31 16:55
|
显示全部楼层
全帖代码:
- <style>
- #papa { left: -214px; width: 1024px; height: 600px; background: gray url('https://638183.freep.cn/638183/Pic/81/summer.jpg') no-repeat center/cover; box-shadow: 4px 4px 24px #000; position: relative; }
- #mama { position: absolute; right: 100px; top: calc(50% - 120px); display: grid; place-items: center; width: 240px; height: 240px; cursor: pointer; }
- #tit { position: absolute; left: 26px; top: 26px; font: bold 20px / 20px sans-serif; color: #ccc; text-shadow: 1px 1px 2px rgba(0,0,0,.8); }
- .txt { position: absolute; width: 80px; height: 80px; font: bold 50px / 80px sans-serif; text-align: center; text-shadow: 2px 2px 4px rgba(0,0,0,.7); border-radius: 50%; color: snow; }
- </style>
- <div id="papa">
- <span id="tit">[清]吴绛雪 - 《咏四季·夏》</span>
- <div id="mama"><span id="sMsg" class="txt">1</span></div>
- </div>
- <script>
- let idx = 0, step = 0, milsecs = 1000;
- let strAr = '风凉夏日长香莲碧水动'.split(''), spans = [],
- sentences = [
- [5,6,7,8,9,0,1,1],
- [8,9,0,1,2,3,4,4],
- [4,3,2,1,0,9,8,8],
- [1,0,9,8,7,6,5,5],
- ];
- let aud = new Audio();
- aud.src = 'https://music.163.com/song/media/outer/url?id=434871406.mp3';
- aud.loop = true;
- aud.autoplay = true;
- let num = (min, max) => Math.floor(Math.random() * (max-min+1)) + min;
- for(let x in strAr) {
- let ele = document.createElement('span');
- ele.className = 'txt';
- ele.innerText = strAr[x];
- ele.style.transform = `rotate(${x*36}deg) translateY(120px) rotate(${-x*36}deg)`;
- mama.appendChild(ele);
- spans.push(ele);
- }
- txtColor()
- txtCircle();
- mama.onclick = () => aud.paused ? aud.play() : aud.pause();
- function txtColor() {
- for(let y of spans) {
- y.style.color = 'snow';
- y.style.border = 'none';
- }
- for(let x of sentences[idx]) spans[x].style.color = `rgb(${num(0,255)},${num(0,255)},${num(0,255)})`;
- sMsg.innerText = idx + 1;
- }
- function txtCircle() {
- let x = sentences[idx][step];
- spans[x].style.border = '1px solid lightgreen';
- step ++;
- if(step > 7) {
- step = 0;
- idx ++;
- if(idx >3) idx = 0;
- txtColor();
- }
- setTimeout(txtCircle, 1500);
- }
- </script>
复制代码
|
|