JavaScript实现多个物体同时运动


Posted in Javascript onMarch 12, 2020

本文实例为大家分享了JavaScript实现多个物体同时运动的具体代码,供大家参考,具体内容如下

1、多个物体同时运动

 ---例子:多个Div,鼠标移入变宽
  单定时器,存在问题
  每个Div一个定时器

2、多物体运动框架

定时器作为物体的属性
参数的传递:物体、目标值
    ---例子:多个Div淡入淡出
   所有东西都不能公用
   属性与运动对象绑定
:速度、其他属性值(如透明度等)

3、多个Div,鼠标移入变宽的例子

3.1 代码

<head>
 <meta charset="UTF-8">
 <title>多物体运动框架</title>
 <style type="text/css">
 div {
 width: 100px;
 height: 50px;
 background: red;
 margin-top: 50px;
 }
 </style>
 <script type="text/javascript">
 window.onload = function() {
  //获取元素
  var aDiv = document.getElementsByTagName("div");
  for (var i = 0; i < aDiv.length; i++) {
  aDiv[i].onmousemove = function() {
  startMove(this, 300);
  }
  aDiv[i].onmouseout = function() {
  startMove(this, 100);
  }
  }
 }
 //运动函数
 function startMove(obj, iTarget) {
 //清楚定时器函数
 //由于是是适应于多个对象的变化,所以每个DIV有一个定时器
 clearInterval(obj.timer);
 //定时器函数
 //每一个对象,有一个定时器
 obj.timer = setInterval(function() {
  //记录速度
  var iSpeed = (iTarget - obj.offsetWidth) / 5;
  iSpeed = iSpeed > 0 ? Math.ceil(iSpeed) : Math.floor(iSpeed);
  //运动和停止的判断条件
  if (obj.offsetWidth == iTarget) {
  //清楚定时器函数
  clearInterval(obj.timer);
  } else {
  obj.style.width = obj.offsetWidth + iSpeed + 'px';
  }
 }, 30);
 }
 </script>
 </head>
 
 <body>
 <div></div>
 <div></div>
 <div></div>
</body>

3.2 多个DIV淡入淡出的例子

<head>
 <meta charset="UTF-8">
 <title>多物体运动框架</title>
 <style type="text/css">
 div {
 width: 100px;
 height: 100px;
 background: red;
 margin-top: 50px;
 filter: alpha(opacity: 30);
 opacity: 0.3;
 }
 </style>
 <script type="text/javascript">
 window.onload = function() {
  //获取元素
  var aDiv = document.getElementsByTagName("div");
  for (var i = 0; i < aDiv.length; i++) {
  //将alpha作为,物体的一个属性
  aDiv[i].alpha = 30;
  aDiv[i].onmousemove = function() {
  startMove(this, 100);
  }
  aDiv[i].onmouseout = function() {
  startMove(this, 30);
  }
  }
 }
 //运动函数
 function startMove(obj, iTarget) {
 //清楚定时器函数
 clearInterval(obj.timer);
 //定时器函数
 obj.timer = setInterval(function() {
  //记录速度
  var iSpeed = (iTarget - obj.alpha) / 8;
  iSpeed = iSpeed > 0 ? Math.ceil(iSpeed) : Math.floor(iSpeed);
  //运动和停止的判断条件
  if (obj.alpha == iTarget) {
  //清楚定时器函数
  clearInterval(obj.timer);
  } else {
  obj.alpha += iSpeed;
  obj.style.filter = 'alpha(opacity:' + obj.alpha + ')';
  obj.style.opacity = obj.alpha / 100;
  }
 }, 30);
 }
 </script>
 </head>
 
 <body>
 <div></div>
 <div></div>
 <div></div>
 <div></div>
 
