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 相关文章推荐
js 匿名调用实现代码
Jun 19 Javascript
利用JQuery实现datatables插件的增加和删除行功能
Jan 06 Javascript
详解vuejs几种不同组件(页面)间传值的方式
Jun 01 Javascript
vue实现百度搜索下拉提示功能实例
Jun 14 Javascript
jQuery实现IE输入框完成placeholder标签功能的方法
Sep 20 jQuery
javascript实现QQ空间相册展示源码
Dec 12 Javascript
JavaScript 隐性类型转换步骤浅析
Mar 15 Javascript
JavaScript数组,JSON对象实现动态添加、修改、删除功能示例
May 26 Javascript
JS实现HTML页面中动态显示当前时间完整示例
Jul 30 Javascript
jQuery解析json格式数据示例
Sep 01 jQuery
微信小程序自定义轮播图
Nov 04 Javascript
绘制微信小程序验证码功能的实例代码
Jan 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
在线增减.htpasswd内的用户
2006/10/09 PHP
php入门教程 精简版
2009/12/13 PHP
php cli 方式 在crotab中运行解决
2010/02/08 PHP
php eval函数用法 PHP中eval()函数小技巧
2012/10/31 PHP
基于php上传图片重命名的6种解决方法的详细介绍
2013/04/28 PHP
js宝典学习笔记(上)
2007/01/10 Javascript
JS获取当前网址、主机地址项目根路径
2013/11/19 Javascript
探寻Javascript执行效率问题
2014/11/12 Javascript
jQuery实现带有洗牌效果的动画分页实例
2015/08/31 Javascript
AngularJS 让人爱不释手的八种功能
2016/03/23 Javascript
Bootstrap选项卡与Masonry插件的完美结合
2016/07/06 Javascript
有关suggest快速删除后仍然出现下拉列表的bug问题
2016/12/02 Javascript
JS实现的走迷宫小游戏完整实例
2017/07/19 Javascript
JavaScript继承定义与用法实践分析
2018/05/28 Javascript
详解Vue.js使用Swiper.js在iOS
2018/09/10 Javascript
[02:44]DOTA2英雄基础教程 克林克兹
2014/01/15 DOTA
[05:06]TI4西雅图DOTA2前线报道 海涛密探LGD训练
2014/07/09 DOTA
[02:00]最后,我终于出了辉耀
2018/03/27 DOTA
Python脚本实现代码行数统计代码分享
2015/03/10 Python
python获得文件创建时间和修改时间的方法
2015/06/30 Python
初步认识Python中的列表与位运算符
2015/10/12 Python
Pandas 数据框增、删、改、查、去重、抽样基本操作方法
2018/04/12 Python
PyQt5每天必学之QSplitter实现窗口分隔
2018/04/19 Python
解决python3.5 正常安装 却不能直接使用Tkinter包的问题
2019/02/22 Python
基于YUV 数据格式详解及python实现方式
2019/12/09 Python
anello泰国官方网站:日本流行包包品牌
2019/08/08 全球购物
Nordgreen台湾官网:极简北欧设计手表
2019/08/21 全球购物
婚鞋、新娘鞋、礼服鞋、童鞋:Nina Shoes
2019/09/04 全球购物
行政人员岗位职责
2013/12/08 职场文书
厂长岗位职责
2014/02/19 职场文书
职称评定自我鉴定
2014/03/18 职场文书
幼儿园大班家长评语
2014/04/17 职场文书
解除聘用合同证明书范本
2014/09/11 职场文书
2015年幼师工作总结
2015/04/28 职场文书
Redis Cluster 字段模糊匹配及删除
2021/05/27 Redis
Python学习之异常中的finally使用详解
2022/03/16 Python