JavaScript缓冲运动实现方法(2则示例)


Posted in Javascript onJanuary 08, 2016

本文实例讲述了JavaScript缓冲运动实现方法。分享给大家供大家参考,具体如下:

实现原理:(目标距离-当前距离) / 基数 = 速度(运动距离越大速度越小,运动距离和速度成反比)

(500 - oDiv.offsetLeft) / 7 = iSpeed;

需要注意:当计算出来的速度有小数时需要取整;

(500 - oDiv.offsetLeft) / 7 = iSpeed; iSpeed = iSpeed>0?Math.ceil(iSpeed):Math.floor(iSpeed);

例子1:滑块缓冲运动

<!doctype html>
<html>
<head>
<meta charset="utf-8">
<title>缓冲运动</title>
<style>
#div1{ width:100px; height:100px; background:red; position:absolute; top:50px; left:0;}
span{ width:1px; height:300px; background:black; position:absolute; left:300px; top:0; display:block;}
</style>
<script>
window.onload = function()
{
 var oBtn = document.getElementById('btn1');
 var oDiv = document.getElementById('div1');
 oBtn.onclick = function()
 {
  startMove(oDiv, 300);
 };
};
var timer = null;
function startMove(obj, iTarget)
{
 clearInterval(timer);
 timer = setInterval(function(){
  var iSpeed = (iTarget - obj.offsetLeft)/8;
  iSpeed = iSpeed>0?Math.ceil(iSpeed):Math.floor(iSpeed);
  if(iTarget==obj.offsetLeft){
   clearInterval(timer);
  }else{
   obj.style.left = obj.offsetLeft + iSpeed + 'px';
  }
 }, 30);
}
</script>
</head>
<body>
<input id="btn1" type="button" value="移动" />
<div id="div1"></div>
<span></span>
</body>
</html>

例子2:侧边栏滑动

<!doctype html>
<html>
<head>
<meta charset="utf-8">
<title>侧边栏滑动</title>
<style>
#div1{ width:100px; height:100px; background:red; position:absolute; right:0; top:0;}
</style>
<script>
window.onload = window.onscroll = function()
{
 var oDiv = document.getElementById('div1');
 var iScrollTop = document.documentElement.scrollTop || document.body.scrollTop;
 var clientHeight = document.documentElement.clientHeight;
 var iH = (clientHeight - oDiv.offsetHeight)/2 + iScrollTop;
 //oDiv.style.top = iH + 'px';
 startMove(oDiv, parseInt(iH));
};
var timer = null;
function startMove(obj, iTarget)
{
 clearInterval(timer);
 timer = setInterval(function(){
  var iSpeed = (iTarget - obj.offsetTop) / 8;
  iSpeed = iSpeed>0?Math.ceil(iSpeed):Math.floor(iSpeed);
  if(obj.offsetTop == iTarget){
   clearInterval(timer);
  }else{
   obj.style.top = obj.offsetTop + iSpeed + 'px';
  }
 }, 30);
}
</script>
</head>
<body style="height:2000px;">
<div id="div1"></div>
</body>
</html>

更多关于JavaScript运动效果相关内容可查看本站专题:《JavaScript运动效果与技巧汇总》

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

Javascript 相关文章推荐
js的event详解。
Sep 06 Javascript
javascript一点特殊用法
May 28 Javascript
js计算页面刷新的次数
Jul 20 Javascript
使用js判断控件是否获得焦点
Jan 03 Javascript
JavaScript实现大数的运算
Nov 24 Javascript
Extjs4.0 ComboBox如何实现三级联动
May 11 Javascript
AngularJs IE Compatibility 兼容老版本IE
Sep 01 Javascript
详解使用grunt完成requirejs的合并压缩和js文件的版本控制
Mar 02 Javascript
如何使用vuex实现兄弟组件通信
Nov 02 Javascript
vuejs简单验证码功能完整示例
Jan 08 Javascript
vue.js高德地图实现热点图代码实例
Apr 18 Javascript
详解vue中多个有顺序要求的异步操作处理
Oct 29 Javascript
jQuery抛物线运动实现方法(附完整demo源码下载)
Jan 08 #Javascript
基于javascript实现右下角浮动广告效果
Jan 08 #Javascript
jQuery数据类型小结(14个)
Jan 08 #Javascript
JS运动相关知识点小结(附弹性运动示例)
Jan 08 #Javascript
基于jquery实现图片上传本地预览功能
Jan 08 #Javascript
JavaScript拖拽、碰撞、重力及弹性运动实例分析
Jan 08 #Javascript
jQuery实现本地预览上传图片功能
Jan 08 #Javascript
You might like
PHP setcookie() cannot modify header information 的解决方法
2009/01/09 PHP
使用php+Ajax实现唯一校验实现代码[简单应用]
2011/11/29 PHP
PHP插入排序实现代码
2013/04/04 PHP
Linux下php5.4启动脚本
2014/08/03 PHP
CI框架中cookie的操作方法分析
2014/12/12 PHP
Web程序工作原理详解
2014/12/25 PHP
php截取字符串函数分享
2015/02/02 PHP
通过php动态传数据到highcharts
2017/04/05 PHP
Maps Javascript
2007/01/22 Javascript
JS获取地址栏参数的几种方法小结
2014/02/28 Javascript
jQuery学习笔记之2个小技巧
2015/01/19 Javascript
JS模式之单例模式基本用法
2015/06/30 Javascript
JS实现的5级联动Select下拉选择框实例
2015/08/17 Javascript
JavaScript操作HTML元素和样式的方法详解
2015/10/21 Javascript
JavaScript简单实现弹出拖拽窗口(一)
2016/06/17 Javascript
jQuery如何解决IE输入框不能输入的问题
2016/10/08 Javascript
Angular5中提取公共组件之radio list的实例代码
2018/07/10 Javascript
微信小程序的授权实现过程解析
2019/08/02 Javascript
微信小程序官方动态自定义底部tabBar的例子
2019/09/04 Javascript
JQuery使用数组遍历跳出each循环
2020/09/01 jQuery
整理Python 常用string函数(收藏)
2016/05/30 Python
python-opencv颜色提取分割方法
2018/12/08 Python
python 定时任务去检测服务器端口是否通的实例
2019/01/26 Python
TensorBoard 计算图的可视化实现
2020/02/15 Python
Python装饰器用法与知识点小结
2020/03/09 Python
前端实现打印图像功能
2019/08/27 HTML / CSS
猫咪家具:CatsPlay
2018/11/03 全球购物
说出ArrayList,Vector, LinkedList的存储性能和特性
2015/01/04 面试题
献爱心倡议书
2014/04/14 职场文书
小学班主任评语大全
2014/04/23 职场文书
商场周年庆活动方案
2014/08/19 职场文书
党的群众路线教育实践活动个人对照检查材料范文
2014/09/25 职场文书
大学生村官工作总结2015
2015/04/09 职场文书
小学语文教学反思范文
2016/03/03 职场文书
SQL注入的实现以及防范示例详解
2021/06/02 MySQL
海贼王十大潜力果实,路飞仅排第十,第一可毁世界(震震果实)
2022/03/18 日漫