</body>

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
为EasyUI的Tab标签添加右键菜单的方法
Jul 14 Javascript
javascript动态加载三
Aug 22 Javascript
微信小程序 生命周期详解
Oct 12 Javascript
微信小程序 使用canvas制作K线实例详解
Jan 12 Javascript
JavaScript输出所选择起始与结束日期的方法
Jul 12 Javascript
微信小程序-getUserInfo回调的实例详解
Oct 27 Javascript
jquery.onoff实现简单的开关按钮功能(推荐)
May 24 jQuery
ES6中let 和 const 的新特性
Sep 03 Javascript
Webpack之tree-starking 解析
Sep 11 Javascript
微信小程序单选radio及多选checkbox按钮用法示例
Apr 30 Javascript
浅谈JS for循环中使用break和continue的区别
Jul 21 Javascript
Openlayers实现距离面积测量
Sep 28 Javascript
基于javascript实现碰撞检测
Mar 12 #Javascript
jQuery使用ajax传递json对象到服务端及contentType的用法示例
Mar 12 #jQuery
js 使用ajax设置和获取自定义header信息的方法小结
Mar 12 #Javascript
javascript实现拖拽碰撞检测
Mar 12 #Javascript
原生js实现碰撞检测
Mar 12 #Javascript
vue实现导航标题栏随页面滚动渐隐渐显效果
Mar 12 #Javascript
three.js利用射线Raycaster进行碰撞检测
Mar 12 #Javascript
You might like
PHP 如何向 MySQL 发送数据
2006/10/09 PHP
从MySQL数据库表中取出随机数据的代码
2007/09/05 PHP
PHP导出MySQL数据到Excel文件(fputcsv)
2011/07/03 PHP
php多文件上传功能实现原理及代码
2013/04/18 PHP
PHP.ini中配置屏蔽错误信息显示和保存错误日志的例子
2014/05/12 PHP
Jquery中ajax方法data参数的用法小结
2014/02/12 Javascript
JavaScript将数字转换成大写中文的方法
2015/03/23 Javascript
js闭包实现按秒计数
2015/04/23 Javascript
javascript父子页面通讯实例详解
2015/07/17 Javascript
jQuery实现彩带延伸效果的网页加载条loading动画
2015/10/29 Javascript
Javascript数组循环遍历之forEach详解
2016/11/07 Javascript
JS按条件 serialize() 对应标签的使用方法
2017/07/24 Javascript
jQuery实现的页面弹幕效果【测试可用】
2018/08/17 jQuery
详解关于表格合并span-method方法的补充(表格数据由后台动态返回)
2019/05/21 Javascript
深入理解JavaScript 箭头函数
2019/05/30 Javascript
原生JS实现萤火虫效果
2020/03/07 Javascript
[02:02:38]VG vs Mineski Supermajor 败者组 BO3 第一场 6.6
2018/06/07 DOTA
python 3.6.4 安装配置方法图文教程
2018/09/18 Python
对Python3中bytes和HexStr之间的转换详解
2018/12/04 Python
在Python中字典根据多项规则排序的方法
2019/01/21 Python
基于python3的socket聊天编程
2020/02/17 Python
Python用摘要算法生成token及检验token的示例代码
2020/12/01 Python
澳大利亚在线家具店:Luxo Living
2019/03/24 全球购物
英超联赛的首选足球:Mitre足球
2019/05/06 全球购物
工商学院毕业生个人自我评价
2013/09/19 职场文书
中国梦的演讲稿
2014/01/08 职场文书
业务内勤岗位职责
2014/04/30 职场文书
优秀教师感人事迹材料
2014/05/04 职场文书
副乡长民主生活会个人对照检查材料思想汇报
2014/10/01 职场文书
吃空饷专项整治方案
2014/10/27 职场文书
2014年财务经理工作总结
2014/12/08 职场文书
教师年度个人总结
2015/02/11 职场文书
毕业生党员个人总结
2015/02/14 职场文书
2015学生会文艺部工作总结
2015/04/03 职场文书
家庭暴力离婚起诉书
2015/05/18 职场文书
2015年重阳节主持词
2015/07/04 职场文书