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获取网页中图片高度的两种方法
Sep 26 Javascript
js写的评论分页(还不错)
Dec 23 Javascript
avascript中的自执行匿名函数应用示例
Sep 15 Javascript
javascript实现简单的省市区三级联动
May 14 Javascript
AngularJS上拉加载问题解决方法
May 23 Javascript
简单实现js浮动框
Dec 13 Javascript
angular-ngSanitize模块-$sanitize服务详解
Jun 13 Javascript
js中let和var定义变量的区别
Feb 08 Javascript
element ui里dialog关闭后清除验证条件方法
Feb 26 Javascript
vue集成百度UEditor富文本编辑器使用教程
Sep 21 Javascript
JS/jQuery实现简单的开关灯效果【案例】
Feb 19 jQuery
es6函数name属性功能与用法实例分析
Apr 18 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 实现身份验证代码
2010/03/24 PHP
php中文繁体和简体相互转换的方法
2015/03/21 PHP
php函数连续调用实例分析
2015/07/30 PHP
使用PHP和JavaScript判断请求是否来自微信内浏览器
2015/08/18 PHP
PHP中addslashes()和stripslashes()实现字符串转义和还原用法实例
2016/01/07 PHP
PHP 计算两个特别大的整数实例代码
2018/05/07 PHP
javascript contains和compareDocumentPosition 方法来确定是否HTML节点间的关系
2010/02/04 Javascript
JavaScript可否多线程? 深入理解JavaScript定时机制
2012/05/23 Javascript
javascript 函数声明与函数表达式的区别介绍
2013/10/05 Javascript
用jQuery与JSONP轻松解决跨域访问的问题
2014/02/04 Javascript
将字符串中由空格隔开的每个单词首字母大写
2014/04/06 Javascript
jQuery使用$.ajax提交表单完整实例
2015/12/11 Javascript
JS密码生成与强度检测完整实例(附demo源码下载)
2016/04/06 Javascript
AnjularJS中$scope和$rootScope的区别小结
2016/09/18 Javascript
js HTML5多媒体影音播放
2016/10/17 Javascript
JS去掉字符串前后空格或去掉所有空格的用法
2017/03/25 Javascript
微信小程序实现长按删除图片的示例
2018/05/18 Javascript
Windows上node.js的多版本管理工具用法实例分析
2019/11/06 Javascript
Python中使用语句导入模块或包的机制研究
2015/03/30 Python
Python+Selenium自动化实现分页(pagination)处理
2017/03/31 Python
利用python解决mysql视图导入导出依赖的问题
2017/12/17 Python
Python绘制KS曲线的实现方法
2018/08/13 Python
Python实现的矩阵转置与矩阵相乘运算示例
2019/03/26 Python
Django框架组成结构、基本概念与文件功能分析
2019/07/30 Python
PyTorch 对应点相乘、矩阵相乘实例
2019/12/27 Python
基于python3实现倒叙字符串
2020/02/18 Python
python中如何打包用户自定义模块
2020/09/23 Python
澳大利亚设计的婴儿和女孩的衣服:Oobi
2018/12/16 全球购物
如何在Cookie里面保存Unicode和国际化字符
2013/05/25 面试题
八项规定整改措施
2014/02/12 职场文书
毕业生自荐信格式
2014/03/07 职场文书
幼儿园评语大全
2014/04/17 职场文书
学生评语大全
2014/04/18 职场文书
领导参观欢迎词
2015/01/26 职场文书
合理化建议书
2015/02/04 职场文书
Python 正则模块详情
2021/11/02 Python