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 相关文章推荐
javascript定时保存表单数据的代码
Mar 17 Javascript
jquery.cookie用法详细解析
Dec 18 Javascript
JavaScript获取网页中第一个链接ID的方法
Apr 03 Javascript
swtich/if...else的替代语句
Aug 16 Javascript
Js制作点击输入框时默认文字消失的效果
Sep 05 Javascript
JS取数字小数点后两位或n位的简单方法
Oct 24 Javascript
jquery实现百叶窗效果
Jan 12 Javascript
在knockoutjs 上自己实现的flux(实例讲解)
Dec 18 Javascript
vue实现页面内容禁止选中功能,仅输入框和文本域可选
Nov 09 Javascript
基于PHP pthreads实现多线程代码实例
Jun 24 Javascript
如何利用node转发请求详解
Sep 17 Javascript
详解Vue数据驱动原理
Nov 17 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
phpMyAdmin出现无法载入 mcrypt 扩展,请检查PHP配置的解决方法
2012/03/26 PHP
解析PHP 5.5 新特性
2013/07/02 PHP
ThinkPHP中的三大自动简介
2014/08/22 PHP
PHP实现批量生成App各种尺寸Logo
2015/03/19 PHP
PHP随机生成信用卡卡号的方法
2015/03/23 PHP
ThinkPHP里用U方法调用js文件实例
2015/06/18 PHP
php编程中echo用逗号和用点号连接的区别
2016/03/26 PHP
php使用curl实现ftp文件下载功能
2017/05/16 PHP
PHP实现微信对账单处理
2018/10/01 PHP
JavaScript call apply使用 JavaScript对象的方法绑定到DOM事件后this指向问题
2011/09/28 Javascript
用IE重起计算机或者关机的示例代码
2014/03/10 Javascript
javascript比较两个日期相差天数的方法
2015/07/24 Javascript
jQuery改变form表单的action,并进行提交的实现代码
2016/05/25 Javascript
angular分页指令操作
2017/01/09 Javascript
javascript基本常用排序算法解析
2017/09/27 Javascript
微信小程序实现日历功能
2018/11/27 Javascript
详解微信小程序支付流程与梳理
2019/07/16 Javascript
layui使用label标签的方法
2019/09/14 Javascript
python2.7安装图文教程
2018/03/13 Python
Python中判断输入是否为数字的实现代码
2018/05/26 Python
Python3最长回文子串算法示例
2019/03/04 Python
Python字典的基本用法实例分析【创建、增加、获取、修改、删除】
2019/03/05 Python
Python使用进程Process模块管理资源
2020/03/05 Python
基于python实现获取网页图片过程解析
2020/05/11 Python
Python高并发解决方案实现过程详解
2020/07/31 Python
浅析Python打包时包含静态文件处理方法
2021/01/15 Python
基于css3 animate制作绚丽的动画效果
2015/11/24 HTML / CSS
纯CSS3实现圆圈动态发光特效动画的示例代码
2021/03/08 HTML / CSS
Maison Lab荷兰:名牌Outlet购物
2018/08/10 全球购物
澳大利亚最大的在线美发和美容零售商之一:My Hair Care & Beauty
2019/08/24 全球购物
LN-CC中国:高端男装和女装的奢侈时尚目的地
2019/09/14 全球购物
银行会计职员个人的自我评价
2013/09/29 职场文书
金融专业求职信
2014/08/05 职场文书
2016年小学感恩节活动总结
2016/04/01 职场文书
redis的list数据类型相关命令介绍及使用
2022/01/18 Redis
mysql全面解析json/数组
2022/07/07 MySQL