javascript多物体运动实现方法分析


Posted in Javascript onJanuary 08, 2016

本文实例讲述了javascript多物体运动实现方法。分享给大家供大家参考,具体如下:

这里需要注意每个运动物体的定时器作为物体的属性独立出来互不影响,属性与运动对象绑定,不能公用

运行效果截图如下:

javascript多物体运动实现方法分析

例子:

<!doctype html>
<html>
<head>
<meta charset="utf-8">
<title>多物体运动</title>
<style>
div{ width:100px; height:100px; background:red; float:left; margin:10px; border:1px solid black; opacity:0.3; filter:alpha(opacity=30);}
</style>
<script>
window.onload = function()
{
 var aDiv = document.getElementsByTagName('div');
 aDiv[0].onmouseover = function()
 {
  startMove(this, 'width', 300);
 };
 aDiv[0].onmouseout = function()
 {
  startMove(this, 'width', 100);
 };
 aDiv[1].onmouseover = function()
 {
  startMove(this, 'height', 300);
 };
 aDiv[1].onmouseout = function()
 {
  startMove(this, 'height', 100);
 };
 aDiv[2].onmouseover = function()
 {
  startMove(this, 'opacity', 100);
 };
 aDiv[2].onmouseout = function()
 {
  startMove(this, 'opacity', 30);
 };
 aDiv[3].onmouseover = function()
 {
  startMove(this, 'borderWidth', 20);
 };
 aDiv[3].onmouseout = function()
 {
  startMove(this, 'borderWidth', 1);
 };
};
function getStyle(obj, attr)
{
 if(obj.currentStyle){
  return obj.currentStyle[attr];
 }else{
  return getComputedStyle(obj, false)[attr];
 }
}
function startMove(obj, attr, iTarget)
{
 clearInterval(obj.timer);
 obj.timer = setInterval(function(){
  var iCur = 0;
  if(attr == 'opacity'){
   iCur = parseInt(parseFloat(getStyle(obj, attr)) * 100);   
  }else{
   iCur = parseInt(getStyle(obj, attr));
  }
  var iSpeed = (iTarget - iCur) / 8;
  iSpeed = iSpeed > 0 ? Math.ceil(iSpeed) : Math.floor(iSpeed);
  if(iCur == iTarget){
   clearInterval(obj.timer);
  }else{
   if(attr == 'opacity'){
    obj.style.filter = 'alpha(opacity='+ (iCur+iSpeed) +')';
    obj.style.opacity = (iCur+iSpeed)/100;
   }else{
    obj.style[attr] = iCur + iSpeed + 'px';
   }
  }
 }, 30);
}
</script>
</head>
<body>
<div></div>
<div></div>
<div></div>
<div></div>
</body>
</html>

更多关于JavaScript运动效果相关内容可查看本站专题:《JavaScript运动效果与技巧汇总》

希望本文所述对大家JavaScript程序设计有所帮助。

Javascript 相关文章推荐
jQuery ajax 路由和过滤器使用说明
Aug 02 Javascript
jquery中的查找parents与closest方法之间的区别
Dec 02 Javascript
js根据日期判断星座的示例代码
Jan 23 Javascript
JavaScript实现数组在指定位置插入若干元素的方法
Apr 06 Javascript
JSON相关知识汇总
Jul 03 Javascript
阿里云ecs服务器中安装部署node.js的步骤
Oct 08 Javascript
vue构建动态表单的方法示例
Sep 22 Javascript
利用JavaScript缓存远程窃取Wi-Fi密码的思路详解
Nov 05 Javascript
微信小程序 slot踩坑的解决
Apr 01 Javascript
在vue中把含有html标签转为html渲染页面的实例
Oct 28 Javascript
vue多个元素的样式选择器问题
Nov 29 Javascript
VUE页面中通过双击实现复制表格中内容的示例代码
Jun 11 Javascript
jQuery插件之Tocify动态节点目录菜单生成器附源码下载
Jan 08 #Javascript
javascript匀速运动实现方法分析
Jan 08 #Javascript
js如何改变文章的字体大小
Jan 08 #Javascript
JavaScript缓冲运动实现方法(2则示例)
Jan 08 #Javascript
jQuery抛物线运动实现方法(附完整demo源码下载)
Jan 08 #Javascript
基于javascript实现右下角浮动广告效果
Jan 08 #Javascript
jQuery数据类型小结(14个)
Jan 08 #Javascript
You might like
PHP调用MySQL的存储过程的实现代码
2008/08/12 PHP
CI框架AR操作(数组形式)实现插入多条sql数据的方法
2016/05/18 PHP
浅谈php中变量的数据类型判断函数
2017/03/04 PHP
filemanage功能中用到的lib.js
2007/04/08 Javascript
$.ajax json数据传递方法
2008/11/19 Javascript
javascript 用记忆函数快速计算递归函数
2010/03/15 Javascript
基于jquery实现的可以编辑选择的下拉框的代码
2010/11/19 Javascript
jQuery点击tr实现checkbox选中的方法
2013/03/19 Javascript
jquery validate在ie8下的bug解决方法
2013/11/13 Javascript
js中typeof的用法汇总
2013/12/12 Javascript
javascript关于open.window子页面执行完成后刷新父页面的问题分析
2015/04/27 Javascript
jQuery仿天猫实现超炫的加入购物车
2015/05/04 Javascript
使用jquery.qrcode.min.js实现中文转化二维码
2016/03/11 Javascript
Bootstrap教程JS插件弹出框学习笔记分享
2016/05/17 Javascript
seaJs使用心得之exports与module.exports的区别实例分析
2017/10/13 Javascript
IE11下CKEditor在Bootstrap Modal中下拉问题的解决
2019/09/25 Javascript
JS实现简易留言板增删功能
2020/02/08 Javascript
Openlayers学习之加载鹰眼控件
2020/09/28 Javascript
Vue 简单实现前端权限控制的示例
2020/12/25 Vue.js
python文件操作整理汇总
2014/10/21 Python
Python开发微信公众平台的方法详解【基于weixin-knife】
2017/07/08 Python
Django REST framework 如何实现内置访问频率控制
2019/07/23 Python
Python Web框架之Django框架cookie和session用法分析
2019/08/16 Python
Pytorch Tensor的统计属性实例讲解
2019/12/30 Python
浅谈pandas.cut与pandas.qcut的使用方法及区别
2020/03/03 Python
使用 Python ssh 远程登陆服务器的最佳方案
2020/03/06 Python
python3 os进行嵌套操作的实例讲解
2020/11/19 Python
Django中的DateTimeField和DateField实现
2021/02/24 Python
美国一家著名的儿童鞋制造商:Stride Rite
2017/01/02 全球购物
Kangol帽子官网:坎戈尔袋鼠
2018/09/26 全球购物
三星印度官网:Samsung印度
2019/08/03 全球购物
运动会广播稿60字
2014/01/15 职场文书
《鸟的天堂》教学反思
2014/02/27 职场文书
2014年教师德育工作总结
2014/11/10 职场文书
大学生实习推荐信
2015/03/27 职场文书
离婚律师函范本
2015/05/27 职场文书