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 相关文章推荐
JS是否可以跨文件同时控制多个iframe页面的应用技巧
Dec 16 Javascript
单击和双击事件的冲突处理示例代码
Apr 03 Javascript
gridview生成时如何去掉style属性中的border-collapse
Sep 30 Javascript
JavaScript中几种排序算法的简单实现
Jul 29 Javascript
学习javascript面向对象 实例讲解面向对象选项卡
Jan 04 Javascript
JavaScript、jQuery与Ajax的关系
Jan 24 Javascript
jQuery bt气泡实现悬停显示及移开隐藏功能的方法
Jul 12 Javascript
基于js对象,操作属性、方法详解
Aug 11 Javascript
JS中动态创建元素的三种方法总结(推荐)
Oct 20 Javascript
vue.js数据绑定的方法(单向、双向和一次性绑定)
Jul 13 Javascript
微信小程序实现的一键复制功能示例
Apr 24 Javascript
JavaScript中reduce()的用法
May 11 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
PHP4实际应用经验篇(5)
2006/10/09 PHP
一个简单的PHP验证码实现代码
2014/05/10 PHP
Zend Framework教程之MVC框架的Controller用法分析
2016/03/07 PHP
thinkphp3.x中变量的获取和过滤方法详解
2016/05/20 PHP
微信支付开发发货通知实例
2016/07/12 PHP
php输出含有“#”字符串的方法
2017/01/18 PHP
PHP实现的获取文件mimes类型工具类示例
2018/04/08 PHP
PHP使用JpGraph绘制折线图操作示例【附源码下载】
2019/10/18 PHP
Javascript 原型和继承(Prototypes and Inheritance)
2009/04/01 Javascript
Angular用来控制元素的展示与否的原生指令介绍
2015/01/07 Javascript
简单介绍JavaScript数据类型之隐式类型转换
2015/12/28 Javascript
微信小程序 时间格式化(util.formatTime(new Date))详解
2016/11/16 Javascript
详解基于 axios 的 Vue 项目 http 请求优化
2017/09/04 Javascript
JSON生成Form表单的方法示例
2018/11/21 Javascript
layui字体图标 loading图标静止不旋转的解决方法
2019/09/23 Javascript
layer关闭弹出窗口触发表单提交问题的处理方法
2019/09/25 Javascript
微信小程序scroll-view的滚动条设置实现
2020/03/02 Javascript
python 测试实现方法
2008/12/24 Python
Python基于回溯法子集树模板实现图的遍历功能示例
2017/09/05 Python
Python从零开始创建区块链
2018/03/06 Python
python的中异常处理机制
2018/08/30 Python
IntelliJ IDEA安装运行python插件方法
2018/12/10 Python
Python WEB应用部署的实现方法
2019/01/02 Python
Python with用法:自动关闭文件进程
2019/07/10 Python
WxPython实现无边框界面
2019/11/18 Python
python3格式化字符串 f-string的高级用法(推荐)
2020/03/04 Python
strlen的几种不同实现方法
2013/05/31 面试题
文明家庭先进事迹材
2014/01/27 职场文书
小学课外阅读总结
2014/07/09 职场文书
个人三严三实对照检查材料
2014/09/25 职场文书
查摆问题自查报告范文
2014/10/13 职场文书
优秀少先队辅导员事迹材料
2014/12/24 职场文书
出国留学英文自荐信
2015/03/25 职场文书
朋友聚会开场白
2015/06/01 职场文书
IDEA使用SpringAssistant插件创建SpringCloud项目
2021/06/23 Java/Android
在SQL Server中使用 Try Catch 处理异常的示例详解
2022/07/15 SQL Server