亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

誰能告訴我這是什么錯?

誰能告訴我這是什么錯?

小豬fenny 2016-11-04 23:44:55
? ? ? window.onload = function(){? ? ? ? ?var oList = document.getElementsByTagName('li');? ? ? ? ?for (var i = 0; i < oList.length; i++) {? ? ? ? ? ? oList[i].timer=null;? ? ? ? ? ? oList[i].onmouseover=function(){? ? ? ? ? ? ?startMove(this,'width',400,function(){? ? ? ? ? ? ? ?startMove(this,'height',200);? ? ? ? ? ? ?});? ? ? ? ? ? ?}? ? ? ? ? ? oList[i].onmouseout=function(){? ? ? ? ? ? ?startMove(this,'height',100,function(){? ? ? ? ? ? ? ?startMove(this,'width',200);? ? ? ? ? ? ?});? ? ? ? ? ? }? ? ? }//獲取屬性function getStyle(obj,attr){? ?if(obj.currentStyle){? ? ? return obj.currentStyle[attr];? ?}else{? ? ? return getComputedStyle(obj,false)[attr];? ?}}function startMove(obj,attr,iTarget,fn){? ?clearInterval(obj.timer);? ?obj.timer = setInterval(function(){? ? obj.alpha=30;? ? var icur =null;? ? //1.判斷類型? ? if(attr=='opacity'){? ? ? icur=Math.round(parseFloat(getStyle(obj,attr))*100);? ? }? ? ? else{ ? ?? ? ? ? icur= parseInt(getStyle(obj,attr));? ? ? }? ?//計算速度? ? var speed =(iTarget-icur)/8;? ? speed=speed>0?Math.ceil(speed):Math.floor(speed);? ?//3.檢測停止? ?if(icur == iTarget){? ? ? clearInterval(obj.timer);? ? ? if(fn){ ?//判斷是否存在回調函數,并回調? ? ? ? ?fn();? ? ? }? ?}else{? ? if(attr=='opacity'){? ? ? obj.style.filter='alpha(opacity:'+(icur+speed)+')';? ? ? obj.style.opacity=(icur+speed)/100;? ? }else{? ? obj.style[attr]= icur +speed+'px';? ? }? ?}},30);}}
查看完整描述

1 回答

已采納
?
stone310

TA貢獻361條經驗 獲得超191個贊

因為this值變化了;getComputedStyle無法成功獲取機會報錯,事件內部的回調不能再用this,要先用變量保存原來的this,再調用保存的變量,mouseout事件同理,如下:

??oList[i].onmouseover=function(){
?????????var?self=this;????????????//將this保存到self
?????????????startMove(this,'width',400,function(){
???????????????startMove(self,'height',200);??//這里的this是指window,使用self


查看完整回答
2 反對 回復 2016-11-05
  • 1 回答
  • 0 關注
  • 1153 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號