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 相关文章推荐
jQuery Ajax文件上传(php)
Jun 16 Javascript
单击复制文字兼容各浏览器的完美解决方案
Jul 04 Javascript
简单的邮箱登陆的提示效果类似于yahoo邮箱
Feb 26 Javascript
Node.js(安装,启动,测试)
Jun 09 Javascript
JS 在指定数组中随机取出N个不重复的数据
Jun 10 Javascript
JQuery跳出each循环的方法
Apr 16 Javascript
微信小程序 地图(map)实例详解
Nov 16 Javascript
微信公众号开发 自定义菜单跳转页面并获取用户信息实例详解
Dec 08 Javascript
jQuery实现优雅的弹窗效果(6)
Feb 08 Javascript
微信小程序图片轮播组件gallery slider使用方法详解
Jan 31 Javascript
Babel 入门教程学习笔记
Jun 13 Javascript
JS双向链表实现与使用方法示例(增加一个previous属性实现)
Jan 31 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
千呼万唤始出来,DOTA2勇士令状不朽宝藏Ⅱ现已推出
2020/08/25 DOTA
PHP函数篇之掌握ord()与chr()函数应用
2011/12/05 PHP
smarty模板引擎中内建函数if、elseif和else的使用方法
2015/01/22 PHP
thinkphp5 URL和路由的功能详解与实例
2017/12/26 PHP
PHP cookie,session的使用与用户自动登录功能实现方法分析
2019/06/05 PHP
[JS]点出统计器
2020/10/11 Javascript
JavaScript DOM 添加事件
2009/02/14 Javascript
JQuery UI皮肤定制
2009/07/27 Javascript
jQuery1.6 使用方法一
2011/11/23 Javascript
基于MVC3方式实现下拉列表联动(JQuery)
2013/09/02 Javascript
JavaScript判断变量是对象还是数组的方法
2014/08/28 Javascript
AngularJS基础学习笔记之简单介绍
2015/05/10 Javascript
jQuery实现根据生日计算年龄 星座 生肖
2016/11/23 Javascript
详解js的异步编程技术的方法
2017/02/09 Javascript
JS原型与原型链的深入理解
2017/02/15 Javascript
Bootstrap fileinput组件封装及使用详解
2017/03/10 Javascript
Easyui Datagrid自定义按钮列(最后面的操作列)
2017/07/13 Javascript
谈谈JS中的!!
2017/12/07 Javascript
angular2路由之routerLinkActive指令【推荐】
2018/05/30 Javascript
详解webpack import()动态加载模块踩坑
2018/07/17 Javascript
Python学习小技巧之列表项的推导式与过滤操作
2017/05/20 Python
Python基于scapy实现修改IP发送请求的方法示例
2017/07/08 Python
基于Python在MacOS上安装robotframework-ride
2018/12/28 Python
python无序链表删除重复项的方法
2020/01/17 Python
PyTorch如何搭建一个简单的网络
2020/08/24 Python
python爬虫scrapy基本使用超详细教程
2021/02/20 Python
2分钟教你实现环形/扇形菜单(基础版)
2020/01/15 HTML / CSS
html5清空画布方法(三种)
2017/10/16 HTML / CSS
Agoda香港:全球特价酒店预订
2017/05/07 全球购物
mysql_pconnect()和mysql_connect()有什么区别
2012/05/25 面试题
求职自荐书范文
2013/12/04 职场文书
工程专业毕业生自荐信范文
2013/12/25 职场文书
应届生如何写自荐信
2014/01/05 职场文书
预备党员党课思想汇报
2014/01/13 职场文书
幼儿园教师自我鉴定
2014/03/20 职场文书
质量保证书
2015/01/17 职场文书