为什么点击没效果?
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
你好,代码思路是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; // 退出函数
}实战选择流行并综合的案例,综合运用所学知识,同时会有一些新知识介绍,所以相对前的练习会难些,对于大些的案例,要先把思路和逻辑关系梳理清楚,然后一步步的实现、调试和修改代码。代码的编写不是一气呵成的呦,要不断调整与完善,加油,希望对你有帮助,如解决你的疑问,请采纳。
- 参与学习 1887 人
- 提交作业 4643 份
- 解答问题 5760 个
有HTML和CSS基础,却不知道如何进阶?本路径带你通过系统学习,完成从“会做网页”到“做出好的动态网页”的蜕变,迈出成为前端工程师的第一步。
了解课程
恭喜解决一个难题,获得1积分~
来为老师/同学的回答评分吧
0 星