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 相关文章推荐
LazyForm jQuery plugin 定制您的CheckBox Radio和Select
Oct 24 Javascript
juqery 学习之三 选择器 层级 基本
Nov 25 Javascript
JavaScript下利用fso判断文件是否存在的代码
Dec 11 Javascript
高性能Javascript笔记 数据的存储与访问性能优化
Aug 02 Javascript
JS控件的生命周期介绍
Oct 22 Javascript
js获取控件位置以及不同浏览器中的差别介绍
Aug 08 Javascript
Jquery基础之事件操作详解
Jun 14 Javascript
浅谈vue父子组件怎么传值
Jul 21 Javascript
webpack配置proxyTable时pathRewrite无效的解决方法
Dec 13 Javascript
jquery中attr、prop、data区别与用法分析
Sep 25 jQuery
vue中keep-alive、activated的探讨和使用详解
Jul 26 Javascript
JavaScript小技巧带你提升你的代码技能
Sep 15 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 header 跳转
2013/06/17 PHP
ThinkPHP使用心得分享-分页类Page的用法
2014/05/15 PHP
使用PHP生成图片的缩略图的方法
2015/08/18 PHP
Yii框架getter与setter方法功能与用法分析
2019/10/22 PHP
js之WEB开发调试利器:Firebug 下载
2007/01/13 Javascript
Javascript下的keyCode键码值表
2007/04/10 Javascript
IE的fireEvent方法概述及应用
2013/02/22 Javascript
以JSON形式将JS中Array对象数组传至后台的方法
2014/01/06 Javascript
基于JQuery实现滚动到页面底端时自动加载更多信息
2014/01/31 Javascript
jQuery实现查找链接文字替换属性的方法
2016/06/27 Javascript
JavaScript实现解析INI文件内容的方法
2016/11/17 Javascript
js仿新浪微博消息发布功能
2017/02/17 Javascript
微信小程序 配置顶部导航条标题颜色的实现方法
2017/09/20 Javascript
vue.js项目nginx部署教程
2018/04/05 Javascript
详解如何在微信小程序中愉快地使用sass
2018/07/30 Javascript
CountUp.js实现数字滚动增值效果
2019/10/17 Javascript
微信小程序实现图片压缩
2019/12/03 Javascript
JS实现简单日历特效
2020/01/03 Javascript
javascript 内存模型实例详解
2020/04/18 Javascript
小程序开发之模态框组件封装
2020/04/23 Javascript
[44:41]Fnatic vs Liquid 2018国际邀请赛小组赛BO2 第二场 8.16
2018/08/17 DOTA
Python实现二维数组按照某行或列排序的方法【numpy lexsort】
2017/09/22 Python
Django中使用Celery的教程详解
2018/08/24 Python
Python绘制并保存指定大小图像的方法
2019/01/10 Python
Python判断telnet通不通的实例
2019/01/26 Python
Python序列化与反序列化pickle用法实例
2019/11/11 Python
python numpy生成等差数列、等比数列的实例
2020/02/25 Python
python爬虫中抓取指数的实例讲解
2020/12/01 Python
公司年会演讲稿范文
2014/01/11 职场文书
社区十八大感言
2014/01/19 职场文书
大专生求职信
2014/06/29 职场文书
医生个人年终总结
2015/02/28 职场文书
毕业论文致谢词
2015/05/14 职场文书
最美劳动诗,致敬所有的劳动者!
2019/07/12 职场文书
Golang二维切片初始化的实现
2021/04/08 Golang
微信小程序实现录音Record功能
2021/05/09 Javascript