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 变量作用域 两个可能会被忽略的小特性
Mar 23 Javascript
JQuery扩展插件Validate 1 基本使用方法并打包下载
Sep 05 Javascript
JS获取键盘上任意按键的值(实例代码)
Nov 12 Javascript
js toFixed()方法的重写实现精度的统一
Mar 06 Javascript
JS组件系列之Bootstrap Icon图标选择组件
Jan 28 Javascript
JS学习之表格的排序简单实例
May 16 Javascript
简单实现的JQuery文本框水印插件
Jun 14 Javascript
js基于setTimeout与setInterval实现多线程
Jun 17 Javascript
JS奇技之利用scroll来监听resize详解
Jun 15 Javascript
angular或者js怎么确定选中ul中的哪几个li
Aug 16 Javascript
从源码看angular/material2 中 dialog模块的实现方法
Oct 18 Javascript
你知道JavaScript Symbol类型怎么用吗
Jan 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原理之异常机制深入分析
2010/08/08 PHP
YiiFramework入门知识点总结(图文教程)
2015/12/28 PHP
javascript动态改变img的src属性图片不显示的解决方法
2010/10/20 Javascript
浅析jquery某一元素重复绑定的问题
2014/01/03 Javascript
jquery.ajax的url中传递中文乱码问题的解决方法
2014/02/07 Javascript
jQuery中next()方法用法实例
2015/01/07 Javascript
jQuery中next方法用法实例
2015/04/24 Javascript
JavaScript中的fontsize()方法使用详解
2015/06/08 Javascript
jQuery插件ImageDrawer.js实现动态绘制图片动画(附源码下载)
2016/02/25 Javascript
JavaScript事件学习小结(一)事件流
2016/06/09 Javascript
Node.js中常规的文件操作总结
2016/10/13 Javascript
详解ESLint在Vue中的使用小结
2018/10/15 Javascript
Javascript中弹窗confirm与prompt的区别
2018/10/26 Javascript
基于layui框架响应式布局的一些使用详解
2019/09/16 Javascript
在vue-cli创建的项目中使用sass操作
2020/08/10 Javascript
一篇文章带你从零快速上手Rollup
2020/09/07 Javascript
[01:27:43]VGJ.S vs TNC Supermajor 败者组 BO3 第三场 6.6
2018/06/07 DOTA
跟老齐学Python之集合的关系
2014/09/24 Python
Python基于PycURL实现POST的方法
2015/07/25 Python
Django使用Mysql数据库已经存在的数据表方法
2018/05/27 Python
python实现公司年会抽奖程序
2019/01/22 Python
Django之模板层的实现代码
2019/09/09 Python
Python小程序之在图片上加入数字的代码
2019/11/26 Python
python输出pdf文档的实例
2020/02/13 Python
django restframework serializer 增加自定义字段操作
2020/07/15 Python
解决Pyinstaller打包软件失败的一个坑
2021/03/04 Python
HTML5新增的8类INPUT输入类型介绍
2015/07/06 HTML / CSS
阿迪达斯奥地利官方商城:adidas.at
2016/10/16 全球购物
彪马日本官网:PUMA日本
2019/01/31 全球购物
Right-on官方网站:日本知名的休闲服装品牌
2019/07/12 全球购物
师范教师大学生职业生涯规划范文
2014/01/05 职场文书
优秀教师工作感言
2014/02/16 职场文书
大学生励志演讲稿
2014/04/25 职场文书
学雷锋标兵事迹材料
2014/08/18 职场文书
MySQL如何快速创建800w条测试数据表
2022/03/17 MySQL
Meta增速拉垮,元宇宙难当重任
2022/04/29 数码科技