給大家分享一個一句可以代替判斷速度正負代碼的
源代碼為:
if(oDiv.offsetLeft<target){
speed=10; //offsetLeft
}
else if(oDiv.offsetLeft>target){
speed=-10;
};
可以精簡為
oDiv.offsetLeft>target?speed=-10:speed=10;
源代碼為:
if(oDiv.offsetLeft<target){
speed=10; //offsetLeft
}
else if(oDiv.offsetLeft>target){
speed=-10;
};
可以精簡為
oDiv.offsetLeft>target?speed=-10:speed=10;
2018-01-29
1、flag=true,應該立在定時器內,json的for遍歷前;
var flag=true;定義在了for-in外面,而因為json中的屬性無法第一次就運動到目標值,所以flag的值一定會變?yōu)閒alse。變?yōu)閒alse之后,當所有的屬性值都運動到目標值也沒有語句使它變?yōu)閠rue,所以fn()不會執(zhí) 行。
2.if(flag){clearInterval(obj.timer);if(fn){fn()}}應該放在定時器內,json的for遍歷后:
因為在循環(huán)里面的話第一個屬性達到目標值后就會執(zhí)行clearInterval(obj.timer),從而關閉定時器其他屬性還未達成目標值
var flag=true;定義在了for-in外面,而因為json中的屬性無法第一次就運動到目標值,所以flag的值一定會變?yōu)閒alse。變?yōu)閒alse之后,當所有的屬性值都運動到目標值也沒有語句使它變?yōu)閠rue,所以fn()不會執(zhí) 行。
2.if(flag){clearInterval(obj.timer);if(fn){fn()}}應該放在定時器內,json的for遍歷后:
因為在循環(huán)里面的話第一個屬性達到目標值后就會執(zhí)行clearInterval(obj.timer),從而關閉定時器其他屬性還未達成目標值
2018-01-17
可以用3個animate連綴完成
$(this).find("i").animate({top:"-10px",opacity:"0"},300)
.animate({top:"20px"},300)
.animate({top:"10px",opacity:"1"},300);
$(this).find("i").animate({top:"-10px",opacity:"0"},300)
.animate({top:"20px"},300)
.animate({top:"10px",opacity:"1"},300);
2018-01-09
關于完美框架鏈式運動的bug:var flag=true;定義在了for-in外面s定時器里面,當所有運動完成后,不會改變定時器里面開始的var flag=true ,最后執(zhí)行停止定時器和下面的fn(),已用alert驗證執(zhí)行了fn(),但是如果再次在這里調通startMove()的話就會導致報錯getStyle函數(shù)Failed to execute 'getComputedStyle'。這里再調通startMove()是obj不能再用this,這里this已經(jīng)改變了目標,換成確定的obj就可以執(zhí)行,親測,有問題請指出,共勉?。?!
2018-01-05
大大的問題。getComputedStyle()和currentStyle得到的都是計算后的最終樣式。放在這里作為運動過程中獲取變化的屬性值是不恰當?shù)?。不知道大家深入考慮過沒有。或者說實際敲過沒有。放在瀏覽器上運行一下就知道不可行了。因為封裝的運動函數(shù)獲取的屬性不確定,所以不能使用快捷位置獲取初始樣式,那就需要手動輸入,而不是用getComputedStyle()和currentStyle去獲取,可以把這個初始值作為參數(shù)傳進去。
2018-01-05