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实现学校的校历(asp.net+jquery ui 1.72)
Jan 01 Javascript
jQuery实现单击弹出Div层窗口效果(可关闭可拖动)
Sep 19 Javascript
详解原生JavaScript实现jQuery中AJAX处理的方法
May 10 Javascript
Javascript实现图片不间断滚动的代码
Jun 22 Javascript
微信小程序-拍照或选择图片并上传文件
Jan 06 Javascript
JS图片压缩(pc端和移动端都适用)
Jan 12 Javascript
vue+node实现图片上传及预览的示例方法
Nov 22 Javascript
详解使用React.memo()来优化函数组件的性能
Mar 19 Javascript
详解微信小程序开发之formId使用(模板消息)
Aug 27 Javascript
JavaScript判断数组类型的方法
Oct 23 Javascript
js实现mp3录音通过websocket实时传送+简易波形图效果
Jun 12 Javascript
解决antd datepicker 获取时间默认少8个小时的问题
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中用Trait封装单例模式的实现
2019/12/18 PHP
use jscript Create a SQL Server database
2007/06/16 Javascript
让JavaScript 轻松支持函数重载 (Part 1 - 设计)
2009/08/04 Javascript
Highcharts 非常实用的Javascript统计图demo示例
2013/07/03 Javascript
javascript中判断json的方法总结
2015/08/27 Javascript
JavaScript实现斗地主游戏的思路
2016/02/29 Javascript
jQuery 如何给Carousel插件添加新的功能
2016/04/18 Javascript
jQuery Validate 数组 全部验证问题
2017/01/12 Javascript
Mongoose经常返回e11000 error的原因分析
2017/03/29 Javascript
vue2.X组件学习心得(新手必看篇)
2017/07/05 Javascript
基于twbsPagination.js分页插件使用心得(分享)
2017/10/21 Javascript
Vue.js 2.0和Cordova开发webApp环境搭建方法
2018/02/26 Javascript
echarts实现地图定时切换散点与多图表级联联动详解
2018/08/07 Javascript
vue中的router-view组件的使用教程
2018/10/23 Javascript
用WebStorm进行Angularjs 2开发(环境篇:Windows 10,Angular-cli方式)
2018/12/05 Javascript
微信小程序导航栏滑动定位功能示例(实现CSS3的positionsticky效果)
2019/01/24 Javascript
AngularJs中$cookies简单用法分析
2019/05/30 Javascript
Javascript查看大图功能代码实现
2020/05/07 Javascript
js实现金山打字通小游戏
2020/07/24 Javascript
详细讲解用Python发送SMTP邮件的教程
2015/04/29 Python
Python解惑之整数比较详解
2017/04/24 Python
Pycharm编辑器技巧之自动导入模块详解
2017/07/18 Python
python学习——内置函数、数据结构、标准库的技巧(推荐)
2019/04/18 Python
Python 矩阵转置的几种方法小结
2019/12/02 Python
解决Pycharm的项目目录突然消失的问题
2020/01/20 Python
Python如何对齐字符串
2020/07/30 Python
屈臣氏官方旗舰店:亚洲享负盛名的保健及美妆零售商
2019/03/15 全球购物
医大实习自我鉴定
2013/12/07 职场文书
班级寄语大全
2014/04/10 职场文书
入党积极分子评语
2014/05/04 职场文书
社会稳定风险评估方案
2014/06/02 职场文书
企业员工集体活动方案
2014/08/17 职场文书
质监局领导班子践行群众路线整改方案
2014/10/26 职场文书
大学生受助感言
2015/08/01 职场文书
开发一个封装iframe的vue组件
2021/03/29 Vue.js
Python Django项目和应用的创建详解
2021/11/27 Python