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 相关文章推荐
关于this和self的使用说明
Aug 01 Javascript
jquery修改属性值实例代码(设置属性值)
Jan 06 Javascript
JavaScript实现节点的删除与序号重建实例
Aug 05 Javascript
基于Vuejs实现购物车功能
Aug 02 Javascript
AngularJS辅助库browserTrigger用法示例
Nov 03 Javascript
jQuery Validate 无法验证 chosen-select元素的解决方法
May 17 jQuery
vue按需引入element Transfer 穿梭框
Sep 30 Javascript
基于vue1和vue2获取dom元素的方法
Mar 17 Javascript
vue2.0 element-ui中el-select选择器无法显示选中的内容(解决方法)
Aug 24 Javascript
Vue路由 重定向和别名的区别说明
Sep 09 Javascript
微信小程序实现点击导航标签滚动定位到对应位置
Nov 19 Javascript
react中hook介绍以及使用教程
Dec 11 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字符串的递增和递减示例介绍
2014/02/11 PHP
php中的filesystem文件系统函数介绍及使用示例
2014/02/13 PHP
9段PHP实用功能的代码推荐
2014/10/14 PHP
php基于curl实现随机ip地址抓取内容的方法
2016/10/11 PHP
基于jquery的一个OutlookBar类,动态创建导航条
2010/11/19 Javascript
jquery常用操作小结
2014/07/21 Javascript
详解用原生JavaScript实现jQuery的某些简单功能
2016/12/19 Javascript
angular.JS实现网页禁用调试、复制和剪切
2017/03/31 Javascript
详解利用Angular实现多团队模块化SPA开发框架
2017/11/27 Javascript
vue-infinite-loading2.0 中文文档详解
2018/04/08 Javascript
node.js学习笔记之koa框架和简单爬虫练习
2018/12/13 Javascript
Node.js中文件系统fs模块的使用及常用接口
2020/03/06 Javascript
[42:32]DOTA2上海特级锦标赛B组资格赛#2 Fnatic VS Spirit第二局
2016/02/27 DOTA
使用Python进行稳定可靠的文件操作详解
2013/12/31 Python
python构造icmp echo请求和实现网络探测器功能代码分享
2014/01/10 Python
使用Python脚本在Linux下实现部分Bash Shell的教程
2015/04/17 Python
Python基于PycURL实现POST的方法
2015/07/25 Python
Python循环语句中else的用法总结
2016/09/11 Python
python构建自定义回调函数详解
2017/06/20 Python
python的pip安装以及使用教程
2018/09/18 Python
python itchat给指定联系人发消息的方法
2019/06/11 Python
Django中和时区相关的安全问题详解
2020/10/12 Python
解决PDF 转图片时丢文字的一种可能方式
2021/03/04 Python
delegate与普通函数的区别
2014/01/22 面试题
大学本科生的个人自我评价
2013/12/09 职场文书
《最大的“书”》教学反思
2014/02/14 职场文书
《威尼斯的小艇》教学反思
2014/02/17 职场文书
制作部班长职位说明书
2014/02/26 职场文书
教师网络培训感言
2014/03/09 职场文书
室内趣味活动方案
2014/08/24 职场文书
大学生推广普通话演讲稿
2014/09/21 职场文书
2014公司年终工作总结
2014/12/19 职场文书
丽江古城导游词
2015/02/03 职场文书
小浪底导游词
2015/02/12 职场文书
Python实现8种常用抽样方法
2021/06/27 Python
nginx lua 操作 mysql
2022/05/15 Servers