this问题,老师在startMove中用了this,我想换一种方法,所以把this改为了aLi[i] 然后就不能用了,大神们教教我该把this改成什么?
<!DOCTYPE html>/*this问题,老师在startMove中用了this,我想换一种方法,所以把this改为了aLi[i] 然后就不能用了,大神们教教我该把this改成什么?*/
<html>
<head lang="en">
<meta charset="UTF-8">
<title>多物体运动</title>
<style>
body, ul,li{
padding: 0;
margin: 0;
}
ul,li
{
list-style:none;
}
ul li
{
width: 200px;
height: 100px;
background: yellow;
margin-bottom: 20px;
}
</style>
<script>
window.onload=function()
{
var aLi=document.getElementsByTagName('li');
for(var i=0;i<aLi.length;i++)
{
aLi[i].timer=null;/*从来都没有定义过变量timer,居然能用,这里是不是顺便定义了?*/
aLi[i].onmouseover=function()
{
startMove(this,400);
} /* this到底指的是哪里?*/
aLi[i].onmouseout=function()
{
startMove(this,200);
}
}
}
/*var timer=null;*/
function startMove(obj,iTarget)
{
clearInterval(obj.timer);
obj.timer=setInterval(function(){
var speed=(iTarget - obj.offsetWidth)/8;/*实现缓冲运动*/
speed=speed>0?Math.ceil(speed):Math.floor(speed);
if(obj.offsetWidth==iTarget)
{
clearInterval(obj.timer);
}
else{
obj.style.width=obj.offsetWidth+speed+'px';
}
},30)
}
</script>
</head>
<body>
<ul>
<li></li>
<li></li>
<li></li>
</ul>
</body>
</html>