第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機立即綁定

obj.timer問題

http://img1.sycdn.imooc.com//5817fb5f00018d9705460101.jpg

當(dāng)我為多個li用for循環(huán)設(shè)置相同鏈?zhǔn)竭\動時,firebug提示http://img1.sycdn.imooc.com//5817fbf80001c29504080057.jpg

JS代碼如下:

/*
*?@Author:?Marte
*?@Date:???2016-10-30?21:31:35
*?@Last?Modified?by:???Marte
*?@Last?Modified?time:?2016-11-01?10:01:40
*/
'use?strict';
/*
*?@Author:?Marte
*?@Date:???2016-10-30?13:06:56
*?@Last?Modified?by:???Marte
*?@Last?Modified?time:?2016-10-30?19:25:29
*/
'use?strict';
window.onload=function??()?{
????var?oLi=document.getElementsByTagName("li");
????//鼠標(biāo)移入
????for?(var?i?=?0;?i?<?oLi.length;?i++)?{
????????oLi[i].timer=null;???????????????????????//給每個li加定時器
????????oLi[i].onmouseover=function?()?{
????????????startMove(this,"width",400,function??()?{
????????????????startMove(this,"height",160);
????????????});
????????}
????};
????//鼠標(biāo)移出
????for?(var?i?=?0;?i?<?oLi.length;?i++)?{
????????oLi[i].timer=null;??????????????????????//給每個li加定時器
????????oLi[i].onmouseout=function??()?{
????????????startMove(this,"height",80);
????????}
????};
};
//筆記:獲取樣式屬性,解決offsetWidth指的是包括邊框?qū)挾鹊膯栴}
function?getStyle?(obj,attr)?{
????if?(obj.currentStyle)?{
????????return?obj.currentStyle[attr];?????????//IE瀏覽器
????}?else{
????????return?getComputedStyle(obj,false)[attr];?????//火狐瀏覽器
????};
}
//定義動畫框架
function?startMove?(obj,attr,iTarget,fun)?{
????var?oLi=document.getElementsByTagName("li");
????clearInterval(obj.timer);?????????????????????????????//清除計時器
????obj.timer=setInterval(function?()?{
????????var?icur=0;
????????if?(attr=="opacity")?{??????????????????????//加if處理透明度問題
????????????//透明度有時是小數(shù),乘100符合習(xí)慣整數(shù)寫法,使用Math.round()處理計算機不能準(zhǔn)確存儲小數(shù)問題,例如:計算機中0.07*100=7.000000001
????????????icur=Math.round(parseFloat(getStyle(obj,attr))*100);
????????}?else{
????????????icur=parseInt(getStyle(obj,attr));
????????};
????????var?speed=(iTarget-icur)/10;???????//使其速度和到終點距離關(guān)聯(lián),實現(xiàn)緩沖運動
????????//解決上面方法中導(dǎo)致最后一點距離不對的問題(iTarget-oMain.offsetLeft)/10;最后不是iTarget
????????speed=speed>0?Math.ceil(speed):Math.floor(speed);
????????if?(icur==iTarget)?{
????????????clearInterval(obj.timer);
????????????if(fun){
????????????????fun();
????????????}
????????}else{??????????????????????????????????//必須加else,不然不能同時執(zhí)行下面語句
????????//obj.style.width改寫成obj.style["width"],是為了是屬性可以變成可以傳入的參數(shù)
????????????if?(attr=="opacity")?{??????????????????//加if處理透明度問題
????????????????obj.style.filter="alpha(opacity:"+(icur+speed)+")";?//IE瀏覽器
????????????????obj.style.opacity=(icur+speed)/100;?????//火狐瀏覽器
????????????}?else{
????????????????obj.style[attr]=icur+speed+"px";????????//透明度有bug
????????????}
????????}
????},30)
}

我也試過把回調(diào)函數(shù)放到for循環(huán)執(zhí)行,并加oLi.timer=null;還是不可以……

拜托大神解答,手動微笑《·-·》;

正在回答

1 回答

window.onload下第一段for

for?(var?i?=?0;?i?<?oLi.length;?i++)?{
????oLi[i].timer=null;???????????????????????//給每個li加定時器
????oLi[i].onmouseover=function?()?{
????????var?self=this;??????????????????????????????????//保存當(dāng)前this
????????startMove(this,"width",400,function??()?{
????????????startMove(self,"height",160);????????????????????//this要換成self
????????});
????}
};


0 回復(fù) 有任何疑惑可以回復(fù)我~

舉報

0/150
提交
取消
微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號