为了账号安全,请及时绑定邮箱和手机立即绑定

实现链式运动,把var flag = true;这句要放在定时器setInterval()里面

var flag = true; 这句要放在定时器setInterval()器里面,才能解决链式运动(Fn)无法实现的问题。
至于为什么不用 if(icur != json[attr]){ flag = false; }
             else{flag = true;}  这个方式解决,
是由于,这个方式会出现一个小bug,

<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>同时运动</title>
<style type="text/css">
*{
    padding: 0px;
    margin: 0px;
}
li{
    width: 100px;
    height: 50px;
    margin: 50px 0;
    background: #ff0;
    fitler:alpha(opacity: 50);
    opacity: 0.5;
}
</style>
<script type="text/javascript" src="js/move01.js"></script>
<script type="text/javascript">
window.onload = function(){
    var lis = document.getElementById('li0');
    lis.onmouseover = function  () {
        moveFn(lis,{width:300,height:100},function(){
            moveFn(lis,{opacity:100,width:1000});
        });
    };
    lis.onmouseout = function (){
        moveFn(lis,{opacity:50,width:300},function(){
            moveFn(lis,{width:100,height:50});       //就是这里的width会达不到预期
        });
    };
};    
</script>
</head>
<body>
    <ul>
        <li id="li0"></li>
    </ul>
</body>
</html>

在鼠标移开事件,第二链里面设置两个值,前面 width值 > height值,width值会达不到预期!

但是如果把width值移到height值后面,又能达到预期。

lis.onmouseout = function (){
       moveFn(lis,{opacity:50,width:300},function(){
           moveFn(lis,{height:50,width:100});       //就是这里的width会达不到预期
       });

正在回答

1 回答

这个可能是高度达到的时间比较短,然后在封装的startMove中判断动画停止的时候认为目标值已经达到,所以执行了clearInterval(time);所以width达不到预期

0 回复 有任何疑惑可以回复我~
#1

宇xixi 提问者

非常感谢!
2016-02-16 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消

实现链式运动,把var flag = true;这句要放在定时器setInterval()里面

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信