慕用9244143
2017-04-05 18:11
图案的top值
a.从初始值20变到-25
b.再变为30
c.再由30变回20
我做出来的效果:
b和c是连续的,a和b+c之间要隔一会,就是说两个链式运动不连续,而且中途鼠标放上去就不能移出了,要不然abc整个过程就会中断,下一次鼠标放上去初始值就不是20,这应该是哪出问题了?
这是因为你要确定你设置的多运动都完成后才去清除定时器,这个flag就是用来判断你设置的所有运动,比如高度宽度透明度是否都达到了目标值,flag才为true,否则之前flag会变成flase,不执行清除定时器

嗯,刚才粘错文件了,看了别人的提问,我的问题出在JS文件里,要把var flag=true;放在定时器里面,就解决了,可是还不太明白为什么
var obj=document.getElementsByTagName("a");
for (var i = 0; i < obj.length; i++) {
obj[i].onmouseenter=function(){
var mu=this.getElementsByTagName("img")[0];
objMove(mu,{"top":-10,"opacity":0},5,function(){
mu.style.top=70+"px";
mu.style.opacity=0;
objMove(mu,{"top":12,"opacity":100},2);
});
};
};
};
对比一下,你就知道你写差中间两句了。
window.onload=function(){
var move=document.getElementById('move');
var alis=move.getElementsByTagName('a');
for (var i=0;i<alis.length;i++)
{
alis[i].onmouseover=function()
{
var ths=this.getElementsByTagName('i')[0];
start(ths,{top:-25,opacity:0},function(){
start(ths,{top:20,opacity:100});
});
}
}
}
你这部分的代码写差了吧。还是说你自己复制张贴差了?
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>无标题文档</title>
<style type="text/css">
div p{
font-size:22px;
font-family:"Courier";
}
a:hover{
color:#39C;
}
div a{
position:relative;
cursor:pointer;
display:inline-block;
border:1px solid;
background:#FFFFB0;
width:120px;
height:120px;
text-align:center;
margin:20px;
border-radius:10px;
}
div a i{
position:relative;
top:20px;
left:0px;
width:100%;
text-align:center;
display:inline-block;
opacity:1;
filter:alpha(opacity=100);
}
#move{
text-align:center;
width:50%;
height:80%;
border-radius:10px;
background:#E2E2E2;
}
</style>
<script src="linkMove.js"></script>
<script>
window.onload=function(){
var move=document.getElementById('move');
var alis=move.getElementsByTagName('a');
for (var i=0;i<alis.length;i++)
{
alis[i].onmouseover=function()
{
var ths=this.getElementsByTagName('i')[0];
start(ths,{top:-25,opacity:0},function(){
start(ths,{top:20,opacity:100});
});
}
}
}
</script>
</head>
<body>
<center>
<div id="move">
<a><i><img src="icons/icon8.png"/></i><p>blossom</p></a>
<a><i><img src="icons/icon12.png" /></i><p>card</p></a>
<a><i><img src="icons/icon17.png" /></i><p>violin</p></a>
<a><i><img src="icons/icon14.png"/></i><p>airplane</p></a>
<a><i><img src="icons/icon13.png" /></i><p>lollipop</p></a>
<a><i><img src="icons/icon11.png" /></i><p>hamburger</p></a>
</div>
</center>
</body>
</html>
麻烦上传下代码,你不上传看不来的
JS动画效果
113910 学习 · 1502 问题
相似问题