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 相关文章推荐
jQuery中clone()方法用法实例
Jan 16 Javascript
jQuery实现鼠标滑过Div层背景变颜色的方法
Feb 17 Javascript
基于Turn.js 实现翻书效果实例解析
Jun 20 Javascript
Jquery遍历select option和添加移除option的实现方法
Aug 26 Javascript
如何提高javascript加载速度
Dec 26 Javascript
jQuery使用正则表达式替换dom元素标签用法示例
Jan 16 Javascript
jQuery动态移除与增加onclick属性的方法详解
Jun 07 jQuery
JointJS流程图的绘制方法
Dec 03 Javascript
详解Ant Design of React的安装和使用方法
Dec 27 Javascript
vue element upload实现图片本地预览
Aug 20 Javascript
小程序的上传文件接口的注意要点解析
Sep 17 Javascript
vue仿淘宝滑动验证码功能(样式模仿)
Dec 10 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
现磨咖啡骗局!现磨咖啡=新鲜咖啡?现磨咖啡背后的猫腻你不懂!
2019/03/28 冲泡冲煮
php中call_user_func函数使用注意事项
2014/11/21 PHP
PHP中功能强大却很少使用的函数实例小结
2016/11/10 PHP
laravel-admin select框默认选中的方法
2019/10/03 PHP
详解PHP中的8个魔术常量
2020/07/06 PHP
Javascript实例教程(19) 使用HoTMetal(7)
2006/12/23 Javascript
jquery如何根据值设置默认的选中项
2014/03/17 Javascript
JavaScript中解析JSON数据的三种方法
2015/07/03 Javascript
学习JavaScript设计模式(封装)
2015/11/26 Javascript
jQuery模仿阿里云购买服务器选择购买时间长度的代码
2016/04/29 Javascript
Java Varargs 可变参数用法详解
2020/01/28 Javascript
微信小程序实现录制、试听、上传音频功能(带波形图)
2020/02/27 Javascript
Python的Django中django-userena组件的简单使用教程
2015/05/30 Python
基于Python实现的微信好友数据分析
2018/02/26 Python
Python 十六进制整数与ASCii编码字符串相互转换方法
2018/07/09 Python
python binascii 进制转换实例
2019/06/12 Python
scikit-learn线性回归,多元回归,多项式回归的实现
2019/08/29 Python
kafka监控获取指定topic的消息总量示例
2019/12/23 Python
python读取多层嵌套文件夹中的文件实例
2020/02/27 Python
python实现udp聊天窗口
2020/03/31 Python
Python configparser模块操作代码实例
2020/06/08 Python
Python3 ffmpeg视频转换工具使用方法解析
2020/08/10 Python
matplotlib基础绘图命令之bar的使用方法
2020/08/13 Python
python基于pygame实现飞机大作战小游戏
2020/11/19 Python
Myprotein加拿大官网:欧洲第一的运动营养品牌
2018/01/06 全球购物
澳大利亚领先的在线药房:Pharmacy Online(有中文站)
2020/02/22 全球购物
幼儿教师思想汇报
2014/01/10 职场文书
高中政治教学反思
2014/01/18 职场文书
学术会议邀请函范文
2014/01/22 职场文书
物业总经理助理岗位职责
2014/06/29 职场文书
民主生活会整改措施(党员)
2014/09/18 职场文书
2014年置业顾问工作总结
2014/11/17 职场文书
2014年建筑工程工作总结
2014/12/03 职场文书
学校端午节活动总结
2015/02/11 职场文书
大学生青年志愿者活动总结
2015/05/06 职场文书
Arthas排查Kubernetes中应用频繁挂掉重启异常
2022/02/28 MySQL