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 setTimeout和setInterval的使用方法 说明
Mar 25 Javascript
js监听键盘事件示例代码
Jul 26 Javascript
JQuery对class属性的操作实现按钮开关效果
Oct 11 Javascript
关于JS数组追加数组采用push.apply的问题
Jun 09 Javascript
跟我学习javascript的定时器
Nov 19 Javascript
javascript嵌套函数和在函数内调用外部函数的区别分析
Jan 31 Javascript
jQuery插件form-validation-engine正则表达式操作示例
Feb 09 Javascript
关于页面刷新vuex数据消失问题解决方案
Jul 03 Javascript
限时抢购-倒计时的完整实例(分享)
Sep 17 Javascript
javascript和php使用ajax通信传递JSON的实例
Aug 21 Javascript
超简单的微信小程序轮播图
Nov 22 Javascript
在博客园博文中添加自定义右键菜单的方法详解
Feb 05 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
东芝TOSHIBA RP-F11电路分析
2021/03/02 无线电
PHP及Zend Engine的线程安全模型分析
2011/11/10 PHP
PHP警告Cannot use a scalar value as an array的解决方法
2012/01/11 PHP
PHP中IP地址与整型数字互相转换详解
2014/08/20 PHP
php中文字符串截取方法实例总结
2014/09/30 PHP
支付宝服务窗API接口开发php版本
2016/07/20 PHP
php执行多个存储过程的方法【基于thinkPHP】
2016/11/08 PHP
jquery 模式对话框终极版实现代码
2009/09/28 Javascript
style、 currentStyle、 runtimeStyle区别分析
2010/08/01 Javascript
幻灯片带网页设计中的20个奇妙应用示例小结
2012/05/27 Javascript
alert中断settimeout计时功能
2013/07/26 Javascript
一个非常全面的javascript URL解析函数和分段URL解析方法
2014/04/12 Javascript
JavaScript函数作用域链分析
2015/02/13 Javascript
JavaScript创建一个object对象并操作对象属性的用法
2015/03/23 Javascript
Javascript实现图片轮播效果(二)图片序列节点的控制实现
2016/02/17 Javascript
实例讲解Jquery中隐藏hide、显示show、切换toggle的用法
2016/05/13 Javascript
js 动态添加元素(div、li、img等)及设置属性的方法
2016/07/19 Javascript
微信js-sdk预览图片接口及从拍照或手机相册中选图接口用法示例
2016/10/13 Javascript
JS敏感词过滤代码
2016/12/23 Javascript
详细分析JS函数去抖和节流
2017/12/05 Javascript
angularjs的单选框+ng-repeat的实现方法
2018/09/12 Javascript
jQuery 操作 HTML 元素和属性的方法
2018/11/12 jQuery
pytyon 带有重复的全排列
2013/08/13 Python
Python监控主机是否存活并以邮件报警
2015/09/22 Python
pyqt5 获取显示器的分辨率的方法
2019/06/18 Python
python3.8.1+selenium实现登录滑块验证功能
2020/05/22 Python
Python中实现一行拆多行和多行并一行的示例代码
2020/09/06 Python
python RSA加密的示例
2020/12/09 Python
HTML 5.1来了 9月份正式发布 更新内容预览
2016/04/26 HTML / CSS
欧洲最大的化妆品连锁公司:Douglas道格拉斯
2017/05/06 全球购物
英国排名第一的餐具品牌:Denby Pottery
2019/11/01 全球购物
大学自荐信
2013/12/12 职场文书
企业管理部经理岗位职责
2013/12/24 职场文书
乡镇个人对照检查材料
2014/08/22 职场文书
先进党支部事迹材料
2014/12/24 职场文书
毕业酒会致辞
2015/07/29 职场文书