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 相关文章推荐
JavaScript浏览器选项卡效果
Aug 25 Javascript
jquery 插件学习(三)
Aug 06 Javascript
鼠标焦点离开文本框时验证的js代码
Jul 19 Javascript
JavaScript动态创建link标签到head里的方法
Dec 22 Javascript
jQuery获取checkboxlist的value值的方法
Sep 27 Javascript
JQuery EasyUI 结合ztrIee的后台页面开发实例
Sep 01 jQuery
Vue2.0父组件与子组件之间的事件发射与接收实例代码
Sep 19 Javascript
Vuex 入门教程
Jan 10 Javascript
如何编写一个d.ts文件的步骤详解
Apr 13 Javascript
angular6.x中ngTemplateOutlet指令的使用示例
Aug 09 Javascript
关于Vue中axios的封装实例详解
Oct 20 Javascript
JS对日期操作封装代码实例
Nov 08 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 面试碰到过的问题 在此做下记录
2011/06/09 PHP
destoon网站转移服务器后搜索汉字出现乱码的解决方法
2014/06/21 PHP
php实现utf-8转unicode函数分享
2015/01/06 PHP
4种Windows系统下Laravel框架的开发环境安装及部署方法详解
2020/04/06 PHP
基于jquery的自定义鼠标提示效果 jquery.toolTip
2010/11/14 Javascript
jQuery之ajax技术的详细介绍
2013/06/19 Javascript
用JS将搜索的关键字高亮显示实现代码
2013/11/08 Javascript
浅谈JavaScript字符集
2014/05/22 Javascript
javascript设计模式之对象工厂函数与构造函数详解
2015/07/30 Javascript
js判断上传文件后缀名是否合法
2016/01/28 Javascript
window.onload绑定多个事件的两种解决方案
2016/05/15 Javascript
js动态添加的DIV中的onclick事件简单实例
2016/07/25 Javascript
前端开发必知的15个jQuery小技巧
2017/01/22 Javascript
jQuery实现可拖动进度条实例代码
2017/06/21 jQuery
vue 搭建后台系统模块化开发详解
2019/05/01 Javascript
[01:33]真香警告!DOTA2勇士令状不朽珍藏Ⅱ饰品欣赏
2018/06/26 DOTA
django 将model转换为字典的方法示例
2018/10/16 Python
Python字典的基本用法实例分析【创建、增加、获取、修改、删除】
2019/03/05 Python
python中break、continue 、exit() 、pass终止循环的区别详解
2019/07/08 Python
Python3实现二叉树的最大深度
2019/09/30 Python
Python守护进程实现过程详解
2020/02/10 Python
python hmac模块验证客户端的合法性
2020/11/07 Python
CSS3 新增选择器的实例
2019/11/13 HTML / CSS
墨西哥网上购物:Linio墨西哥
2016/10/20 全球购物
世界上最大的折扣香水店:FragranceNet.com
2016/10/26 全球购物
荷兰网上鞋店:Ziengs.nl
2017/01/02 全球购物
ASOS西班牙官网:英国在线时尚和美容零售商
2020/01/10 全球购物
档案接收函
2014/01/13 职场文书
文员试用期转正自我鉴定
2014/09/14 职场文书
运动会400米加油稿(8篇)
2014/09/22 职场文书
乡党委干部党的群众路线教育实践活动个人对照检查材料思想汇报
2014/10/01 职场文书
工作失职造成投诉的检讨书范文
2014/10/05 职场文书
三下乡个人总结
2015/03/04 职场文书
2015年社区工会工作总结
2015/05/26 职场文书
加强党性修养心得体会
2016/01/21 职场文书
干货:企业内部人才推荐奖励方案!
2019/07/09 职场文书