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的Pager分页器实现代码
Jul 17 Javascript
window.onload和$(function(){})的区别介绍
Oct 30 Javascript
利用函数的惰性载入提高javascript代码执行效率
May 05 Javascript
jQuery中:last-child选择器用法实例
Dec 31 Javascript
JQuery中serialize() 序列化
Mar 13 Javascript
js中最容易被忽视的事件问题大总结
May 15 Javascript
实例分析js事件循环机制
Dec 13 Javascript
基于vue 动态加载图片src的解决方法
Feb 05 Javascript
elementUI中Table表格问题的解决方法
Dec 04 Javascript
微信小程序Echarts覆盖正常组件问题解决
Jul 13 Javascript
Vue实现购物车详情页面的方法
Aug 20 Javascript
vue 解决setTimeOut和setInterval函数无效报错的问题
Jul 30 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数据库操作面向对象的优点
2006/10/09 PHP
PHP数字格式化
2006/12/06 PHP
php实现的MySQL通用查询程序
2007/03/11 PHP
php 操作数组(合并,拆分,追加,查找,删除等)
2012/07/20 PHP
php数据库备份还原类分享
2014/03/20 PHP
PHP获取当前文件的父目录方法汇总
2016/07/21 PHP
PHP生成腾讯云COS接口需要的请求签名
2018/05/20 PHP
JavaScript高级程序设计
2006/12/29 Javascript
javascript 进度条 实现代码
2009/07/30 Javascript
JavaScript 工具库 Cloudgamer JavaScript Library v0.1 发布
2009/10/29 Javascript
从盛大通行证上摘下来的身份证验证js代码
2011/01/11 Javascript
点击按钮自动加关注的代码(sina微博/QQ空间/人人网/腾讯微博)
2014/01/02 Javascript
JavaScript实现按照指定长度为数字前面补零输出的方法
2015/03/19 Javascript
javascript操作select元素实例分析
2015/03/27 Javascript
深入对Vue.js $watch方法的理解
2017/03/20 Javascript
Angular2.0/4.0 使用Echarts图表的示例代码
2017/12/07 Javascript
Vue通过ref父子组件拿值方法
2018/09/12 Javascript
javascript的this关键字详解
2019/05/20 Javascript
小程序实现日历左右滑动效果
2019/10/21 Javascript
[01:01:13]2018DOTA2亚洲邀请赛 4.5 淘汰赛 Mineski vs VG 第三场
2018/04/06 DOTA
Python基于twisted实现简单的web服务器
2014/09/29 Python
python使用wxPython打开并播放wav文件的方法
2015/04/24 Python
numpy中实现二维数组按照某列、某行排序的方法
2018/04/04 Python
python3转换code128条形码的方法
2019/04/17 Python
解决py2exe打包后,总是多显示一个DOS黑色窗口的问题
2019/06/21 Python
pyqt5 键盘监听按下enter 就登陆的实例
2019/06/25 Python
django model object序列化实例
2020/03/13 Python
python函数超时自动退出的实操方法
2020/12/28 Python
Omio西班牙:全欧洲低价大巴、火车和航班搜索和比价
2017/02/11 全球购物
攀岩、滑雪、徒步旅行装备:Black Diamond Equipment
2019/08/16 全球购物
电气专业推荐信范文
2013/11/18 职场文书
俞敏洪励志演讲稿
2014/04/29 职场文书
销售团队激励口号
2014/06/06 职场文书
依法行政工作汇报
2014/10/28 职场文书
python如何做代码性能分析
2021/04/26 Python
Python内置类型集合set和frozenset的使用详解
2022/04/26 Python