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 相关文章推荐
javascript 学习笔记(六)浏览器类型及版本信息检测代码
Apr 08 Javascript
JS隐藏参数post传值实例
Apr 18 Javascript
javascript获取所有同类checkbox选项(实例代码)
Nov 07 Javascript
Node.js实现在目录中查找某个字符串及所在文件
Sep 03 Javascript
深入理解JavaScript系列(17):面向对象编程之概论详细介绍
Mar 04 Javascript
javascript实现网页子页面遍历回调的方法(涉及 window.frames、递归函数、函数上下文)
Jul 27 Javascript
jQuery中get方法用法分析
Dec 07 Javascript
jQuery表单元素选择器代码实例
Feb 06 Javascript
vue-cli 脚手架基于Nightwatch的端到端测试环境的过程
Sep 30 Javascript
小程序实现新用户判断并跳转激活的方法
May 20 Javascript
jQuery 选择器用法实例分析【prev + next】
May 22 jQuery
Vue-Element-Admin集成自己的接口实现登录跳转
Jun 23 Vue.js
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
欧美媒体选出10年前最流行的17部动画
2017/01/18 日漫
在Yii框架中使用PHP模板引擎Twig的例子
2014/06/13 PHP
ThinkPHP的MVC开发机制实例解析
2014/08/23 PHP
php实现网站顶踩功能的完整前端代码
2015/07/19 PHP
php实现图片按比例截取的方法
2017/02/06 PHP
用javascript实现的图片马赛克后显示并切换加文字功能
2007/04/21 Javascript
Dom 是什么的详细说明
2010/10/25 Javascript
在JavaScript中判断整型的N种方法示例介绍
2014/06/18 Javascript
js实现正方形颜色从下往上升的效果
2014/08/04 Javascript
JavaScript实现九九乘法表的简单实例
2016/06/07 Javascript
zTree实现节点修改的实时刷新功能
2017/03/20 Javascript
React-Native做一个文本输入框组件的实现代码
2017/08/10 Javascript
JavaScript 点击触发复制功能实例详解
2018/11/02 Javascript
vuex 动态注册方法 registerModule的实现
2019/07/03 Javascript
[41:52]2018DOTA2亚洲邀请赛3月29日 小组赛A组 TNC VS OpTic
2018/03/30 DOTA
[05:46]2018完美盛典-《同梦共竞》
2018/12/17 DOTA
Python数据结构之Array用法实例
2014/10/09 Python
深入解析Python中的__builtins__内建对象
2016/06/21 Python
python中利用Future对象回调别的函数示例代码
2017/09/07 Python
python模块导入的细节详解
2018/12/10 Python
Python小游戏之300行代码实现俄罗斯方块
2019/01/04 Python
使用PyQtGraph绘制精美的股票行情K线图的示例代码
2019/03/14 Python
pytorch 自定义参数不更新方式
2020/01/06 Python
Python-numpy实现灰度图像的分块和合并方式
2020/01/09 Python
CSS3 实现发光边框特效
2020/11/11 HTML / CSS
沙龙级头发造型工具:FOXYBAE
2018/07/01 全球购物
zooplus意大利:在线宠物商店
2019/08/07 全球购物
应届大学生求职的自我评价
2013/11/17 职场文书
高中军训第一天感言
2014/03/06 职场文书
应届毕业生求职信范文
2014/07/07 职场文书
2014收银员工作总结范文
2014/12/16 职场文书
2015年保育员个人工作总结
2015/05/13 职场文书
赵氏孤儿观后感
2015/06/09 职场文书
微信小程序结合ThinkPHP5授权登陆后获取手机号
2021/11/23 PHP
详解Android中的TimePickerView(时间选择器)的用法
2022/04/30 Java/Android
使用Django框架创建项目
2022/06/10 Python