js实现同一页面多个运动效果的方法


Posted in Javascript onApril 10, 2015

本文实例讲述了js实现同一页面多个运动效果的方法。分享给大家供大家参考。具体分析如下:

实现原理,就是在调用的时候,给这五个元素,循环加上事件。需要注意的是,每个元素的定时器需要分开。

要点一:

var speed = (target - obj.offsetWidth)/8;

缓冲运动效果,一开始速度很快,然后越来越慢,直到停止

speed = speed>0?Math.ceil(speed):Math.floor(speed);

如果速度大于0,则向上取整,如果速度小于0,则向下取整。

要点二:

if(obj.offsetWidth == target){
clearInterval(obj.timer);
}else{
obj.style.width = obj.offsetWidth+speed+"px";
}

元素宽度和目标值比较,如果相等,关闭定时器,否则,宽度继续增加。

要点三:

for(i=0; i<runs_li.length; i++){
runs_li[i].timer = null;
runs_li[i].onmouseover = function(){
startrun(this,300);
}
runs_li[i].onmouseout = function(){
startrun(this,80);
}
}

给每个元素加上各自的定时器属性,各自的鼠标事件,在鼠标事件中调用运动函数。

最后,上代码:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" 
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>无标题文档</title>
<style>
body,ul,li{margin:0; padding:0;}
#runs li{width:80px; height:80px; background:#06c; list-style:none;
position:absolute; left:0;}
</style>
<script>
window.onload = function(){
 var runs = document.getElementById("runs");
 var runs_li = runs.getElementsByTagName("li");
 var i=0;
 for(i=0; i<runs_li.length; i++){
 runs_li[i].timer = null;
 runs_li[i].onmouseover = function(){
  startrun(this,300);
 }
 runs_li[i].onmouseout = function(){
  startrun(this,80);
 }
 }
}
function startrun(obj,target){
 clearInterval(obj.timer);
 obj.timer = setInterval(function(){
 var speed = (target - obj.offsetWidth)/8;
 speed = speed>0?Math.ceil(speed):Math.floor(speed);
 
 if(obj.offsetWidth == target){
  clearInterval(obj.timer);
 }else{
  obj.style.width = obj.offsetWidth+speed+"px";
 }
 document.title = obj.offsetWidth + ',' + target;
 },30);
}
</script>
</head>
<body>
<ul id="runs">
 <li style="top:0">1</li>
 <li style="top:90px;">2</li>
 <li style="top:180px;">3</li>
 <li style="top:270px;">4</li>
 <li style="top:360px;">5</li>
</ul>
</body>
</html>

希望本文所述对大家的javascript程序设计有所帮助。

Javascript 相关文章推荐
ext jquery 简单比较
Apr 07 Javascript
javascript动态添加样式(行内式/嵌入式/外链式等规则)
Jun 24 Javascript
jquery获得keycode的示例代码
Dec 30 Javascript
JavaScript中Number.MAX_VALUE属性的使用方法
Jun 04 Javascript
如何使用Bootstrap的modal组件自定义alert,confirm和modal对话框
Mar 01 Javascript
实例学习JavaScript读取和写入cookie
Jan 29 Javascript
用ES6写全屏滚动插件的示例代码
May 02 Javascript
小程序实现自定义导航栏适配完美版
Apr 02 Javascript
angular 实现同步验证器跨字段验证的方法
Apr 11 Javascript
使用layer模态框给新页面传值的方法
Sep 27 Javascript
通过高德地图API获得某条道路上的所有坐标用于描绘道路的方法
Aug 24 Javascript
详解JavaScript中的链式调用
Nov 27 Javascript
js实现同一个页面多个渐变效果的方法
Apr 10 #Javascript
js实现缓冲运动效果的方法
Apr 10 #Javascript
js实现分享到随页面滚动而滑动效果的方法
Apr 10 #Javascript
js实现同一页面多个不同运动效果的方法
Apr 10 #Javascript
js实现类似jquery里animate动画效果的方法
Apr 10 #Javascript
js实现类似新浪微博首页内容渐显效果的方法
Apr 10 #Javascript
javascript中关于&amp;&amp; 和 || 表达式的小技巧分享
Apr 10 #Javascript
You might like
php脚本守护进程原理与实现方法详解
2017/07/20 PHP
JavaScript 闭包在封装函数时的简单分析
2009/11/28 Javascript
js 屏蔽鼠标右键脚本附破解方法
2009/12/03 Javascript
JS注释所产生的bug 即使注释也会执行
2013/11/19 Javascript
登陆成功后自动计算秒数执行跳转
2014/01/23 Javascript
jQuery中removeData()方法用法实例
2014/12/27 Javascript
JavaScript DOM事件(笔记)
2015/04/08 Javascript
跟我学习javascript的垃圾回收机制与内存管理
2015/11/23 Javascript
微信小程序加载更多 点击查看更多
2016/11/29 Javascript
javascript实现二叉树遍历的代码
2017/06/08 Javascript
详解从买域名到使用pm2部署node.js项目全过程
2018/03/07 Javascript
Angular使用cli生成自定义文件、组件的方法
2018/09/04 Javascript
JS数组Object.keys()方法的使用示例
2019/06/05 Javascript
layui表单提交到后台自动封装到实体类的方法
2019/09/12 Javascript
微信小程序按顺序同步执行的两种方式
2019/12/20 Javascript
[01:03:47]VP vs NewBee Supermajor 胜者组 BO3 第一场 6.5
2018/06/06 DOTA
使用Python脚本对Linux服务器进行监控的教程
2015/04/02 Python
python使用post提交数据到远程url的方法
2015/04/29 Python
Python文件读取的3种方法及路径转义
2015/06/21 Python
Python中的CSV文件使用&quot;with&quot;语句的方式详解
2018/10/16 Python
浅谈Python的list中的选取范围
2018/11/12 Python
python打印异常信息的两种实现方式
2019/12/24 Python
Tensorflow的常用矩阵生成方式
2020/01/04 Python
Python数据结构dict常用操作代码实例
2020/03/12 Python
解决使用python print打印函数返回值多一个None的问题
2020/04/09 Python
新版Pycharm中Matplotlib不会弹出独立的显示窗口的问题
2020/06/02 Python
解决pycharm中的run和debug失效无法点击运行
2020/06/09 Python
Fairyseason:为个人和批发商提供女装和配件
2017/03/01 全球购物
abstract是什么意思
2012/02/12 面试题
生产班组长岗位职责
2014/01/05 职场文书
房屋买卖委托书格式范本格式
2014/10/13 职场文书
2014年幼儿园学期工作总结
2014/12/05 职场文书
2015年个人剖析材料范文
2014/12/29 职场文书
班委竞选稿范文
2015/11/21 职场文书
七年级作文之秋游
2019/10/21 职场文书
5种方法告诉你如何使JavaScript 代码库更干净
2021/09/15 Javascript