第一屏动画播放问题

第一屏动画播放问题

按照老师教的加入了

window.onload = function () {

    for (k in screenAnimateElements) {

        if(k == '.screen-1'){

            continue;

          }


        setAnimateElementInit(k);

    }

}

setTimeout(function(){playScreenAnimateDone('.screen-1');},100)

但刷新后第一屏动画失效了。

如果不加第一段代码,只加第二段代码,第一屏动画播放时间很短,而且只有大标题有动画,其他两个动画失效。

如果不写这两句,直接放到window.onscroll中第一屏动画正常,是为什么?

正在回答

登陆购买课程后可参与讨论,去登陆

1回答

同学你好,问题解答如下:

1. 下图中的代码,要在html结构上,添加init类名,才能生效:

http://img1.sycdn.imooc.com//climg/5f6490a10908ffa005540220.jpg

http://img1.sycdn.imooc.com//climg/5f6490a309dd2d8e05540080.jpg

老师这里测试,效果是正常的,没有出现同学所说的失效的情况。建议同学检查一下代码书写是否正确,或者新建一个问题,将全部代码粘贴出来,老师测试一下。

2. 如果html结构上,手动添加了init类名,并且不写第一段代码,则会造成html结构上,同时存在init和done两个类名,如下:http://img1.sycdn.imooc.com//climg/5f6490b609b916e710300240.jpg

两个类名,权重相同,谁写在样式的下面,元素就受谁控制;因此第二个元素,最终受到的是init样式的影响,因此没有动画效果:

http://img1.sycdn.imooc.com//climg/5f6490c8099f28a307130613.jpg

3. 如果不写这两句代码,将playScreenAnimateDone('.screen-1')写在onscroll事件中,则滚动页面的时候,会正常调用第一屏动画,所以这是正常的现象。

祝学习愉快!

  • 优秀前端选手 提问者 #1
    谢谢老师,确实是忘了加入Init样式
    2020-09-20 18:58:28
问题已解决,确定采纳
还有疑问,暂不采纳

恭喜解决一个难题,获得1积分~

来为老师/同学的回答评分吧

0 星
请稍等 ...
意见反馈 帮助中心 APP下载
官方微信

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师