javascript多物体运动实现方法分析


Posted in Javascript onJanuary 08, 2016

本文实例讲述了javascript多物体运动实现方法。分享给大家供大家参考,具体如下:

这里需要注意每个运动物体的定时器作为物体的属性独立出来互不影响,属性与运动对象绑定,不能公用

运行效果截图如下:

javascript多物体运动实现方法分析

例子:

<!doctype html>
<html>
<head>
<meta charset="utf-8">
<title>多物体运动</title>
<style>
div{ width:100px; height:100px; background:red; float:left; margin:10px; border:1px solid black; opacity:0.3; filter:alpha(opacity=30);}
</style>
<script>
window.onload = function()
{
 var aDiv = document.getElementsByTagName('div');
 aDiv[0].onmouseover = function()
 {
  startMove(this, 'width', 300);
 };
 aDiv[0].onmouseout = function()
 {
  startMove(this, 'width', 100);
 };
 aDiv[1].onmouseover = function()
 {
  startMove(this, 'height', 300);
 };
 aDiv[1].onmouseout = function()
 {
  startMove(this, 'height', 100);
 };
 aDiv[2].onmouseover = function()
 {
  startMove(this, 'opacity', 100);
 };
 aDiv[2].onmouseout = function()
 {
  startMove(this, 'opacity', 30);
 };
 aDiv[3].onmouseover = function()
 {
  startMove(this, 'borderWidth', 20);
 };
 aDiv[3].onmouseout = function()
 {
  startMove(this, 'borderWidth', 1);
 };
};
function getStyle(obj, attr)
{
 if(obj.currentStyle){
  return obj.currentStyle[attr];
 }else{
  return getComputedStyle(obj, false)[attr];
 }
}
function startMove(obj, attr, iTarget)
{
 clearInterval(obj.timer);
 obj.timer = setInterval(function(){
  var iCur = 0;
  if(attr == 'opacity'){
   iCur = parseInt(parseFloat(getStyle(obj, attr)) * 100);   
  }else{
   iCur = parseInt(getStyle(obj, attr));
  }
  var iSpeed = (iTarget - iCur) / 8;
  iSpeed = iSpeed > 0 ? Math.ceil(iSpeed) : Math.floor(iSpeed);
  if(iCur == iTarget){
   clearInterval(obj.timer);
  }else{
   if(attr == 'opacity'){
    obj.style.filter = 'alpha(opacity='+ (iCur+iSpeed) +')';
    obj.style.opacity = (iCur+iSpeed)/100;
   }else{
    obj.style[attr] = iCur + iSpeed + 'px';
   }
  }
 }, 30);
}
</script>
</head>
<body>
<div></div>
<div></div>
<div></div>
<div></div>
</body>
</html>

更多关于JavaScript运动效果相关内容可查看本站专题:《JavaScript运动效果与技巧汇总》

希望本文所述对大家JavaScript程序设计有所帮助。

Javascript 相关文章推荐
javascript使用eval或者new Function进行语法检查
Oct 16 Javascript
javascript中解析四则运算表达式的算法和示例
Aug 11 Javascript
javaScript中with函数用法实例分析
Jun 08 Javascript
JS获取时间的相关函数及时间戳与时间日期之间的转换
Feb 04 Javascript
jquery实现页面常用的返回顶部效果
Mar 04 Javascript
浅析Node.js实现HTTP文件下载
Aug 05 Javascript
[原创]SyntaxHighlighter自动识别并加载脚本语言
Feb 07 Javascript
JS实现的将html转为pdf功能【基于浏览器端插件jsPDF】
Feb 06 Javascript
详解webpack import()动态加载模块踩坑
Jul 17 Javascript
如何使用50行javaScript代码实现简单版的call,apply,bind
Aug 14 Javascript
Layui 导航默认展开和菜单栏选中高亮设置的方法
Sep 04 Javascript
JS自定义对象创建与简单使用方法示例
Jan 15 Javascript
jQuery插件之Tocify动态节点目录菜单生成器附源码下载
Jan 08 #Javascript
javascript匀速运动实现方法分析
Jan 08 #Javascript
js如何改变文章的字体大小
Jan 08 #Javascript
JavaScript缓冲运动实现方法(2则示例)
Jan 08 #Javascript
jQuery抛物线运动实现方法(附完整demo源码下载)
Jan 08 #Javascript
基于javascript实现右下角浮动广告效果
Jan 08 #Javascript
jQuery数据类型小结(14个)
Jan 08 #Javascript
You might like
php中Smarty模板初体验
2011/08/08 PHP
FireFox浏览器使用Javascript上传大文件
2013/10/30 PHP
yii框架通过控制台命令创建定时任务示例
2014/04/30 PHP
img标签中onerror用法
2009/08/13 Javascript
jquery 图片轮换效果
2010/07/29 Javascript
Jquery网页出现的乱码问题的三种解决方法
2013/06/30 Javascript
优化Node.js Web应用运行速度的10个技巧
2014/09/03 Javascript
谈谈因Vue.js引发关于getter和setter的思考
2016/12/02 Javascript
Node.JS中事件轮询(Event Loop)的解析
2017/02/25 Javascript
Vue.js基础指令实例讲解(各种数据绑定、表单渲染大总结)
2017/07/03 Javascript
VueJs使用Amaze ui调整列表和内容页面
2017/11/30 Javascript
Vue DevTools调试工具的使用
2017/12/05 Javascript
nodejs+mongodb aggregate级联查询操作示例
2018/03/17 NodeJs
Vue.js递归组件实现组织架构树和选人功能案例分析
2019/07/03 Javascript
jQuery中event.target和this的区别详解
2020/08/13 jQuery
图解JS原型和原型链实现原理
2020/09/15 Javascript
python中解析json格式文件的方法示例
2017/05/03 Python
python中MethodType方法介绍与使用示例
2017/08/03 Python
Python实现PS滤镜功能之波浪特效示例
2018/01/26 Python
利用numpy和pandas处理csv文件中的时间方法
2018/04/19 Python
Python一个简单的通信程序(客户端 服务器)
2019/03/06 Python
详解numpy的argmax的具体使用
2019/05/27 Python
Python使用import导入本地脚本及导入模块的技巧总结
2019/08/07 Python
Python GUI编程学习笔记之tkinter事件绑定操作详解
2020/03/30 Python
英国时尚家具、家居饰品及礼品商店:Graham & Green
2016/09/15 全球购物
FORZIERI澳大利亚站:全球顶级奢华配饰精品店
2016/12/31 全球购物
师德个人剖析材料
2014/02/02 职场文书
小学毕业感言150字
2014/02/05 职场文书
期末评语大全
2014/05/04 职场文书
个人自查自纠材料
2014/10/14 职场文书
给老婆的保证书
2015/01/16 职场文书
农村党支部承诺书
2015/04/30 职场文书
叶问观后感
2015/06/15 职场文书
MySQL入门命令之函数-单行函数-流程控制函数
2021/04/05 MySQL
JavaScript阻止事件冒泡的方法
2021/12/06 Javascript
Redis配置外网可访问(redis远程连接不上)的方法
2022/12/24 Redis