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 Dialog的内存泄露问题解决方法
Jun 18 Javascript
js输出列表实现代码
Sep 12 Javascript
Js 回车换行处理的办法及replace方法应用
Jan 24 Javascript
JS控件ASP.NET的treeview控件全选或者取消(示例代码)
Dec 16 Javascript
使用node.js 获取客户端信息代码分享
Nov 26 Javascript
jquery+javascript编写国籍控件
Feb 12 Javascript
讲解JavaScript的Backbone.js框架的MVC结构设计理念
Feb 14 Javascript
plupload+artdialog实现多平台上传文件
Jul 19 Javascript
VUE开发一个图片轮播的组件示例代码
Mar 06 Javascript
JavaScript实现无穷滚动加载数据
May 06 Javascript
js实现鼠标跟随运动效果
Aug 02 Javascript
Promise扫盲贴
Jun 24 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
phpize的深入理解
2013/06/03 PHP
PHP连接access数据库
2015/03/27 PHP
php post json参数的传递和接收处理方法
2018/05/31 PHP
Jquery命名冲突解决的五种方案分享
2012/03/16 Javascript
原生js实现类似弹窗抖动效果
2015/04/02 Javascript
浅谈Node.js中的定时器
2015/06/18 Javascript
动态加载jQuery的两种方法实例分析
2015/07/17 Javascript
js实现微信分享代码
2020/10/11 Javascript
基于js中的原型、继承的一些想法
2016/08/10 Javascript
JavaScript中获取时间的函数集
2016/08/16 Javascript
浅谈bootstrap使用中的一些问题以及解决过程
2016/10/18 Javascript
Vue方法与事件处理器详解
2016/12/01 Javascript
进阶之初探nodeJS
2017/01/24 NodeJs
Node.js使用Express创建Web项目详细教程
2017/03/31 Javascript
JQuery.dataTables表格插件添加跳转到指定页
2017/06/09 jQuery
JS实现移动端判断上拉和下滑功能
2017/08/07 Javascript
原生js封装运动框架的示例讲解
2017/10/01 Javascript
JS实现数组删除指定元素功能示例
2019/06/05 Javascript
解决vue打包后vendor.js文件过大问题
2019/07/03 Javascript
vue v-on:click传递动态参数的步骤
2020/09/11 Javascript
基于vue与element实现创建试卷相关功能(实例代码)
2020/12/07 Vue.js
Node快速切换版本、版本回退(降级)、版本更新(升级)
2021/01/07 Javascript
python操作mongodb根据_id查询数据的实现方法
2015/05/20 Python
Python 逐行分割大txt文件的方法
2017/10/10 Python
python range()函数取反序遍历sequence的方法
2018/06/25 Python
python xpath获取页面注释的方法
2019/01/14 Python
200行python代码实现2048游戏
2019/07/17 Python
python字符串分割及字符串的一些常规方法
2019/07/24 Python
Django User 模块之 AbstractUser 扩展详解
2020/03/11 Python
python相对企业语言优势在哪
2020/06/12 Python
关于tensorflow softmax函数用法解析
2020/06/30 Python
美国隐形眼镜零售商:LensPure
2019/03/10 全球购物
励志演讲稿范文
2014/04/29 职场文书
卫生主题班会
2015/08/14 职场文书
2016秋季小学开学寄语
2015/12/03 职场文书
2016七夕情人节寄语
2015/12/04 职场文书