JS实现的缓冲运动效果示例


Posted in Javascript onApril 30, 2018

本文实例讲述了JS实现的缓冲运动效果。分享给大家供大家参考,具体如下:

缓冲需要用到数值取整,向上取整:Math.ceil()  向下取整Math.floor()

移动的速度慢慢减慢的效果,移动速度=(终点位置 - 当前位置) / 一个数

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>3water.com JS缓冲运动</title>
<style>
#div{
  width:150px;
  height:150px;
  background:#0C6;
  position:absolute;
  left:0;
  top:50px;
}
#div2{
  background:#000;
  height:600px;
  position:absolute;
  left:500px;
  width:2px;
}
</style>
</head>
<script>
var speed;
var time;
window.onload = function(){
  var btn = document.getElementById('btn');
  btn.onclick = function(){
    speed = 0;
    move(500);
  };
  btn2.onclick = function(){
    speed = 0;
    move(0);
  };
};
function move(e){
  var div = document.getElementById('div');
  clearInterval(time);
  time = setInterval(function(){
    //改变位置,如果向左则e==500, 向上取整, 否则向右,向下取整,速度=(终点位置 - 当前位置)/一个数
    e==500 ? speed = Math.ceil((e-(div.offsetLeft))/30):speed = Math.floor((e-(div.offsetLeft))/30)
    if (e <= div.style.left){//达到,关闭定时器
      clearInterval(time);
    }
    else
    {
      div.style.left = div.offsetLeft+speed+'px';
    }
  },30);
};
</script>
<body>
<input type="button" value="向右运动" id="btn" />
<input type="button" value="向左运动" id="btn2" />
<div id = "div">
</div>
<div id = "div2">
</div>
</body>
</html>

点击此处查看在线演示效果。

或者使用本站在线HTML/js运行工具测试查看运行效果:http://tools.3water.com/code/HtmlJsRun

希望本文所述对大家JavaScript程序设计有所帮助。

Javascript 相关文章推荐
jQuery下通过replace字符串替换实现大小图片切换
May 22 Javascript
jQuery实现等比例缩放大图片让大图片自适应页面布局
Oct 16 Javascript
客户端js性能优化小技巧整理
Nov 05 Javascript
js Dialog 去掉右上角的X关闭功能
Apr 23 Javascript
Javascript中prototype属性实现给内置对象添加新的方法
May 14 Javascript
jQuery解决input元素的blur事件和其他非表单元素的click事件冲突问题
Aug 15 Javascript
原生JS实现ajax与ajax的跨域请求实例
Dec 01 Javascript
详解Vue项目编译后部署在非网站根目录的解决方案
Apr 26 Javascript
vue.js 子组件无法获取父组件store值的解决方式
Nov 08 Javascript
Vue+Node服务器查询Mongo数据库及页面数据传递操作实例分析
Dec 20 Javascript
JS实现点星星消除小游戏
Mar 24 Javascript
浅谈Vue的computed计算属性
Mar 21 Vue.js
Vue波纹按钮组件制作
Apr 30 #Javascript
学习JS中的DOM节点以及操作
Apr 30 #Javascript
WebSocket的通信过程与实现方法详解
Apr 29 #Javascript
jQuery实现遍历XML节点和属性的方法示例
Apr 29 #jQuery
在vscode里使用.vue代码模板的方法
Apr 28 #Javascript
JS实现的透明度渐变动画效果示例
Apr 28 #Javascript
JS实现的简单折叠展开动画效果示例
Apr 28 #Javascript
You might like
php下删除字符串中HTML标签的函数
2008/08/27 PHP
学习使用curl采集curl使用方法
2012/01/11 PHP
php通过Chianz.com获取IP地址与地区的方法
2015/01/14 PHP
AJAX PHP无刷新form表单提交的简单实现(推荐)
2016/09/09 PHP
PHP-CGI远程代码执行漏洞分析与防范
2017/05/07 PHP
PHPCrawl爬虫库实现抓取酷狗歌单的方法示例
2017/12/21 PHP
javascript小数计算出现近似值的解决办法
2010/02/06 Javascript
在模板页面的js使用办法
2010/04/01 Javascript
JS两种定义方式的区别、内部原理
2013/11/21 Javascript
javascript中expression的用法整理
2014/05/13 Javascript
JS实现的网页背景闪电闪烁效果代码
2015/10/17 Javascript
基于javascript实现浏览器滚动条快到底部时自动加载数据
2015/11/30 Javascript
基于jQuery实现滚动切换效果
2016/12/02 Javascript
js实现模糊匹配功能
2017/02/15 Javascript
js中setTimeout的妙用--防止循环超时
2017/03/06 Javascript
详解ESLint在Vue中的使用小结
2018/10/15 Javascript
原生js通过一行代码实现简易轮播图
2019/06/05 Javascript
vue实现列表滚动的过渡动画
2020/06/29 Javascript
解决VUE项目使用Element-ui 下拉组件的验证失效问题
2020/11/07 Javascript
Vue.js桌面端自定义滚动条组件之美化滚动条VScroll
2020/12/01 Vue.js
Python3实现连接SQLite数据库的方法
2014/08/23 Python
简单介绍Python中的RSS处理
2015/04/13 Python
Django配置celery(非djcelery)执行异步任务和定时任务
2018/07/16 Python
修改默认的pip版本为对应python2.7的方法
2018/11/06 Python
基于python历史天气采集的分析
2019/02/14 Python
对Python中TKinter模块中的Label组件实例详解
2019/06/14 Python
Pandas实现一列数据分隔为两列
2020/05/18 Python
基于python图书馆管理系统设计实例详解
2020/08/05 Python
联想墨西哥官方网站:Lenovo墨西哥
2016/08/17 全球购物
造价工程师个人求职信
2013/09/21 职场文书
简历中个人求职的自我评价模板
2013/11/29 职场文书
护士自我推荐信范文
2015/03/24 职场文书
专家推荐信怎么写
2015/03/25 职场文书
2015年大学班长个人工作总结
2015/04/24 职场文书
2016护理专业求职自荐书
2016/01/28 职场文书
《成长的天空》读后感3篇
2019/12/06 职场文书