老师我试着自己重新编了一下js,有一点问题
<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>Document</title> <link rel="stylesheet" type="text/css" href="jstext.css"> <link rel="stylesheet" type="text/css" href="animate.css"> </head> <body> <!-- 头部部分 --> <header class='header'> <div class='header__logo header__logo_animate_init'>H5实战页面</div> <div class='header__nav header__nav_animate_init'> <a href="javescript:;" class='header__nav-item'>实战课程</a> <a href="javescript:;" class='header__nav-item'>商业案例</a> <a href="javescript:;" class='header__nav-item'>课程体系</a> <a href="javescript:;" class='header__nav-item'>集成环境</a> <a href="javescript:;" class='header__nav-item'>云端学习</a> <a href="javescript:;" class='header__nav-item header__nav-item-button'>即刻学习</a> <div class='header__nav__line'></div> </div> </header> <!-- 第一屏 --> <div class='screen-1'> <div class='screen-1__heading screen-1__heading_animate_init'>实战课重磅上线</div> <div class='screen-1__subheading screen-1__subheading_animate_init'>一键云学习,还在等待什么</div> </div> <!-- 第二屏 --> <div class='screen-2'> <div class='screen-2__heading'>每门课都是真实商业案例</div> <div class='screen-2__line'></div> <div class='screen-2__subheading'>真实案例,真实场景,在实站中实践、操作、调试<br> 大牛带你体验BAT真实开发流程,所有开发过程为你一一呈现。 </div> <div class='screen-2__picture-1'></div> <div class='screen-2__picture-2'></div> <div class='screen-2__picture-3'></div> </div> <!-- 第三屏 --> <div class='screen-3'> <div class='screen-3__wrap'> <div class='screen-3__heading'>强大的语言课程体系支持</div> <div class='screen-3__line'></div> <div class='screen-3__subheading'>学习环境与课程轻松对接,安调、调试、写入、部署、运行,一站式解决<br>,让你体验开发全流程</div> <div class='screen-3__lang'> <div class='screen-3__lang-item screen-3__lang-item-1'>HTMLS</div> <div class='screen-3__lang-item screen-3__lang-item-2'>PHP</div> <div class='screen-3__lang-item screen-3__lang-item-3'>JAVA</div> <div class='screen-3__lang-item screen-3__lang-item-4'>Python</div> <div class='screen-3__lang-item screen-3__lang-item-5'>Node.js</div> </div> </div> </div> <!-- 第四屏 --> <div class='screen-4'> <div class='screen-4__heading'>省去本地复杂的环境搭建</div> <div class='screen-4__line'></div> <div class='screen-4__subheading'>你可以告别在虚拟机中调试开发了</div> <div class='screen-4__wrap'> <div class='screen-4__wrap__item screen-4__wrap__item-1'> <div class='screen-4__wrap__item-text'>实战课程集成开发环境</div> </div> <div class='screen-4__wrap__item screen-4__wrap__item-2'> <div class='screen-4__wrap__item-text'>内置终端命令行</div> </div> <div class='screen-4__wrap__item screen-4__wrap__item-3'> <div class='screen-4__wrap__item-text'>编译你的应用程序</div> </div> <div class='screen-4__wrap__item screen-4__wrap__item-4'> <div class='screen-4__wrap__item-text'>通过云端服务输出效果</div> </div> </div> </div> <!-- 第五屏 --> <div class='screen-5'> <div class='screen-5__heading'>云端学习可以这样简单</div> <div class='screen-5__line'></div> <div class='screen-5__subheading'>看视频,敲代码一气呵成。结合慕课网为你提供的云端学习工具,所见即所得,从此学习不一样。</div> <div class='screen-5__picture'></div> </div> <!-- 第六屏 --> <div class='screen-6'> <a href="javescript:;" class='screen-6__a'>继续了解学习体验</a> </div> <footer class='footer'> <div class='footer__wrap'> <div class='footer__wrap-top'> <a href="javascript:;">网站首页</a> <a href="javascript:;">人才招聘</a> <a href="javascript:;">联系我们</a> <a href="javascript:;">高校联盟</a> <a href="javascript:;">关于我们</a> <a href="javascript:;">讲师招募</a> <a href="javascript:;">意见反馈</a> <a href="javascript:;">友情链接</a> </div> <div class='footer__wrap-bottom'>Copyright © 2015 imooc.com All Rights Reserved | 京ICP备 13046642号-2</div> </div> </footer> <div class='sidenav'> <a href="javascript:;" class='sidenav__item'>字</a> <a href="javascript:;" class='sidenav__item'>看</a> <a href="javascript:;" class='sidenav__item'>不</a> <a href="javascript:;" class='sidenav__item'>清</a> <a href="javascript:;" class='sidenav__item'>呐</a> </div> <script type="text/javascript" src='jstext.js'></script> </body> </html> css *{ margin:0; padding:0; border:none; } body{ font-family: '微软雅黑'; } a{ text-decoration: none; } /*头部部分*/ .header{ width:100%; height:60px; background:rgba(0,0,0,0); position: relative; float:left; z-index:3; } .header_status_black{ background:rgba(255,255,255,.5); position: fixed; top: 0; } .header_status_black .header__logo, .header_status_black .header__nav-item{ color:#444; } .header_status_black .header__nav-item-button{ color:#fff; } .header__logo{ width:200px; height:60px; line-height: 60px; font-size: 20px; color:#fff; padding-left:50px; background:url(图片素材/img/logo.png) left center no-repeat; background-size: 40px 40px; position: absolute; top:0; left:10px; } .header__nav{ height:40px; position: absolute; right:30px; top: 50%; margin-top:-20px; float:right; } .header__nav-item{ width:48px; height: 40px; line-height: 40px; font-size:12px; color:#fff; padding-left:40px; display: block; float:left; } .header__nav-item-button{ width:96px; height:40px; background-color: #f00; border-radius: 3px; margin-left:40px; } .header__nav__line{ width:48px; height:2px; position:absolute; bottom:0; left:40px; background:red; transition: all .5s; } .header_status_black .header__nav-item_status_active{ color:#000; font-weight: bold; } /*第一屏*/ .screen-1{ height:637px; background: url(图片素材/img/sc1.jpg) center no-repeat; background-size:cover; } .screen-1__heading{ font-size:40px; text-align: center; padding-top: 240px; color:#fff; } .screen-1__subheading{ font-size: 15px; text-align: center; padding-top:33px; color:#fff; } /*第二屏*/ .screen-2{ height:640px; background-color: #f3f5f7; position: relative; } .screen-2__heading{ font-size:40px; font-weight: bold; text-align: center; padding-top: 90px; color:#07111b; } .screen-2__line{ width:50px; height:3px; background-color: #f00; position: absolute; top:168px; left:50%; margin-left: -25px; } .screen-2__subheading{ height:20px; line-height: 20px font-size: 15px; text-align: center; padding-top:60px; color:#07111b; } .screen-2__picture-1{ width:750px; height:361px; background:url(图片素材/img/sc2.png); position: absolute; left:50%; bottom:0; margin-left:-375px; } .screen-2__picture-2{ width:275px; height:380px; background:url(图片素材/img/sc2-1.png); position: absolute; left:50%; bottom:0; margin-left:-128.5px; z-index:3; } .screen-2__picture-3{ width:266px; height:205px; background:url(图片素材/img/sc2-2.png); position: absolute; left:50%; bottom:100px; margin-left:-30px; } /*第三屏*/ .screen-3{ background:url(图片素材/img/sc3.png) #2b333b 130px center no-repeat; background-size: 570px 620px; height:640px; } .screen-3__wrap{ width:1200px; height:640px; margin:0 auto; position:relative; } .screen-3__heading{ font-size:40px; padding: 214px 0 0 670px; color:#fff; } .screen-3__line{ width:50px; height:3px; background-color: #f00; position: absolute; top:295px; left:670px; } .screen-3__subheading{ font-size: 15px; padding: 59px 0 0 670px; color:#fff; } .screen-3__lang{ height:70px; position: absolute; bottom:48px; left:670px; } .screen-3__lang-item{ width:60px; font-size:10px; height:60px; line-height: 60px; text-align: center; border-radius: 50%; float:left; margin-right: 36px; } .screen-3__lang-item-1{ border:3px solid #1f5975; color:#17b0ff; } .screen-3__lang-item-2{ border:3px solid #424d76; color:#7888fd; } .screen-3__lang-item-3{ border:3px solid #6b4146; color:#ff584c; } .screen-3__lang-item-4{ border:3px solid #29535f; color:#24c7ca; } .screen-3__lang-item-5{ border:3px solid #3e4e40; color:#90bd56; } /*第四屏*/ .screen-4{ height:640px; background-color: #f3f5f7; position: relative; } .screen-4__heading{ font-size:40px; font-weight: bold; text-align: center; padding-top: 90px; color:#07111b; } .screen-4__line{ width:50px; height:3px; background-color: #f00; position: absolute; top:168px; left:50%; margin-left: -25px; } .screen-4__subheading{ height:20px; line-height: 20px font-size: 15px; text-align: center; padding-top:60px; color:#07111b; } /*第四屏下方四个图片*/ .screen-4__wrap{ width:1110px; height:120px; position: absolute; top:290px; left:50%; margin-left:-540px; } .screen-4__wrap__item{ float:left; } .screen-4__wrap__item-text{ width: 180px; color: #07111b; position: absolute; bottom:0; text-align: center; } .screen-4__wrap__item-1{ width:180px; height:120px; margin-right:130px; background:url(图片素材/img/sc4-1.png) center top no-repeat; } .screen-4__wrap__item-2{ width:180px; height:120px; margin-right:130px; background:url(图片素材/img/sc4-2.png) center top no-repeat; } .screen-4__wrap__item-3{ width:180px; height:120px; margin-right:130px; background:url(图片素材/img/sc4-3.png) center top no-repeat; } .screen-4__wrap__item-4{ width:180px; height:120px; background:url(图片素材/img/sc4-4.png) center top no-repeat; } /*第五屏*/ .screen-5{ height:640px; background:url(图片素材/img/sc5.jpg) center no-repeat; background-size: cover; position: relative; } .screen-5__heading{ font-size:40px; font-weight: bold; text-align: center; padding-top: 334px; color:#fff; } .screen-5__line{ width:50px; height:3px; background-color: #fff; position: absolute; top:412px; left:50%; margin-left: -25px; } .screen-5__subheading{ height:20px; line-height: 20px font-size: 15px; text-align: center; padding-top:60px; color:#fff; } .screen-5__picture{ width:200px; height:200px; background:url(图片素材/img/sc5-1.png); position: absolute; left:50%; top:100px; margin-left:-100px; } /*第六屏*/ .screen-6{ height:200px; background-color: #fff; position: relative; } .screen-6__a{ color:#14191e; width:240px; height:60px; line-height: 60px; text-align: center; border:1px solid #707070; border-radius: 3px; display: block; position: absolute; top:50%; left:50%; margin-top: -30px; margin-left: -120px; } .screen-6__a:hover{ color:red; } /*尾部*/ .footer{ height:105px; background:#000; text-indent: center; position: relative; } .footer__wrap{ width:660px; height:45px; position: absolute; top:50%; left:50%; margin-top:-22.5px; margin-left: -330px; } .footer__wrap-top{ height:30px; } .footer__wrap-top>a{ margin-right: 30px; display: inline-block; height:20px; line-height: 20px; font-size:11px; color:#bbc096; } .footer__wrap-bottom{ height:30px; line-height: 30px font-size:16px; color:#527d82; text-align: center; } /*侧边导航栏*/ .sidenav{ position: fixed; right: 0; bottom: 200px; padding:10px; z-index:3; background:#fff; box-shadow: 0 0 5px rgba(0,0,0,.5); } .sidenav__item{ width:20px; height:25px; line-height: 25px; text-align: center; display: block; color:#000; margin-bottom: 5px; } .sidenav__item_active{ color:red; } 动画css /*头部动画*/ .header__logo, .header__nav, .header_status_black{ transition: all 1s; } .header__logo_animate_init, .header__nav_animate_init{ transform:translate(0,-100%); opacity:0; } .header__logo_animate_done, .header__nav_animate_done{ transform:translate(0,0); opacity:1; } /*screen-1动画*/ .screen-1__heading{ transition: all 1s; } .screen-1__subheading{ transition: all 1s .5s; } .screen-1__heading_animate_init, .screen-1__subheading_animate_init{ transform:translate(0,100%); opacity:0; } .screen-1__heading_animate_done, .screen-1__subheading_animate_done{ transform:translate(0,0); opacity:1; } /*第二屏动画*/ .screen-2__heading{ transition: all 1s; } .screen-2__line, .screen-2__subheading, .screen-2__picture-2{ transition:all 1s .2s; } .screen-2__picture-3{ transition:all 1s 1s; } .screen-2__heading_animate_init, .screen-2__subheading_animate_init{ transform:translate(0,100%); opacity:0; } .screen-2__heading_animate_done, .screen-2__subheading_animate_done{ transform:translate(0,0); opacity:1; } .screen-2__line_animate_init, .screen-2__picture-2_animate_init{ opacity:0; } .screen-2__line_animate_done, .screen-2__picture-2_animate_done{ opacity:1; } .screen-2__picture-3_animate_init{ transform: translate(0,100%); opacity:0; } .screen-2__picture-3_animate_done{ -webkit-animation:tb 1s 1s; } @-webkit-keyframes tb{ 0%{transform: translate(0,100%);} 60%{transform: translate(0,0);} 90%{transform: translate(0,5%);} 100%{transform: translate(0,0%);} } /*第三屏*/ .screen-3__heading{ transition: all 1s; } .screen-3__line, .screen-3__subheading{ transition: all 1s .5s; } .screen-3__lang{ transition: all 1s 1s; } .screen-3__heading_animate_init, .screen-3__subheading_animate_init{ transform:translate(0,100%); opacity:0; } .screen-3__heading_animate_done, .screen-3__subheading_animate_done{ transform:translate(0,0); opacity:1; } .screen-3__line_animate_init{ opacity:0; } .screen-3__line_animate_done{ opacity:1; } .screen-3__lang_animate_init{ transform: translate(0,100%); opacity:0; } .screen-3__lang_animate_done{ -webkit-animation:tb 1s 1s; } /*.screen-3__lang-item-1_animate_init, .screen-3__lang-item-2_animate_init, .screen-3__lang-item-3_animate_init, .screen-3__lang-item-4_animate_init, .screen-3__lang-item-5_animate_init{ transform: translate(0,100%); opacity:0; } .screen-3__lang-item-1_animate_done, .screen-3__lang-item-2_animate_done, .screen-3__lang-item-3_animate_done, .screen-3__lang-item-4_animate_done, .screen-3__lang-item-5_animate_done{ -webkit-animation:tb 1s 1s; }*/ /*第四屏*/ .screen-4__heading, .screen-4__wrap__item-1, .screen-4__wrap__item-2, .screen-4__wrap__item-3, .screen-4__wrap__item-4{ transition: all 1s; } .screen-4__line, .screen-4__subheading{ transition: all 1s .5s; } .screen-4__heading_animate_init, .screen-4__subheading_animate_init{ transform:translate(0,100%); opacity:0; } .screen-4__heading_animate_done, .screen-4__subheading_animate_done{ transform:translate(0,0); opacity:1; } .screen-4__line_animate_init{ opacity: 0; } .screen-4__line_animate_done{ opacity: 1; } .screen-4__wrap__item-1_animate_init, .screen-4__wrap__item-2_animate_init, .screen-4__wrap__item-3_animate_init, .screen-4__wrap__item-4_animate_init{ transform: scale(0); opacity:0; } .screen-4__wrap__item-1_animate_done, .screen-4__wrap__item-2_animate_done, .screen-4__wrap__item-3_animate_done, .screen-4__wrap__item-4_animate_done{ transform: scale(1); opacity:1; } /*第五屏*/ .screen-5__heading, .screen-5__picture{ transition: all 1s; } .screen-5__line, .screen-5__subheading{ transition: all 1s .5s; } .screen-5__picture_animate_init{ transform: scale(0); opacity:0; } .screen-5__picture_animate_done{ transform: scale(1); opacity:1; } .screen-5__heading_animate_init, .screen-5__subheading_animate_init{ transform:translate(0,100%); opacity:0; } .screen-5__heading_animate_done, .screen-5__subheading_animate_done{ transform:translate(0,0); opacity:1; } .screen-5__line_animate_init{ opacity: 0; } .screen-5__line_animate_done{ opacity: 1; } /*侧边导航栏*/ .sidenav{ transition:all 1s; transform: translate(100%,0); opacity:0; } .sidenav_animate_done{ transform: translate(0,0); opacity:1; } js var getEle=function(idx){ return document.querySelector(idx); } var getEles=function(idx){ return document.querySelectorAll(idx); } var getClass=function(element){ return element.getAttribute('class'); } var setClass=function(element,newclass){ return element.setAttribute('class',newclass) } var addClass=function(element,newclass){ var base=getClass(element); return setClass(element,base+' '+newclass); } var screenAnimateElements={ '.header':[ '.header__logo', '.header__nav' ], '.screen-1':[ '.screen-1__heading', '.screen-1__subheading' ], '.screen-2':[ '.screen-2__heading', '.screen-2__line', '.screen-2__subheading', '.screen-2__picture-2', '.screen-2__picture-3' ], '.screen-3':[ '.screen-3__wrap', '.screen-3__heading', '.screen-3__line', '.screen-3__lang', '.screen-3__subheading', '.screen-3__lang-item-1', '.screen-3__lang-item-2', '.screen-3__lang-item-3', '.screen-3__lang-item-4', '.screen-3__lang-item-5' ], '.screen-4':[ '.screen-4__heading', '.screen-4__line', '.screen-4__subheading', '.screen-4__wrap__item-1', '.screen-4__wrap__item-2', '.screen-4__wrap__item-3', '.screen-4__wrap__item-4' ], '.screen-5':[ '.screen-5__heading', '.screen-5__line', '.screen-5__subheading', '.screen-5__picture' ] }; // 使所有元素初始化函数 var screenAnimateInit=function(selector){ var screen=getEle(selector); var animateScreen=screenAnimateElements[selector]; for(var i=0;i<animateScreen.length;i++){ var elements=getEle(animateScreen[i]); addClass(elements,animateScreen[i].substr(1)+'_animate_init') } } window.onload=function(){ for(k in screenAnimateElements){ screenAnimateInit(k); if(k==='.screen-1'){ continue; } } } // 播放动画函数 var screenAnimatedone=function(selector){ var screen=getEle(selector); var animateScreen=screenAnimateElements[selector]; for(var i=0;i<animateScreen.length;i++){ var elements=getEle(animateScreen[i]); console.log(elements); var baseCls=getClass(elements); console.log(baseCls); elements.setAttribute('class',baseCls.replace('_animate_init','_animate_done')); } } screenAnimatedone('.screen-1'); // 根据滚动条来播放动画的函数 // window.onscroll=function(){ // var top=document.documentElement.scrollTop; // console.log(top); // if(top>-1){ // switchNavItemsActive(0); // } // if(top>300){ // playScreenAnimateDone('.screen-2'); // switchNavItemsActive(1); // } // if(top>900){ // playScreenAnimateDone('.screen-3'); // switchNavItemsActive(2); // } // if(top>1500){ // playScreenAnimateDone('.screen-4'); // switchNavItemsActive(3); // } // if(top>2100){ // playScreenAnimateDone('.screen-5'); // switchNavItemsActive(4); // } // }
老师为什么我的播放动画的函数只能获取到一开始的class属性值,而获取不到之后我新加给他的值。
就像这样
8
收起
正在回答
1回答
同学你好, 这是因为使用querySelector获取的是静态集合,选取出元素之后就和文档的改变无关了。
建议: 可以参考getElementById()或者getElementsByClassName()方法获取元素, 这个方法获取的集合是动态的,获取的元素会随着文档改变
如果帮帮助到了你 欢迎采纳
祝学习愉快~~~
恭喜解决一个难题,获得1积分~
来为老师/同学的回答评分吧
0 星