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 相关文章推荐
利用json获取字符出现次数的代码
Mar 22 Javascript
js清空表单数据的两种方式(遍历+reset)
Jul 18 Javascript
轻松搞定jQuery.noConflict()
Feb 15 Javascript
基于Bootstrap实现tab标签切换效果
Apr 15 Javascript
浅谈js和css内联外联注意事项
Jun 30 Javascript
使用JS实现图片展示瀑布流效果(简单实例)
Sep 06 Javascript
使用Bootstrap Tabs选项卡Ajax加载数据实现
Dec 23 Javascript
angular bootstrap timepicker TypeError提示怎么办
Jun 13 Javascript
如何选择适合你的JavaScript框架
Nov 20 Javascript
vue项目中jsonp跨域获取qq音乐首页推荐问题
May 30 Javascript
详解Node.js一行命令上传本地文件到服务器
Apr 22 Javascript
在vue中获取wangeditor的html和text的操作
Oct 23 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
destoon实现VIP排名一直在前面排序的方法
2014/08/21 PHP
php基于socket实现SMTP发送邮件的方法
2015/03/05 PHP
详解PHP防止直接访问.php 文件的实现方法
2017/07/28 PHP
CheckBox 如何实现全选?
2006/06/23 Javascript
input、button的不同type值在ajax提交表单时导致的陷阱
2009/02/24 Javascript
Prototype ObjectRange对象学习
2009/07/19 Javascript
JavaScript window.setTimeout() 的详细用法
2009/11/04 Javascript
15款优秀的jQuery导航菜单插件分享
2011/07/19 Javascript
Nodejs中session的简单使用及通过session实现身份验证的方法
2016/02/04 NodeJs
使用vue.js开发时一些注意事项
2016/04/27 Javascript
javacript获取当前屏幕大小
2016/06/04 Javascript
最佳的JavaScript错误处理实践
2016/07/16 Javascript
JS制作图形验证码实现代码
2020/10/19 Javascript
js获取腾讯视频ID的方法
2016/10/03 Javascript
less简单入门(CSS 预处理语言)
2017/03/08 Javascript
D3.js实现简洁实用的动态仪表盘的示例
2018/04/04 Javascript
node.js实现为PDF添加水印的示例代码
2018/12/05 Javascript
Vue项目结合Vue-layer实现弹框式编辑功能(实例代码)
2020/03/11 Javascript
Python获取电脑硬件信息及状态的实现方法
2014/08/29 Python
Python threading多线程编程实例
2014/09/18 Python
Python解决鸡兔同笼问题的方法
2014/12/20 Python
基于python的Tkinter编写登陆注册界面
2017/06/30 Python
在matplotlib的图中设置中文标签的方法
2018/12/13 Python
numpy数组之存取文件的实现示例
2019/05/24 Python
python将excel转换为csv的代码方法总结
2019/07/03 Python
Python实现Selenium自动化Page模式
2019/07/14 Python
springboot配置文件抽离 git管理统 配置中心详解
2019/09/02 Python
Python用requests库爬取返回为空的解决办法
2021/02/21 Python
HTML5 Convas APIs方法详解
2015/04/24 HTML / CSS
标记环网Toke Ring IEEE802.5
2014/05/26 面试题
温馨提示标语
2014/06/26 职场文书
2014三年级班主任工作总结
2014/12/05 职场文书
请病假条范文
2015/08/17 职场文书
python实现简单石头剪刀布游戏
2021/10/24 Python
Pycharm远程调试和MySQL数据库授权问题
2022/03/18 MySQL
Python测试框架pytest高阶用法全面详解
2022/06/01 Python