<script type="text/javascript">
function move(obj,target){
clearInterval(obj.timer);
//obj.timer 是给每个div都添加上这个timer定时器
obj.timer = setInterval(function(){
//声明每次执行定时器的改变量为speed 即是缓冲运动的公式
//(目标函数的值 减去 对象的变量) 除以10
var speed = (target - obj.offsetWidth) / 10;
//为上面的speed 向上取整 或 向下取整 以确保其改变值是整数 没有抖动现象
//也可以是下面的三目运算写法
//speed = speed>0? Math.ceil(speed):Math.floor(speed); 三目运算
if(speed>0){
speed = Math.ceil(speed);
}else{
speed = Math.floor(speed);
}
obj.style.width = obj.offsetWidth + speed +'px';
},30);
}
window.onload = function(){
var oDiv = document.getElementsByTagName('div');
var timer = null;
//因为是多个盒子的运动 所以需要遍历
for(var i = 0; i<oDiv.length; i++){
oDiv[i].onmouseover = function(){
move(this,300);
}
oDiv[i].onmouseout = function(){
move(this,100);
}
}
}
</script>
多盒子的运动---用目标值减去对象的变量属性(target - obj.offsetWidth)
最新推荐文章于 2022-07-22 16:30:44 发布