JS实现多物体width缓冲运动实例
多物体运动,运动参数不能公用。
思路:
利用setInterval计时器进行运动,offsetWidth实现宽度的变动,在用onmouseover将终点和所选中的DIV放入参数再进行缓冲运动。
代码:
<head runat="server"> <title></title> <style type="text/css"> div { width: 100px; height: 50px; background: #0000FF; margin: 10px; } </style> <script type="text/javascript"> window.onload = function () { var oDiv = document.getElementsByTagName(‘div‘); for (var i = 0; i < oDiv.length; i++) { oDiv[i].timer = null; //给买个DIV做个标记,用以关闭相应DIV的定时器 oDiv[i].onmouseover = function () { move(this, 400); //给定时器输出参数 } oDiv[i].onmouseout = function () { move(this, 100); } } }; function move(div, end) { clearInterval(div.timer); div.timer = setInterval(function () { var speed = (end - div.offsetWidth) / 5; //(终点-要走的宽度)/缩放系数=DIV移动的速度 speed = speed > 0 ? Math.ceil(speed) : Math.floor(speed); //小数取整,也就是进位取整 if (div.offsetWidth == end) { //当到达终点时关闭计时器 clearInterval(div.timer); } else { div.style.width = div.offsetWidth + speed + ‘px‘; //移动DIV的宽度 } }, 30) } </script> </head> <body> <div> </div> <div> </div> <div> </div> </body>
郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。