醉美水芙蓉 发表于 2022-9-20 20:22

片片枫叶情

本帖最后由 醉美水芙蓉 于 2022-9-19 21:36 编辑 <br /><br /><style>
#papa { left: -214px; width: 1024px; height: 640px; box-shadow: 3px 3px 20px #000; position: relative; }
#canvas { position: absolute; top: 0; left: 0; }
#disc { position: absolute; width: 40px; height: 40px; left: 10px; top: 10px; background: conic-gradient(red,orange,yellow,green,teal,blue,purple); mask: radial-gradient(transparent 4px,red 0); -webkit-mask: radial-gradient(transparent 4px,red 0); border-radius: 50%; cursor: pointer; animation: rot 2s linear infinite; }
#imgSnow, #bgSnow { display: none; }
#tit { position: absolute; left: 60px; top: 10px;font: bold 22px / 40px sans-serif; color: snow; text-shadow: 2px 2px 4px black; }
@keyframes rot { to { transform: rotate(360deg); } }
</style>

<div id="papa">
        <canvas id="canvas"></canvas>
        <img id="imgSnow" src="https://www.huachaowang.com/data/attachment/forum/202209/16/123530ufhtrajxku4kzde9.png" alt="">
        <img id="bgSnow" src="https://pic.imgdb.cn/item/63286f0716f2c2beb1d69caa.jpg" alt="">
        <span id="disc"></span>
        <span id="tit">片片枫叶情</span>
</div>

<script>
let aud = new Audio();
aud.src = 'https://www.qqmc.com/up/kwlink.php?id=56250&.mp3';
aud.loop = true;
aud.autoplay = true;
disc.style.animationPlayState = aud.paused ? 'paused' : 'running';
disc.onclick = () => aud.paused ? aud.play() : aud.pause();
aud.addEventListener('playing',()=> disc.style.animationPlayState = 'running');
aud.addEventListener('pause',()=> disc.style.animationPlayState = 'paused');

(function () {
        let ctx = canvas.getContext('2d');
        let snowArray = {}; //雪花对象
        let snowIndex = 0; //标识符
        let setting = {
                num: 30, //数量
                snowSize: 20, //大小
                startX: Math.random() * canvas.width, //起始横坐标
                startY: 0, //起始纵坐标
                vy: 0.01
        }

        canvas.width = papa.offsetWidth;
        canvas.height = papa.offsetHeight;
       
        function snow() {
                this.x = Math.random() * canvas.width; // 起始横坐标
                this.y = setting.startY; // 起始纵坐标
                this.size = setting.snowSize + Math.random() * 10 - 10; //大小
                this.vx = Math.random() * 3 - 2; //横坐标偏移量
                this.vy = Math.random() * 10; //纵坐标偏移量
                this.life = 0;
                this.maxLife = 100;
                this.id = snowIndex;
                snowArray = this; //当前信息保存至对象snowArray
                snowIndex ++;
        }

        snow.prototype.draw = function () {
                this.x += this.vx;
                this.y += this.vy;
                this.vy += setting.vy;
                this.life ++;
                if (this.y > canvas.height * 0.9 - 20 || this.life >= this.maxLife) snowArray;
                ctx.drawImage(imgSnow, this.x, this.y, this.size, this.size)
        }

        function render() {
                ctx.drawImage(bgSnow, 0, 0, canvas.width, canvas.height);
                for (let j = 0; j < setting.num; j++) {
                        if (Math.random() > 0.97) new snow();
                }
                for (let j in snowArray) {
                        snowArray.draw();
                }
                requestAnimationFrame(render);
        }
        render();
})();
</script>

醉美水芙蓉 发表于 2022-9-20 20:23

<style>
#papa { left: 214px; width: 1024px; height: 640px; box-shadow: 3px 3px 20px #000; position: relative; }
#canvas { position: absolute; top: 0; left: 0; }
#disc { position: absolute; width: 40px; height: 40px; left: 10px; top: 10px; background: conic-gradient(red,orange,yellow,green,teal,blue,purple); mask: radial-gradient(transparent 4px,red 0); -webkit-mask: radial-gradient(transparent 4px,red 0); border-radius: 50%; cursor: pointer; animation: rot 2s linear infinite; }
#imgSnow, #bgSnow { display: none; }
#tit { position: absolute; left: 60px; top: 10px;font: bold 22px / 40px sans-serif; color: snow; text-shadow: 2px 2px 4px black; }
@keyframes rot { to { transform: rotate(360deg); } }
</style>

<div id="papa">
        <canvas id="canvas"></canvas>
        <img id="imgSnow" src="https://www.huachaowang.com/data/attachment/forum/202209/16/123530ufhtrajxku4kzde9.png" alt="">
        <img id="bgSnow" src="https://pic.imgdb.cn/item/63286f0716f2c2beb1d69caa.jpg" alt="">
        <span id="disc"></span>
        <span id="tit">片片枫叶情</span>
</div>
<script>
<div id="papa">
      <span id="lrcbox">Loading ...</span>
      <canvas id="canv" width="1024" height="350"></canvas>
      <span id="disc"></span>
