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 array(数组)使用字符串作为数组下标的方法
Nov 19 Javascript
原生js和jQuery写的网页选项卡特效对比
Apr 27 Javascript
JavaScript数组迭代器实例分析
Jun 09 Javascript
jQuery实现的多级下拉菜单效果代码
Aug 24 Javascript
jQuery on()方法绑定动态元素的点击事件实例代码浅析
Jun 16 Javascript
javascript事件捕获机制【深入分析IE和DOM中的事件模型】
Dec 15 Javascript
Vue.js 60分钟快速入门教程
Mar 28 Javascript
微信小程序Redux绑定实例详解
Jun 07 Javascript
JavaScript中Object值合并方法详解
Dec 22 Javascript
Vue实现自定义下拉菜单功能
Jul 16 Javascript
微信小程序五子棋游戏AI实现方法【附demo源码下载】
Feb 20 Javascript
js验证密码强度解析
Mar 18 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
一拳超人中怪人协会钦定! S级别最强四人!
2020/03/02 日漫
PHP session有效期问题
2009/04/26 PHP
PHP和Mysql中转UTF8编码问题汇总
2015/10/10 PHP
JavaScript入门教程(5) js Screen屏幕对象
2009/01/31 Javascript
JavaScript学习历程和心得小结
2010/08/16 Javascript
让innerText在firefox火狐和IE浏览器都能用的写法
2011/05/14 Javascript
javascript插入样式实现代码
2012/02/22 Javascript
javascript窗口宽高,鼠标位置,滚动高度(详细解析)
2013/11/18 Javascript
jquery提示效果实例分析
2014/11/25 Javascript
微信小程序实现选项卡功能
2020/06/19 Javascript
Vue实现底部侧边工具栏的实例代码
2018/09/03 Javascript
jQuery内容选择器与表单选择器实例分析
2019/06/28 jQuery
JavaScript生成随机验证码代码实例
2019/09/28 Javascript
javascript如何实现create方法
2019/11/04 Javascript
浅析Vue下的components模板使用及应用
2019/11/27 Javascript
PHP魔术方法__ISSET、__UNSET使用实例
2014/11/25 Python
python使用锁访问共享变量实例解析
2018/02/08 Python
python使用PIL模块获取图片像素点的方法
2019/01/08 Python
python实现定时压缩指定文件夹发送邮件
2020/12/22 Python
pycharm编写spark程序,导入pyspark包的3中实现方法
2019/08/02 Python
python 修改本地网络配置的方法
2019/08/14 Python
Python Scrapy图片爬取原理及代码实例
2020/06/12 Python
python基于opencv实现人脸识别
2021/01/04 Python
DAWGS鞋官方网站:鞋,凉鞋,靴子
2016/10/04 全球购物
澳大利亚购买健身器材网站:Gym Direct
2019/12/19 全球购物
RealTek面试题
2016/06/28 面试题
洗车工岗位职责
2014/03/15 职场文书
家长会主持词
2014/03/26 职场文书
高中生第一学年自我鉴定2015
2014/09/28 职场文书
机关单位2016年法制宣传日活动总结
2016/04/01 职场文书
2016年第十四个公民道德宣传日活动总
2016/04/01 职场文书
2016年社区六一儿童节活动总结
2016/04/06 职场文书
标准版个人借条怎么写?以及什么是借条?
2019/08/28 职场文书
Python 正则模块详情
2021/11/02 Python
如何利用golang运用mysql数据库
2022/03/13 Golang
vue 把二维或多维数组转一维数组
2022/04/24 Vue.js