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鼠标移到小图显示大图效果的方法
Jun 10 Javascript
jQuery移动页面开发中的触摸事件与虚拟鼠标事件简介
Dec 03 Javascript
jquery.serialize() 函数语法及简单实例
Jul 08 Javascript
jquery实现全选、不选、反选的两种方法
Sep 06 Javascript
微信小程序 video组件详解
Oct 25 Javascript
深入探究angular2 UI组件之primeNG用法
Jul 26 Javascript
AngularJS实现的根据数量与单价计算总价功能示例
Dec 26 Javascript
vue进入页面时不在顶部,检测滚动返回顶部按钮问题及解决方法
Oct 30 Javascript
js实现时间日期校验
May 26 Javascript
在Echarts图中给坐标轴加一个标识线markLine
Jul 20 Javascript
微信小程序实现倒计时功能
Nov 19 Javascript
angular *Ngif else用法详解
Dec 15 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
header中Content-Disposition的作用与使用方法
2012/06/13 PHP
thinkphp多表查询两表有重复相同字段的完美解决方法
2016/09/22 PHP
微信公众平台开发(五) 天气预报功能开发
2016/12/03 PHP
php使用正则表达式获取字符串中的URL
2016/12/29 PHP
对YUI扩展的Gird组件 Part-2
2007/03/10 Javascript
Extjs在exlipse中设置自动提示的方法
2010/04/07 Javascript
js中的push和join方法使用介绍
2013/10/08 Javascript
js获得网页背景色和字体色的方法
2014/03/21 Javascript
jQuery判断div随滚动条滚动到一定位置后停止
2014/04/02 Javascript
JQuery中使文本框获得焦点的方法实例分析
2015/02/28 Javascript
jQuery获取页面及个元素高度、宽度的总结——超实用
2015/07/28 Javascript
jfinal与bootstrap的登录跳转实战演习
2015/09/22 Javascript
js实现多图左右切换功能
2016/08/04 Javascript
js实现鼠标跟随运动效果
2020/08/02 Javascript
node前端模板引擎Jade之标签的基本写法
2018/05/11 Javascript
详解解决使用axios发送json后台接收不到的问题
2018/06/27 Javascript
nodejs异步编程基础之回调函数用法分析
2018/12/26 NodeJs
Vue实现购物车的全选、单选、显示商品价格代码实例
2019/05/06 Javascript
javascript实现日历效果
2019/06/17 Javascript
Vue实现数据表格合并列rowspan效果
2020/11/30 Javascript
详解Vue中CSS样式穿透问题
2019/09/12 Javascript
vue实现分页加载效果
2019/12/24 Javascript
javascript设计模式 ? 职责链模式原理与用法实例分析
2020/04/16 Javascript
[00:27]DOTA2次级职业联赛 - Lilith战队宣传片
2014/12/01 DOTA
新手该如何学python怎么学好python?
2008/10/07 Python
Django 生成登陆验证码代码分享
2017/12/12 Python
pytorch训练imagenet分类的方法
2018/07/27 Python
使用Python制作简单的小程序IP查看器功能
2019/04/16 Python
CSS3实现文字描边的2种方法(小结)
2020/02/14 HTML / CSS
应届生财务会计求职信
2013/11/05 职场文书
工程班组长岗位职责
2013/12/30 职场文书
函授毕业自我鉴定
2014/02/04 职场文书
《狐假虎威》教学反思
2014/02/07 职场文书
仓库主管岗位职责
2014/03/02 职场文书
我们的节日国庆活动方案
2014/08/19 职场文书
中班下学期个人总结
2015/02/12 职场文书