</div>

<script>
let ctx = canv.getContext('2d');
let w = canv.width, h = canv.height;
let num = (m, n) => Math.floor(Math.random() * (n - m + 1) + m);
let stars = new Array(500), meteors = new Array(10);
let aud = new Audio();
let lrcAr =   [
        ['0.03','张智霖、许秋怡 - 片片枫叶情'],
        ['1.01','作词:潘伟源'],
        ['1.03','作曲:邓文杰'],
        ['16.03','LRC编辑:醉美水芙蓉'],
        ['19.10','女:'],
        ['22.04','片片红叶转'],
        ['26.06','它低叹再会了这段缘'],
        ['32.02','片片红叶转'],
        ['36.05','回头望告别了苦恋'],
        ['42.00','爱似秋枫叶'],
        ['46.03','无力再灿烂再燃'],
        ['51.07','爱似秋枫叶'],
        ['56.01','凝聚了美丽却苦短'],
        ['60.00','男:'],
        ['61.09','片片红叶转'],
        ['65.09','它低叹再会了这段缘'],
        ['71.04','片片红叶转'],
        ['75.06','回头望告别了苦恋'],
        ['81.02','爱似秋枫叶'],
        ['85.05','无力再灿烂再燃'],
        ['91.00','爱似秋枫叶'],
        ['95.03','凝聚了美丽却苦短'],
        ['99.05','女:'],
        ['103.05','片片叶儿随梦却倾刻飘远'],
        ['108.02','相看对泣竟默然'],
        ['113.00','片片叶儿携着我此生所爱'],
        ['117.10','一飘再飘梦更远'],
        ['123.05','男:'],
        ['123.06','远远夕阳陪着你此刻归去'],
        ['127.07','心中爱火怎复燃'],
        ['132.07','远远夕阳携着我此生所爱'],
        ['137.06','秋风带走梦片片'],
        ['142.10','女:'],
        ['162.01','片片红叶转'],
        ['166.03','它低叹再会了这段缘'],
        ['171.08','片片红叶转'],
        ['176.02','回头望告别了苦恋'],
        ['179.10','男:'],
        ['181.06','爱似秋枫叶'],
        ['186.00','无力再灿烂再燃'],
        ['191.05','爱似秋枫叶'],
        ['195.08','凝聚了美丽却苦短'],
        ['200.02','女:'],
        ['203.10','片片叶儿随梦却倾刻飘远'],
        ['208.06','相看对泣竟默然'],
        ['213.05','片片叶儿携着我此生所爱'],
        ['218.04','一飘再飘梦更远'],
        ['223.07','男:'],
        ['223.09','远远夕阳陪着你此刻归去'],
        ['228.02','心中爱火怎复燃'],
        ['233.01','远远夕阳携着我此生所爱'],
        ['238.00','秋风带走梦片片'],
        ['243.04','女:'],
        ['243.06','片片叶儿随梦却倾刻飘远'],
        ['247.09','相看对泣竟默然'],
        ['252.06','片片叶儿携着我此生所爱'],
        ['257.07','一飘再飘梦更远'],
        ['262.10','男:'],
        ['263.02','远远夕阳陪着你此刻归去'],
        ['267.05','心中爱火怎复燃'],
        ['272.04','远远夕阳携着我此生所爱'],
        ['277.06','谢谢欣赏!']
];
aud.loop = true;
aud.autoplay = true;
aud.src = 'https://www.qqmc.com/up/kwlink.php?id=56250&.mp3';
disc.style.animationPlayState = aud.paused ? 'paused' : 'running';
disc.onclick = () => aud.paused ? aud.play() : aud.pause();
aud.addEventListener('playing',()=> disc.style.animationPlayState = 'running');
aud.addEventListener('pause',()=> disc.style.animationPlayState = 'paused');

(function () {
        let ctx = canvas.getContext('2d');
        let snowArray = {}; //雪花对象
        let snowIndex = 0; //标识符
        let setting = {
                num: 30, //数量
                snowSize: 20, //大小
                startX: Math.random() * canvas.width, //起始横坐标
                startY: 0, //起始纵坐标
                vy: 0.01
        }

        canvas.width = papa.offsetWidth;
        canvas.height = papa.offsetHeight;
       
        function snow() {
                this.x = Math.random() * canvas.width; // 起始横坐标
                this.y = setting.startY; // 起始纵坐标
                this.size = setting.snowSize + Math.random() * 10 - 10; //大小
                this.vx = Math.random() * 3 - 2; //横坐标偏移量
                this.vy = Math.random() * 10; //纵坐标偏移量
                this.life = 0;
                this.maxLife = 100;
                this.id = snowIndex;
                snowArray = this; //当前信息保存至对象snowArray
                snowIndex ++;
        }

        snow.prototype.draw = function () {
                this.x += this.vx;
                this.y += this.vy;
                this.vy += setting.vy;
                this.life ++;
                if (this.y > canvas.height * 0.9 - 20 || this.life >= this.maxLife) snowArray;
                ctx.drawImage(imgSnow, this.x, this.y, this.size, this.size)
        }

        function render() {
                ctx.drawImage(bgSnow, 0, 0, canvas.width, canvas.height);
                for (let j = 0; j < setting.num; j++) {
                        if (Math.random() > 0.97) new snow();
                }
                for (let j in snowArray) {
                        snowArray.draw();
                }
                requestAnimationFrame(render);
        }
        render();
})();
</script>

