老师,上个问题还是有问题啊
http://class.imooc.com/course/qadetail/105215
上个代码中我console.log(elements)的值是能取到变化后的集合的的,只是console.log(baseCls)没有办法取到变化后集合的class的新值,而且老师使用的也是querySelector来获取集合的,还是不对啊
3
收起
正在回答
3回答
同学你好, 这里可以这样理解。
screenAnimatedone('.screen-2')这个函数比在onload函数中调用的screenAnimateInit()先执行,所以打印不出class新值。 示例: 在onload函数中添加一句测试代码console.log(1)
效果图:
从打印结果可以看出1在最后才打印出来, 所以screenAnimatedone在screenAnimateInit之后执行
在onload函数中调用screenAnimatedone. 示例:
效果图:
此时可以打印出class新值
如果还有疑问可以在问答区继续提问,我们会继续为你解答的
如果帮助到了 欢迎采纳
祝学习愉快~~~
CC陈十一
2019-04-04 20:24:12
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 screen =document.querySelector(selector); var animateScreen=screenAnimateElements[selector]; for(var i=0;i<animateScreen.length;i++){ // var element=getEle(animateScreen[i]); var elements=document.querySelector(animateScreen[i]); console.log(elements); // var base=element.getAttribute('class'); var baseCls=elements.getAttribute('class'); console.log(baseCls); elements.setAttribute('class',baseCls.replace('_animate_init','_animate_done')); } } screenAnimatedone('.screen-2');
恭喜解决一个难题,获得1积分~
来为老师/同学的回答评分吧
0 星