源码网商城,靠谱的源码在线交易网站 我的订单 购物车 帮助

源码网商城

JS实现匀速运动的代码实例

  • 时间:2020-10-06 23:32 编辑: 来源: 阅读:
  • 扫一扫,手机访问
摘要:JS实现匀速运动的代码实例
效果: [img]http://files.jb51.net/file_images/article/201311/20131129164535664.gif[/img]   思路: 利用setInerval()计时器,进行运动。然后关键的一点是在最后停止的时候给它一个填充缝隙的判断。 代码:
[u]复制代码[/u] 代码如下:
<head runat="server">     <title></title>     <style type="text/css">         #div1         {             width: 100px;             height: 100px;             background: #0000FF;             position: absolute;             left: 800px;             top: 100px;         }         #div200         {             width: 1px;             height: 400px;             background: #FF0000;             position: absolute;             left: 200px;         }         #div500         {             width: 1px;             height: 400px;             background: #FF0000;             position: absolute;             left: 500px;         }     </style>     <script type="text/javascript">         function move(end) {             var oDiv = document.getElementById('div1');             var timer = null;             timer = setInterval(function () {                 var speed = (end - oDiv.offsetLeft) / 5;        //根据终点和offsetLeft取出运动的速度                 speed = speed > 0 ? Math.ceil(speed) : Math.floor(speed);       //进位取整,小数位变为整位,                 //                if (oDiv.offsetLeft <= end) {                 //                    clearInterval(timer);                 //                }                 //                else {                 //                    oDiv.style.left = oDiv.offsetLeft + speed + 'px';                 //                }                 if (Math.abs(end - oDiv.offsetLeft) <= speed) { //由于在停止的时候最后会出现小的缝隙,或者说没有完全的到达指定地点,所以要小于它的速度                     clearInterval(timer);                       //当距离小于速度时,让计时器停止                     oDiv.style.left = end + 'px';           //在停止后填充缝隙。                 }                 else {                     oDiv.style.left = oDiv.offsetLeft + speed + 'px';       //移动DIV                 }             }, 30)         }     </script> </head> <body>     <input type="button" id="btn1" value="到500的位置" onclick="move(500);" />     <input type="button" id="btn2" value="到200的位置" onclick="move(200);" />     <div id="div1">     </div>     <div id="div200">200     </div>     <div id="div500">500     </div> </body>
  • 全部评论(0)
联系客服
客服电话:
400-000-3129
微信版

扫一扫进微信版
返回顶部