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

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

為什么我這個鏈式運動實現不了?

為什么我這個鏈式運動實現不了?

hj000000 2016-03-30 14:53:42
?<!DOCTYPE html><html><head> <title></title> <style type="text/css"> *{margin:0;padding:0} ul li{list-style:none;} ul li{width:200px;height:50px;margin: 20px 0; background:yellow; filter: alpha:(opacity:30);opacity: 0.3;} </style> <script type="text/javascript"> window.onload=function(){ var x=document.getElementsByTagName("li"); for (var i = 0; i < x.length; i++) { ? ? x[i].timer=null; x[i].onmouseover=function(){ startMove(this,"width",100,function(){ startMove(this,"height",500) }); } ? ?x[i].onmouseout=function(){ startMove(this,"height",50,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,zd,fn){ clearInterval(obj.timer); obj.timer=setInterval(function(){ var sxz=0; if (attr=="opacity")? ? ?{ var sxz=Math.round(parseFloat(getStyle(obj,attr))*100); ? ?} else{ ? ?var sxz=parseInt(getStyle(obj,attr)); ? ? ? ?} var speed=(zd-sxz)/10; speed=speed>0?Math.ceil(speed):Math.floor(speed); if (sxz==zd)? ? ?{ ? ?clearInterval(obj.timer);? ? ? if (fn) {fn()}; ? ? } else{ ? ? ? ?? if (attr=="opacity")? ? ?{ ? ? ?var alpha1=sxz+speed; ? ? ?obj.style.filter="opacity:( alpha:alpha1)"; ? ? ?obj.style.opacity=alpha1/100; ? ? ? ?} ? ?else ? ?{ ? ? ?obj.style[attr]=sxz+speed+"px"; ? ?} ? ? ? ?} },30) } </script></head><body><ul> <li></li> <li></li> <li></li></ul></body></html>
查看完整描述

2 回答

已采納
?
ruibin

TA貢獻358條經驗 獲得超213個贊

你的問題不是出在鏈式操作,而是出在第18和23行。你這個this的指向問題,由于this在內層函數里面,而內層函數又是一個全局函數,所以此時的this指向window。要讓程序正常運行,只需要在18行修改下代碼代碼var self = this;
startMove(self,"width",100,function(){},在23行修改一下代碼var self = this;
startMove(self,"height",50,function(){}。調整this的指向,那就ok了

查看完整回答
1 反對 回復 2016-03-30
  • ruibin
    ruibin
    這是典型的閉包問題,要隨時注意this的指向。
  • hj000000
    hj000000
    怎么還是不行啊 ?
  • hj000000
    hj000000
    根據你的提示,發現確實存在這樣的問題,感謝!
?
qq_J_13

TA貢獻7條經驗 獲得超0個贊

可能是瀏覽器不兼容、我在火狐ie8下試了下可以的

查看完整回答
反對 回復 2016-03-30
  • 2 回答
  • 0 關注
  • 1425 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號

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