实现链式运动,把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会达不到预期
});