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 相关文章推荐
javascript检查表单数据是否改变的方法
Jul 30 Javascript
用javascript删除当前行,添加行(示例代码)
Nov 25 Javascript
基于JavaScript代码实现随机漂浮图片广告
Jan 05 Javascript
Bootstrap3使用typeahead插件实现自动补全功能
Jul 07 Javascript
JS获得多个同name 的input输入框的值的实现方法
Jan 09 Javascript
微信小程序实现打开内置地图功能【附源码下载】
Dec 07 Javascript
AngularJS实现的锚点楼层跳转功能示例
Jan 02 Javascript
js中DOM事件绑定分析
Mar 18 Javascript
浅谈JS对象添加getter与setter的5种方法
Jun 09 Javascript
深入解析koa之异步回调处理
Jun 17 Javascript
layui实现数据表格自定义数据项
Oct 26 Javascript
ant design中upload组件上传大文件,显示进度条进度的实例
Oct 29 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
Discuz板块横排显示图片的实现方法
2007/05/28 PHP
PHP变量赋值、代入给JavaScript中的变量
2015/06/29 PHP
Zend Framework教程之Zend_Config_Ini用法分析
2016/03/23 PHP
laravel如何开启跨域功能示例详解
2017/08/31 PHP
PHP配合fiddler抓包抓取微信指数小程序数据的实现方法分析
2020/01/02 PHP
JavaScript浏览器选项卡效果
2010/08/25 Javascript
javascript textarea光标定位方法(兼容IE和FF)
2011/03/12 Javascript
nodejs教程之入门
2014/11/21 NodeJs
jQuery中insertBefore()方法用法实例
2015/01/08 Javascript
javascript拖拽应用实例
2016/03/25 Javascript
深入理解requestAnimationFrame的动画循环
2016/09/20 Javascript
原生js代码实现图片放大境效果
2016/10/30 Javascript
获取本机IP地址的实例(JavaScript / Node.js)
2017/11/24 Javascript
基于javascript 显式转换与隐式转换(详解)
2017/12/15 Javascript
vue2.0 实现页面导航提示引导的方法
2018/03/13 Javascript
浅谈如何通过node.js对数据进行MD5加密
2018/05/16 Javascript
vue 巧用过渡效果(小结)
2018/09/22 Javascript
js实现百度登录窗口拖拽效果
2020/03/19 Javascript
Vue切换Tab动态渲染组件的操作
2020/09/21 Javascript
[01:22]DOTA2神秘商店携大量周边降临完美大师赛
2017/11/07 DOTA
python 生成器协程运算实例
2017/09/04 Python
Python爬虫获取整个站点中的所有外部链接代码示例
2017/12/26 Python
Flask web开发处理POST请求实现(登录案例)
2018/07/26 Python
python调用百度语音识别api
2018/08/30 Python
Python访问MongoDB,并且转换成Dataframe的方法
2018/10/15 Python
python版DDOS攻击脚本
2019/06/12 Python
基于Python的图像数据增强Data Augmentation解析
2019/08/13 Python
python matplotlib如何给图中的点加标签
2019/11/14 Python
实例讲解Python 迭代器与生成器
2020/07/08 Python
x-ua-compatible content=”IE=7, IE=9″意思理解
2013/07/22 HTML / CSS
您的健身减肥和健康饮食专家:vitafy
2017/06/06 全球购物
物业管理大学生个人的自我评价
2013/10/10 职场文书
银行介绍信范文
2014/01/10 职场文书
《爱如茉莉》教后反思
2014/04/12 职场文书
2015年幼儿园中班下学期工作总结
2015/05/22 职场文书
Vue接口封装的完整步骤记录
2021/05/14 Vue.js