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中removeData()方法用法实例
Dec 27 Javascript
js用拖动滑块来控制图片大小的方法
Feb 27 Javascript
javascript学习笔记整理(概述、变量、数据类型简介)
Oct 25 Javascript
jQuery 监控键盘一段时间没输入
Apr 22 Javascript
JS查找字符串中出现次数最多的字符
Sep 05 Javascript
ES6概念 Symbol.keyFor()方法
Dec 25 Javascript
gulp解决跨域的配置文件问题
Jun 08 Javascript
JS面向对象编程基础篇(二) 封装操作实例详解
Mar 03 Javascript
vue 弹出遮罩层样式实例
Jul 22 Javascript
彻底搞懂并解决vue-cli4中图片显示的问题实现
Aug 31 Javascript
Jquery $.map使用方法实例详解
Sep 01 jQuery
利用JavaScript为句子加标题的3种方法示例
Jan 05 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实现mysql数据库操作类分享
2014/02/14 PHP
使用PHP导出Redis数据到另一个Redis中的代码
2014/03/12 PHP
浅析php静态方法与非静态方法的用法区别
2016/05/17 PHP
js 数组克隆方法 小结
2010/03/20 Javascript
JavaScript 设计模式之组合模式解析
2010/04/09 Javascript
一段批量给页面上的控件赋值js
2010/06/19 Javascript
replace()方法查找字符使用示例
2013/10/28 Javascript
javascript正则表达式参数/g与/i及/gi的使用指南
2014/08/27 Javascript
js点击button按钮跳转到另一个新页面
2014/10/10 Javascript
js判断滚动条是否已到页面最底部或顶部实例
2014/11/20 Javascript
JavaScript中rem布局在react中的应用
2015/12/09 Javascript
理解JavaScript表单的基础知识
2016/01/25 Javascript
通过原生JS实现为元素添加事件的方法
2016/11/23 Javascript
js实现选项卡内容切换以及折叠和展开效果【推荐】
2017/01/08 Javascript
原生js实现放大镜效果
2017/01/11 Javascript
Angular中ng-bind和ng-model的区别实例详解
2017/04/10 Javascript
Bootstrap下拉菜单更改为悬停(hover)触发的方法
2017/05/24 Javascript
Python3.x和Python2.x的区别介绍
2013/02/12 Python
python调用shell的方法
2013/11/20 Python
python中的函数用法入门教程
2014/09/02 Python
Python实现的tab文件操作类分享
2014/11/20 Python
Python 操作MySQL详解及实例
2017/04/30 Python
python代码实现逻辑回归logistic原理
2019/08/07 Python
Python多线程Threading、子线程与守护线程实例详解
2020/03/24 Python
PyQt5 如何让界面和逻辑分离的方法
2020/03/24 Python
python opencv进行图像拼接
2020/03/27 Python
css3实现图片遮罩效果鼠标hover以后出现文字
2013/11/05 HTML / CSS
怎样实现H5+CSS3手指滑动切换图片的示例代码
2019/05/05 HTML / CSS
来自美国主售篮球鞋的零售商店:KICKSUSA
2017/11/28 全球购物
皇家道尔顿官网:Royal Doulton
2017/12/06 全球购物
服装创业计划书范文
2014/02/05 职场文书
初中英语课后反思
2014/04/25 职场文书
给校长的建议书300字
2014/05/16 职场文书
明星邀请函
2015/02/02 职场文书
mysql使用 not int 子查询隐含陷阱
2022/04/12 MySQL
CSS实现背景图片全屏铺满自适应的3种方式
2022/07/07 HTML / CSS