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 读取图片文件的大小
Jun 25 Javascript
防止动态加载JavaScript引起的内存泄漏问题
Oct 08 Javascript
js 函数的副作用分析
Aug 23 Javascript
一个简单的JS鼠标悬停特效具体方法
Jun 17 Javascript
引入autocomplete组件时JS报未结束字符串常量错误
Mar 19 Javascript
JS实现仿QQ聊天窗口抖动特效
May 10 Javascript
JS实现网站菜单拖拽移位效果的方法
Sep 24 Javascript
js表单处理中单选、多选、选择框值的获取及表单的序列化
Mar 08 Javascript
BootStrap 标题设置跨行无效的解决方法
Oct 25 Javascript
vue实现a标签点击高亮方法
Mar 17 Javascript
微信小程序实现图片压缩
Dec 03 Javascript
利用React高阶组件实现一个面包屑导航的示例
Aug 23 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中mysql连接和基本操作代码(快速测试使用,简单方便)
2014/04/25 PHP
php根据生日计算年龄的方法
2015/07/13 PHP
PHP中each与list用法分析
2016/01/08 PHP
php计数排序算法的实现代码(附四个实例代码)
2020/03/31 PHP
火狐textarea输入法的bug的触发及解决
2013/07/24 Javascript
js格式化时间和js格式化时间戳示例
2014/02/10 Javascript
javascript事件函数中获得事件源的两种不错方法
2014/03/17 Javascript
可编辑下拉框的2种实现方式
2014/06/13 Javascript
jQuery ajax提交Form表单实例(附demo源码)
2016/04/06 Javascript
JS快速实现移动端拼图游戏
2016/09/05 Javascript
javascript判断元素存在和判断元素存在于实时的dom中的方法
2017/01/17 Javascript
Angular动态添加、删除输入框并计算值实例代码
2017/03/29 Javascript
JS实现微信里判断页面是否被分享成功的方法
2017/06/06 Javascript
最后说说Vue2 SSR 的 Cookies 问题
2018/05/25 Javascript
vue.js实现标签页切换效果
2018/06/07 Javascript
vue生成token并保存到本地存储中
2018/07/17 Javascript
vue+element-ui实现表格编辑的三种实现方式
2018/10/31 Javascript
微信小程序实现上拉加载功能
2019/11/20 Javascript
Vue移动端项目实现使用手机预览调试操作
2020/07/18 Javascript
vue 如何从单页应用改造成多页应用
2020/10/23 Javascript
js加减乘除精确运算方法实例代码
2021/01/17 Javascript
[00:57]辉夜杯战队访谈宣传片—VG
2015/12/25 DOTA
Python实现的个人所得税计算器示例
2018/06/01 Python
python3中函数参数的四种简单用法
2018/07/09 Python
python实现自动登录后台管理系统
2018/10/18 Python
selenium3+python3环境搭建教程图解
2018/12/07 Python
Python中按值来获取指定的键
2019/03/04 Python
加拿大女鞋品牌:ALDO
2016/11/13 全球购物
澳大利亚头发和美容产品购物网站:OZ Hair & Beauty
2020/03/27 全球购物
告诉你怎样写创业计划书
2014/01/27 职场文书
先进班级集体事迹材料
2014/01/30 职场文书
高中军训感言500字
2014/02/24 职场文书
后勤管理员岗位职责
2014/08/27 职场文书
2014乡党委副书记党建工作汇报材料
2014/11/02 职场文书
西部计划志愿者工作总结
2015/08/11 职场文书
2016年春季运动会广播稿
2015/08/19 职场文书