听的一脸萌比
前面讲过的js他就一直重复,前面课没讲过的js,提都不提一句就过去了,你们这课真是连着的么?
65
收起
正在回答 回答被采纳积分+1
2回答
慕雪7895852
2017-03-17 20:04:01
老师在这里使用了一种我们不常见的函数表达方式。首先
var screenAnimateElements={
'.screen-1':[
'.screen-1__heading',
'.screen-1__phone',
'.screen-1__shadow',
]
}上面的代码是创建一个对象,属性是第一屏的大盒子的“class属性值(选择器)”,而属性值则是大盒子下每一个小模块元素的“class属性值”animateElements就是一个由选择器组成的数组
var animateElements=screenAnimateElements[screencls]
而上面一行代码的作用是获取以每一个小模块元素class属性值组成的数组 如下:
[ '.screen-1__heading', '.screen-1__phone','.screen-1__shadow']
当我们点击屏幕时,setScreenAnimate(screenCls)函数开始通过 var element=document.querySelector(animateElements[i]);来获取每一个小模块的元素(querySelector ()方法等价于getElementsByClassName()),然后再通过 setwAttribute()方法来为每一个小模块的元素添加选择器,注意这里是添加而不是替换,因为替换会破坏已有 选择器所设置的html样式; 而var isSetAnimateClass=false;中的isSetAnimateClass变量其实是用于存储初始化子元素的动画状态, 因为这里每个元素在css里面设置了两个动画,这歌变量是为了后面if()语句的判断而用 老师为了直观,采用语意化的方式来自定义变量所以显得有点复杂,其实这个变量可以自行定义,不用这么复杂,完全不会 影响代码结果 希望对你有帮助!如果有疑问可以继续提问。
HTML5与CSS3实现动态网页 2018
- 参与学习 1887 人
- 提交作业 4643 份
- 解答问题 5760 个
有HTML和CSS基础,却不知道如何进阶?本路径带你通过系统学习,完成从“会做网页”到“做出好的动态网页”的蜕变,迈出成为前端工程师的第一步。
了解课程
恭喜解决一个难题,获得1积分~
来为老师/同学的回答评分吧
0 星