学习js运动多个物体宽度变化笔记
来源:互联网 发布:淘宝网能用货到付款 编辑:程序博客网 时间:2024/06/02 04:17
功能:实现鼠标移入物体宽度缓冲式的增加,移出缓冲式的还原
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>多个物体宽度变化</title>
<style>
div {width:100px; height:50px; background:#000; margin:10px;}
</style>
<script>
window.onload=function ()
{
var aDiv=document.getElementsByTagName('div'); //获取每个div对象
for(var i=0;i<aDiv.length;i++) //为每个对象设置鼠标移入移出事件
{
aDiv[i].onmouseover=function ()
{
startMove(this, 400); //this当前对象
};
aDiv[i].onmouseout=function ()
{
startMove(this, 100);
};
}
};
var timer=null;
function startMove(obj, iTarget)
{
clearInterval(timer); //运动之前需先关闭定时器
timer=setInterval(function (){ //打开定时器每30秒执行一次函数
var speed=(iTarget-obj.offsetWidth)/6; //设置变化的快慢
speed=speed>0?Math.ceil(speed):Math.floor(speed); //缓冲变化必须取整Math.ceil()向上Math.floor()向下
if(obj.offsetWidth==iTarget) //判断宽度与目标值
{
clearInterval(timer);
}
else
{
obj.style.width=obj.offsetWidth+speed+'px';
}
}, 30);
}
</script>
</head>
<body>
<div></div>
<div></div>
<div></div>
</body>
</html>
问题: 当鼠标快速在几个图形上移动时,无法实现移出后宽度还原
解决办法:
为每个div设置单独的定时器
将var timer=null;改为aDiv[i].timer=null;并放入循环中为每个div设置定时器,使用定时器时也设置为obj.timer
- 学习js运动多个物体宽度变化笔记
- js多物体运动--鼠标移入改变宽度
- 学习JS运动透明度变化笔记
- js运动-多物体运动
- JS多物体运动
- JS运动之多物体框架--多个div变宽
- 多个物体 链式运动
- js运动技术--多物体同时运动
- js多物体不同运动
- JS多物体透明度运动
- js-多物体运动框架
- js动画2 多物体运动
- js实现多物体不同运动框架
- 多物体缓冲运动js代码大全
- 多物体运动动画js脚本
- HTML+CSS+JS实现多物体运动
- js物体链式运动
- 42、JavaScript的运动----多个物体同时运动
- 第一次使用OD和IDA动静结合找出软件的注册算法
- huawei---FPGA verilog 约束
- Linux环境变量的设置和查看
- centos上安装和配置tomcat
- Rmi工作原理的理解
- 学习js运动多个物体宽度变化笔记
- 回文判断
- Apache服务器配置--Linux
- 数据结构之平衡树(Treap)
- eclipse 提交项目至 github
- 并查集详解(转)
- 使用 Swift 与 Kitura 构建端到端的云应用程序
- leetcode 27. Remove Element
- 数据还原