實現鏈式運動,把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會達不到預期
? ? ? ?});
2016-02-16
這個可能是高度達到的時間比較短,然后在封裝的startMove中判斷動畫停止的時候認為目標值已經達到,所以執行了clearInterval(time);所以width達不到預期