组合透明度变换的时候,单个第一次变换时候速度很快后面又正常怎么回事

来源:4-1 JS多物体动画

章鱼小年糕

2016-04-12 16:34

//这是JS代码部分
<script type="text/javascript">
window.onload=function(){
	var i=document.getElementsByTagName("li");
	for(var j=0;j<i.length;j++)
	{
	i[j].time=null;
	i[j].alpha=30;
	i[j].onmouseover=function(){
		Move(this,100);
		};
	i[j].onmouseout=function(){
		Move(this,30);
		};
	}
}

function Move(obj,setAlpha){
	clearInterval(obj.time);
	var speed=0;
	obj.time=setInterval(function(){
		if(obj.alpha==setAlpha)
		{clearInterval(obj.time)}
		if(obj.alpha>setAlpha)
		{speed=-10;}
		else
		{speed=10;}
		obj.alpha+=speed;
		obj.style.filter="alpha(opacity:"+obj.alpha+")";
		obj.style.opacity=obj.alpha/100;
		},30)
}
</script>

//希望能帮忙看看哪里有问题T-T

写回答 关注

2回答

  • 鲈先森
    2016-04-23 16:29:06

    if(obj.alpha==setAlpha)

            {clearInterval(obj.time)

                speed = 0;}

            if(obj.alpha>setAlpha)

            {speed=-10;}

            if (obj.alpha<setAlpha)

            {speed=10;}

    把22行改成这样,你之前的代码在obj.alpha<setAlpha或者obj.alpha=setAlpha,把speed都设置为-10.

    事实上在obj.alpha=setAlpha的时候要把speed设置为0

  • 章鱼小年糕
    2016-04-12 16:37:15

    就是鼠标第一次停留的时候会闪一下~

    移开后保持在透明度为0.4...

    还有一个问题就是设置了0.3 但是它在浏览器中停留的时候会变成0.4...

    这是啥情况QAQ

JS动画效果

通过本课程JS动画的学习,从简单动画开始,逐步深入各种动画框架封装

113924 学习 · 1443 问题

查看课程

相似问题