马黑黑 发表于 2022-9-20 20:24

{:4_199:}

醉美水芙蓉 发表于 2022-9-20 20:24

@马黑黑 请黑黑老师帮忙看看加入歌词错在哪里?

醉美水芙蓉 发表于 2022-9-20 20:26

马黑黑 发表于 2022-9-20 20:24


黑黑老师看看我的代码错在哪儿,歌词加不上去?

马黑黑 发表于 2022-9-20 20:27

本帖最后由 马黑黑 于 2022-9-20 20:31 编辑

醉美水芙蓉 发表于 2022-9-20 20:24
@马黑黑 请黑黑老师帮忙看看加入歌词错在哪里?
你在下面的代码,多出了 <script>,这是致错误,要删掉:

<script>
<div id="papa">
      <span id="lrcbox">Loading ...</span>
      <canvas id="canv" width="1024" height="350"></canvas>
      <span id="disc"></span>
</div>

同时,你的代码重组也有错误,需要把红色部分删除掉:

<div id="papa">
       <canvas id="canvas"></canvas>
      <img id="imgSnow" src="https://www.huachaowang.com/data/attachment/forum/202209/16/123530ufhtrajxku4kzde9.png" alt="">
      <img id="bgSnow" src="https://pic.imgdb.cn/item/63286f0716f2c2beb1d69caa.jpg" alt="">
      <span id="disc"></span>
      <span id="tit">片片枫叶情</span>
</div>


<div id="papa">
      <span id="lrcbox">Loading ...</span>
      <canvas id="canv" width="1024" height="350"></canvas>
      <span id="disc"></span>
</div>

马黑黑 发表于 2022-9-20 20:32

醉美水芙蓉 发表于 2022-9-20 20:26
黑黑老师看看我的代码错在哪儿,歌词加不上去?

6楼大致说了一点,没有全面细看。

将多种代码柔和在一起需要理解每一组代码的含义,取舍是必须的。

红影 发表于 2022-9-20 20:50

这漂亮的枫叶,欣赏水芙蓉好帖{:4_204:}

醉美水芙蓉 发表于 2022-9-20 21:07

红影 发表于 2022-9-20 20:50
这漂亮的枫叶,欣赏水芙蓉好帖

谢谢红影美女鼓励!

千羽 发表于 2022-9-20 22:10

醉美水芙蓉 发表于 2022-9-20 20:23


秋意浓浓的唯美画面,播放器漂亮{:4_187:}

醉美水芙蓉 发表于 2022-9-20 22:27

千羽 发表于 2022-9-20 22:10
秋意浓浓的唯美画面,播放器漂亮

只做好一半,歌词没有做出来!

醉美水芙蓉 发表于 2022-9-21 11:45

马黑黑 发表于 2022-9-20 20:32
6楼大致说了一点,没有全面细看。

将多种代码柔和在一起需要理解每一组代码的含义,取舍是必须的。

很遗憾!黑黑老师讲了半天,学生还是没有能够把歌词做出来,删除了多余代码,音乐和特效都有了,只是歌词还不能显示!

加林森 发表于 2022-9-21 11:50

挺不错的。制作漂亮了。{:4_199:}

马黑黑 发表于 2022-9-21 12:16

醉美水芙蓉 发表于 2022-9-21 11:45
很遗憾!黑黑老师讲了半天,学生还是没有能够把歌词做出来,删除了多余代码,音乐和特效都有了,只是歌词 ...

JS代码,彼此间有关联,要将两个不同模块的代码融合在一起,需要对代码有清晰的认识,东拼西凑的操作只能凭运气

醉美水芙蓉 发表于 2022-9-21 17:31

加林森 发表于 2022-9-21 11:50
挺不错的。制作漂亮了。

谢谢队长鼓励!

醉美水芙蓉 发表于 2022-9-21 17:32

马黑黑 发表于 2022-9-21 12:16
JS代码,彼此间有关联,要将两个不同模块的代码融合在一起,需要对代码有清晰的认识,东拼西凑的操作只能 ...

黑黑老师说得对,这真的是个技术活!

东篱闲人 发表于 2022-9-21 17:36

红彤彤的一片,红火漂亮!{:5_116:}

东篱闲人 发表于 2022-9-21 17:36

那飘落的红叶俺还以为是山楂呢。。。。{:5_117:}

马黑黑 发表于 2022-9-21 18:14

醉美水芙蓉 发表于 2022-9-21 17:32
黑黑老师说得对,这真的是个技术活!

嗯,需要至少一点点JS基础和写代码的基本技能

加林森 发表于 2022-9-21 19:21

醉美水芙蓉 发表于 2022-9-21 17:31
谢谢队长鼓励!

不客气的。
页: [1] 2
查看完整版本: 片片枫叶情