效果图
准备
close.png
music.png
自行找一个音频,文件摆放位置如下
代码和分析
html
1 | xml复制代码<!DOCTYPE html> |
分析
- 定义一个audio标签元素用于存放音频
- 定义一个类名为music-btn off用于存放音乐开关
- 定义一个类名为view的容器:
- 在该容器内定义sun容器,用于存放背景中的太阳
- 在该容器内定义art容器,在art容器中再定义swing容器,用于存放秋千和人,在swing容器中再定义leg2,neck,head,leg1分别用于存放腿2,脖子,头,腿1
- 在leg2和leg1再定义jiojio容器,用于存放脚
- 在head容器中再定义part容器,用于存放头发
- 定义paras容器,用于存放文字,里面通过p和em标签元素来实现效果,设置style=”transition-delay: xxxs;” 来实现文字慢慢出现的效果
- css*
1 | css复制代码*{ |
分析
- 秋千动画部分实现是通过@keyframes来实现,设置分别在0%,50%,100%时绕Z轴旋转的角度:
1 | css复制代码 |
然后在秋千swing的css中通过animation来实现:
1 | css复制代码 animation: ani_qiuqian 6s cubic-bezier(0.455,0.03,0.515,0.955) infinite; |
- leg2和leg1,head也是同样的操作
- js*
1 | ini复制代码 //播放音乐 |
分析
- 通过document.querySelector(‘xxx’) 来获取viewSpecial(文字容器),musicBtn容器(音乐按钮容器)
- 通过document.getElementById(‘xxx’) 来获取bgMusic容器(音乐容器)
- 定义defaultMusicPlay = true来实现音乐开关和图标切换
- 给 musicBtn绑定一个监听事件addEventListener,当点击的时候触发回调函数,如果defaultMusicPlay为true则音乐播放并且显示close.png,如果为false,则关闭音乐并显示music.png,以下代码可以实现音乐的开关和图片的切换
1 | ini复制代码defaultMusicPlay = !defaultMusicPlay; |
- 下面代码可以实现如果有’off’自动移除;如果没有自动添加
1 | arduino复制代码musicBtn.classList.toggle('off'); |
最后
如果有收获的话,可以给小编点个赞鼓励鼓励嘛,有错误的话希望可以提出,我一定虚心请教,继续努力,带来更优质的文章!
本文转载自: 掘金