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 相关文章推荐
Discuz! 6.1_jQuery兼容问题
Sep 23 Javascript
Prototype Selector对象学习
Jul 23 Javascript
Three.js源码阅读笔记(物体是如何组织的)
Dec 27 Javascript
js内存泄露的几种情况详细探讨
May 31 Javascript
jQuery html()方法使用不了无法显示内容的问题
Aug 06 Javascript
JavaScript中对象property的读取和写入方法介绍
Dec 30 Javascript
Bootstrap导航条可点击和鼠标悬停显示下拉菜单的实现代码
Jun 23 Javascript
js当前页面登录注册框,固定div,底层阴影的实例代码
Oct 04 Javascript
Vue中引入样式文件的方法
Aug 18 Javascript
js变量声明var使用与不使用的区别详解
Jan 21 Javascript
jquery 插件重新绑定的处理方法分析
Nov 23 jQuery
jQuery实现容器间的元素拖拽功能
Dec 01 jQuery
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
CI框架出现mysql数据库连接资源无法释放的解决方法
2016/05/17 PHP
Windows2003下php5.4安装配置教程(Apache2.4)
2016/06/30 PHP
利用PHP生成静态html页面的原理
2016/09/30 PHP
php引用和拷贝的区别知识点总结
2019/09/23 PHP
phpinfo的知识点总结
2019/10/10 PHP
原生Js实现按的数据源均分时间点幻灯片效果(已封装)
2010/12/28 Javascript
jQuery对表单的操作代码集合
2011/04/06 Javascript
Jquery 点击按钮显示和隐藏层的代码
2011/07/25 Javascript
JS字符串累加Array不一定比字符串累加快(根据电脑配置)
2012/05/14 Javascript
javascript实现原生ajax的几种方法介绍
2013/09/21 Javascript
jQuery实现友好的轮播图片特效
2015/01/12 Javascript
js库Modernizr的介绍和使用
2015/05/07 Javascript
JS实现带缓冲效果打开、关闭、移动一个层的方法
2015/05/09 Javascript
ajax实现动态下拉框示例
2017/01/10 Javascript
详解webpack进阶之loader篇
2017/08/23 Javascript
JavaScript使用类似break机制中断forEach循环的方法
2018/11/13 Javascript
读懂CommonJS的模块加载
2019/04/19 Javascript
JavaScript Reflect Metadata实现详解
2019/12/12 Javascript
小程序自定义圆形进度条
2020/11/17 Javascript
[02:41]DOTA2亚洲邀请赛小组赛第三日 赛事回顾
2015/02/01 DOTA
Python实现在Linux系统下更改当前进程运行用户
2015/02/04 Python
使用SAE部署Python运行环境的教程
2015/05/05 Python
Python操作Excel之xlsx文件
2017/03/24 Python
PyQt5 QTable插入图片并动态更新的实例
2019/06/18 Python
python-sys.stdout作为默认函数参数的实现
2020/02/21 Python
怎么快速自学python
2020/06/22 Python
opencv 阈值分割的具体使用
2020/07/08 Python
python爬取豆瓣电影排行榜(requests)的示例代码
2021/02/18 Python
德国家用电器购物网站:Premiumshop24
2019/08/22 全球购物
新大陆软件面试题
2016/11/24 面试题
动物学专业毕业生求职信
2013/10/11 职场文书
2014年党员公开承诺践诺书
2014/03/25 职场文书
高中校园广播稿3篇
2014/09/29 职场文书
爱岗敬业事迹材料
2014/12/24 职场文书
MySQL 如何限制一张表的记录数
2021/09/14 MySQL
VUE使用draggable实现组件拖拽
2022/04/06 Vue.js