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


Posted in Javascript onNovember 29, 2013

效果:

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

 

思路:

利用setInerval()计时器,进行运动。然后关键的一点是在最后停止的时候给它一个填充缝隙的判断。

代码:

<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>
Javascript 相关文章推荐
js tab效果的实现代码
Dec 26 Javascript
javascript 主动派发事件总结
Aug 09 Javascript
javascript使用正则获取url上的某个参数
Sep 04 Javascript
js中for in语句的用法讲解
Apr 24 Javascript
全屏js头像上传插件源码高清版
Mar 29 Javascript
深入理解JS addLoadEvent函数
May 20 Javascript
微信小程序之数据双向绑定与数据操作
May 12 Javascript
Node.js学习教程之HTTP/2服务器推送【译】
Oct 31 Javascript
浅谈vue中改elementUI默认样式引发的static与assets的区别
Feb 03 Javascript
jQuery动态生成的元素绑定事件操作实例分析
May 04 jQuery
jQuery Raty星级评分插件使用方法实例分析
Nov 25 jQuery
openlayers4.6.5实现距离量测和面积量测
Sep 25 Javascript
JS实现侧悬浮浮动实例代码
Nov 29 #Javascript
js模拟点击以提交表单为例兼容主流浏览器
Nov 29 #Javascript
JS实现日期加减的方法
Nov 29 #Javascript
js弹出层永远居中实现思路及代码
Nov 29 #Javascript
根据表格中的某一列进行排序的javascript代码
Nov 29 #Javascript
JS取文本框中最小值的简单实例
Nov 29 #Javascript
js中的eventType事件及其浏览器支持性介绍
Nov 29 #Javascript
You might like
提取HTML标签
2006/10/09 PHP
PHP输出九九乘法表代码实例
2015/03/27 PHP
在Mac OS上编译安装Nginx+PHP+MariaDB开发环境的教程
2016/02/23 PHP
PHP通过GD库实现验证码功能示例
2019/02/23 PHP
php查看一个变量的占用内存的实例代码
2020/03/29 PHP
基于jQuery的图片左右无缝滚动插件
2012/05/23 Javascript
jQuery+css+html实现页面遮罩弹出框
2013/03/21 Javascript
如何判断元素是否为HTMLElement元素
2013/12/06 Javascript
JS批量操作CSS属性详细解析
2013/12/16 Javascript
Jquery跳到页面指定位置的方法
2014/05/12 Javascript
javascript为下拉列表动态添加数据项
2014/05/23 Javascript
详解AngularJS中自定义指令的使用
2015/06/17 Javascript
基于jQuery+PHP+Mysql实现在线拍照和在线浏览照片
2015/09/06 Javascript
jQuery实例—选项卡的简单实现(js源码和jQuery)
2016/06/14 Javascript
不间断循环滚动效果的实例代码(必看篇)
2016/10/08 Javascript
Vue.js Ajax动态参数与列表显示实现方法
2016/10/20 Javascript
详解在vue-cli中引用jQuery、bootstrap以及使用sass、less编写css
2017/11/08 jQuery
vue+swiper实现侧滑菜单效果
2017/12/28 Javascript
vue缓存的keepalive页面刷新数据的方法
2019/04/23 Javascript
详解微信小程序文件下载--视频和图片
2019/04/24 Javascript
微信小程序非跳转式组件授权登录的方法示例
2019/05/22 Javascript
微信小程序实现购物车代码实例详解
2019/08/29 Javascript
微信小程序自定义联系人弹窗
2020/05/26 Javascript
python通过elixir包操作mysql数据库实例代码
2018/01/31 Python
Python3爬楼梯算法示例
2019/03/04 Python
Python正则表达式匹配日期与时间的方法
2019/07/07 Python
使用Python给头像戴上圣诞帽的图像操作过程解析
2019/09/20 Python
python sorted函数原理解析及练习
2020/02/10 Python
使用Bazel编译TensorBoard教程
2020/02/15 Python
猫咪家具:CatsPlay
2018/11/03 全球购物
面向对象概念面试题(.NET)
2016/11/04 面试题
竞选班干部演讲稿100字
2014/08/20 职场文书
司机个人年终总结
2015/03/03 职场文书
现役军人家属慰问信
2015/03/24 职场文书
三八妇女节主持词
2015/07/04 职场文书
Java如何实现树的同构?
2021/06/22 Java/Android