为什么点击没效果?

为什么点击没效果?

js代码、、

建议小白路径实战演练和h5实战演练由JS女老师来讲。作为一名从小白课程到H5课程进阶过来的粉丝,每次前面都是讲得非常不错,到了后面课质量就有点下降,移动端课程还没有购买,不知道实战演练讲得怎么样。如果还是这样的话就粉转黑了。每次听到实战演练都太费劲了,是我太笨?还是其他同学都彻底懂了?

var screenAnimateElements={

'.screen-1':[

'.screen-1-heading',

'.screen-1-phone',

'.screen-1-shadow',

]

}


function setScreenAnimate(screenCls) {

var screen=document.querySelector(screenCls);

var animateElements = screenAnimateElements[screenCls];

var isSetAnimateClass=false;

var isAnimateDone=false;

screen.onclick=function(){

if(isSetAnimateClass===false){

for(var i=0;i<animateElements.length;i++){

var element=document.querySelector(animateElements[i]);

var baseCls=element.getAttribute('class');

element.setAttribute('class',baseCls+' '+animateElements[i].substr(1)+'-animate-init')

}

isSetAnimateClass=true;

return;

}

if(isAnimateDone===false){

var element=document.querySelector(animateElements[i]);

var baseCls=element.getAttribute('class');

element.setAttribute('class',baseCls.replace('-animate-init','-animate-done'))

}

}


}

setScreenAnimate();

动画css样式//

.screen-1-heading{

transition:all 1s;

}

.screen-1-heading-animate-init{

opacity: 0;

transform: translate(0,100%); /* 默认样式 */

}

.screen-1-heading-animate-done{   

opacity: 1;

transform:translate(0,0); 

}


html代码

<div class="screen-1">

<div class="screen-1-heading screen-1-heading-animate-init"><span>慕课手机</span> 让你的生活更精彩</div>

<div class="screen-1-phone"></div>

<div class="screen-1-shadow"></div>

</div>


静态页面css样式//

.screen-1{

height: 800px;

background:url(../img/bg-screen-1.png) no-repeat;

background-size: cover;

position: relative;

overflow: hidden;

}

.screen-1-heading{

font-size:46px;

text-align: center;

color:#4d555d;

padding-top: 152px;

font-style: normal;

}

.screen-1-heading span{

color: #f01400;

}

 

正在回答 回答被采纳积分+1

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

1回答
小于飞飞 2017-06-22 16:11:32

你好,代码思路是ok 的,但是在 js 中设置的 screen-1-heading-animate-init 和 screen-1-heading-animate-done 没有相应的样式和过渡,添加如下代码:

 .screen-1-heading-animate-init {
        opacity: 0;
        transform: translate(0, 100%);
    }    
    .screen-1-heading-animate-done {
        opacity: 1;
        transform: translate(0, 0);
    }    
    .screen-1-heading {
        transition: all 1s;
    }

js 中从 init 到 done 的代码调整下:

 if (isAnimateDone === false) {
    for (var i = 0; i < animateElements.length; i++) { // 添加for
       var element = document.querySelector(animateElements[i]);
       var baseCls = element.getAttribute('class');
       console.log(baseCls);
       element.setAttribute('class', baseCls.replace('-animate-init', '-animate-done'));
        }
       isAnimateDone = true; // 改变状态
       return;  // 退出函数
            }

实战选择流行并综合的案例,综合运用所学知识,同时会有一些新知识介绍,所以相对前的练习会难些,对于大些的案例,要先把思路和逻辑关系梳理清楚,然后一步步的实现、调试和修改代码。代码的编写不是一气呵成的呦,要不断调整与完善,加油,希望对你有帮助,如解决你的疑问,请采纳。

问题已解决,确定采纳
还有疑问,暂不采纳

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

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

0 星
请稍等 ...
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号

在线咨询

领取优惠

免费试听

领取大纲

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