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 相关文章推荐
jquery封装的对话框简单实现
Jul 21 Javascript
jquery实现带复选框的表格行选中删除时高亮显示
Aug 01 Javascript
写得不错的jquery table鼠标经过变色代码
Sep 27 Javascript
用JS实现3D球状标签云示例代码
Dec 01 Javascript
js 立即调用的函数表达式如何写
Jan 12 Javascript
EasyUI学习之Combobox级联下拉列表(2)
Dec 29 Javascript
利用node.js搭建简单web服务器的方法教程
Feb 20 Javascript
浅谈Angular 观察者模式理解
Nov 01 Javascript
Vue中Table组件Select的勾选和取消勾选事件详解
Mar 19 Javascript
Vue CL3 配置路径别名详解
May 30 Javascript
Javascript实现鼠标点击冒泡特效
Dec 24 Javascript
Vue插件之滑动验证码用法详解
Apr 05 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
德生9700DX电路分析
2021/03/02 无线电
php 无限级数据JSON格式及JS解析
2010/07/17 PHP
ThinkPHP框架搭建及常见问题(XAMPP安装失败、Apache/MySQL启动失败)
2016/04/15 PHP
动态调用css文件——jquery的应用
2007/02/20 Javascript
safari,opera嵌入iframe页面cookie读取问题解决方法
2010/06/23 Javascript
Javascript在IE和FireFox中的不同表现简析
2012/12/03 Javascript
javascript判断两个IP地址是否在同一个网段的实现思路
2013/12/13 Javascript
网页禁用右键菜单和鼠标拖动选择方法小结
2015/02/25 Javascript
jQuery实现的超酷苹果风格图标滑出菜单效果代码
2015/09/16 Javascript
浅谈jquery.form.js的ajaxSubmit和ajaxForm的使用
2016/09/09 Javascript
分享一个原生的JavaScript拖动方法
2016/09/25 Javascript
浅谈vue-router2路由参数注意的问题
2017/11/08 Javascript
微信小程序使用form表单获取输入框数据的实例代码
2018/05/17 Javascript
vue+vue-router转场动画的实例代码
2018/09/01 Javascript
写一个Vue Popup组件
2019/02/25 Javascript
nodejs使用node-xlsx生成excel的方法示例
2019/08/22 NodeJs
js+css3实现简单时钟特效
2020/09/13 Javascript
[01:14]DOTA2 7.22版本新增神杖效果展示(智力英雄篇)
2019/05/29 DOTA
零基础写python爬虫之爬虫的定义及URL构成
2014/11/04 Python
Python正则表达式匹配HTML页面编码
2015/04/08 Python
12步入门Python中的decorator装饰器使用方法
2016/06/20 Python
TensorFlow利用saver保存和提取参数的实例
2018/07/26 Python
Python中的Socket 与 ScoketServer 通信及遇到问题解决方法
2019/04/01 Python
ubuntu 16.04下python版本切换的方法
2019/06/14 Python
基于Django的乐观锁与悲观锁解决订单并发问题详解
2019/07/31 Python
使用opencv将视频帧转成图片输出
2019/12/10 Python
python使用信号量动态更新配置文件的操作
2020/04/01 Python
写好自荐信的技巧
2013/11/08 职场文书
教师职称自我鉴定
2014/02/12 职场文书
小学生寒假家长评语
2014/04/16 职场文书
网络技术专业求职信
2014/05/02 职场文书
公司承诺书范文
2014/05/19 职场文书
写给消防战士们的一封慰问信
2019/10/07 职场文书
Springboot/Springcloud项目集成redis进行存取的过程解析
2021/12/04 Redis
python实现商品进销存管理系统
2022/05/30 Python
在ubuntu下安装go开发环境的全过程
2022/08/05 Golang