我的代碼哪里有錯呢?我怎么排除都實現(xiàn)不了。
<!DOCTYPE html>
<html>
<head>
??? <meta charset="UTF-8">
??? <title>more</title>
<style type="text/css">
ul ,li{
?? ?list-style: none;
}
ul li{
width:200px;
height: 100px;
background: yellow;
margin-bottom: 20px;
}
</style>
<script type="text/javascript">
?? ?window.onload=function(){
??? var Ali=document.getElementsByTagName("li");
??? for(var i=0;i<Ali.length;i++){
?????? Ali[i].onmouseover=function(){
??????? startMove(this,500);
?????? }
?????? Ali[i].onmouseout=function(){
????? ??? ?startMove(this,10);
?????? }
??? }
?? ?}
var timer=null;
function startMove(obj,iTarget){
clearInterval(timer);
timer=setInterval(function(){
??? var speed=(iTarget-obj.offsetwidth)/10;
??? if(speed=speed>0){ Math.ceil(speed)}
????? else{
???? Math.floor(speed);}
??? if(obj.offsetwidth=iTarget){
???? clearInterval(timer);
??? }
??? else{
?? ??? ?obj.style.width=obj.offsetwidth+speed+'px';
??? }
?
},30)
}
</script>
</head>
<body>
?? ?<ul>
?? ??? ?<li></li>
?? ??? ?<li></li>
?? ??? ?<li></li>
?? ?</ul>
</body>
</html>
2016-08-06
offsetwidth寫錯了,應(yīng)該是offsetWidth;
?if(speed=speed>0){ ? //這里不太懂為什么要賦值,我改成了(speed>0)
?????Math.ceil(speed) ? //這里要賦值,不然計算了也沒有用到。改成speed=Math.ceil(speed);
}
else{
???? Math.floor(speed); ? //改成speed=Math.floor(speed);
}
?if(obj.offsetwidth=iTarget){ ? ?//這里應(yīng)該是obj.offsetwidth==iTarget,而不是賦值噢
? ? ? clearInterval(timer);
}?else{
?? ??? ?obj.style.width=obj.offsetwidth+speed+'px';? }
??
改了這些地方之后應(yīng)該就能動了,雖然還有一些BUG,共用了定時器神馬的,我也還沒消化好。。就只能幫到這里了恩:)
2016-08-06
<script?type="text/javascript"> ??window.onload=function(){ ????var?oLi?=?document.getElementsByTagName("li"); ???? ????for(var?i=0;i<oLi.length;i++){ ??????oLi[i].timer=null;??????????//給每一個li的onmouseover事件設(shè)置一個定時器 ??????oLi[i].onmouseover=function(){ ????????startMove(this,500); ??????}; ??????oLi[i].onmouseout=function(){ ????????startMove(this,10); ???????}; ????} ??} function?startMove(obj,iTarget){ ??clearInterval(obj.timer); ??obj.timer=setInterval(function(){ ????var?speed=(iTarget-obj.offsetWidth)/10;?//offsetWidth拼錯了,要用駝峰法。 ????speed=speed>0???Math.ceil(speed)?:?Math.floor(speed);//你原來這里的if?else語句寫錯了,我給你改成了三元表達(dá)式。實現(xiàn)的作用和樓上那位同學(xué)是一樣的,你原來的代碼你可以自己去alert(speed),是一個布爾值。 ????if(obj.offsetWidth==iTarget){?//if?語句的判斷錯了。 ??????clearInterval(obj.timer); ????} ????else{ ????????obj.style.width=obj.offsetWidth+speed+'px'; ????} ?? ??},30) } </script> 具體的錯誤其實我樓上那位同學(xué)都給你指出來了,你可以對照我的代碼印證一下