要实现的效果如下:

鼠标移入各个小方块,实现对应的效果(变宽,变高,移入透明,移出恢复)~~

(且各运动相互之前不干扰)  主要是练习多个物体的运动框架~~

----------------------------------------------------js代码如下 -----------------------------------------------------

//执行函数
window.onload = function(){
  //声明控制变量
  var aDiv = document.getElementsByTagName('div');

  //遍历
  for(var i=0;i<aDiv.length;i++){
    //添加自定义属性
    aDiv[i].timer = null;

    //添加事件(由于每个具体事件是不同的,所以单独来控制)
    aDiv[0].onmouseover = function(){
      moveStart(this,'width',400);
    }
    aDiv[0].onmouseout = function(){
      moveStart(this,'width',200);
    }

    aDiv[1].onmouseover = function(){
      moveStart(this,'height',400);
    }
    aDiv[1].onmouseout = function(){
      moveStart(this,'height',200);
    }

    aDiv[2].onmouseover = function(){
      moveStart(this,'opacity',100);
    }
    aDiv[2].onmouseout = function(){
      moveStart(this,'opacity',30);
    }
  }
}

//getStyle  获取对象的全局style属性

function getStyle(obj,name){
  if(obj.currentStyle){
    return obj.currentStyle;
  }
  else{
    return getComputedStyle(obj,false)[name];
  }
}

//moveStart  运动函数

function moveStart(obj,attribute,iTarget){
  //多个物体运动框架
  clearInterval(obj.timer);
  obj.timer = setInterval(function(){
  //声明
    var current = 0;
    if(attribute == 'opacity'){
      current = parseFloat(getStyle(obj,attribute))*100;
    }
    else{
      current = parseInt(getStyle(obj,attribute));
    }
    //缓冲速度
    var speed = (iTarget - current )/4;
    //上下取整
    speed = speed>0? Math.ceil(speed):Math.floor(speed);

    //静
    if(iTarget == current){
      clearInterval(obj.timer);
    }
    else{
      if(attribute == 'opacity'){
        obj.style.filter = 'alpha(opacity:'+(current+speed)+')';
        obj.style.opacity = (current + speed)/100;
      }
      else{
        obj.style[attribute] = current+speed+'px';
      }
    }

  },30);
}

---------------------------------------------------------------------------------

js的学习也有大半月了,进度还是很缓慢~~ 慢慢来了,还是基本功,编程基础不扎实, 慢慢来了~~

在原有学习计划上, 减少点打酱油时间, 多点看书事件,把js基础先补补~~

js入门学习~ 运动应用小例的更多相关文章

  1. JS入门学习,写一个时钟~

    <!-- 耽搁了几天,于是又继续回到JS的学习了~~ 各种头大,加油吧... --> <!doctype html><html><head> <t ...

  2. 测试驱动开发(TDD)及测试框架Mocha.js入门学习

    组里马上要转变开发模式,由传统的开发模式(Developer开发,QA测试),转变为尝试TDD(Test-driven development,测试驱动开发)的开发模型.由此将不存在QA的角色,或者仅 ...

  3. 微信小程序开发入门学习(1):石头剪刀布小游戏

    从今天起开始捣鼓小程序了2018-12-17   10:02:15 跟着教程做了第一个入门实例有兴趣的朋友可以看看: 猜拳游戏布局 程序达到的效果 猜拳游戏的布局是纵向显示了三个组件:文本组件(tex ...

  4. Vue.JS入门学习随笔

    PS:先说说学习Vue的缘由吧,学习完了React之后,突然发现又出了一款叫做vue的框架,而且据说可以引领又一波新框架的潮流,我容易吗我!!!   Vue.js(读音 /vjuː/, 类似于view ...

  5. require.js 入门学习 (share)

    以下内容转自阮一峰老师的网络日志:http://www.ruanyifeng.com/blog/2012/11/require_js.html 更多学习资源: require.js官网:http:// ...

  6. react webpack.config.js 入门学习

    在学习react 的时候必然会用到webpack打包工具,webpack的快速入门另外一篇文章中有记录,这里只记录webpack.config.js文件,因为每个项目下都必须配置,通俗的讲,它的作用就 ...

  7. 【带着canvas去流浪(11)】Three.js入门学习笔记

    目录 一. 资料推荐及建议 二. Three.js中的基本概念 三.重点笔记 四.补充示例 示例代码托管在:http://www.github.com/dashnowords/blogs 博客园地址: ...

  8. JS入门学习,编写一个简易月历

    //今天最头疼的地方在于 getElementsByClassName()的 [] ~~ //错了N遍后只能说有点点头绪,如果不加[] 查找的就是全部吧 加上[]能精确控制的标签或者class < ...

  9. JS入门学习,写一个简单的选项卡

    /* 经过昨天一整天的纠结和摸索.总结下学习初期我最致命的几个问题…… 1.var oDiv = document.getElementById('');    一定要多输,熟悉后o u什么的字母别搞 ...

随机推荐

  1. Maven在Eclipse中的实用小技巧

    前言     我们在开发的工程中很多都是Maven项目,这样更加便于我们jar包的管理.而我们一般使用的IDE都是Eclipse,由于我们在日常的开发过程中会经常要用到一些Maven的操作,所以我今天 ...

  2. SQL 性能调优中可参考的几类Lock Wait

    在我们的系统出现性能问题时,往往避不开调查各种类型 Lock Wait,如Row Lock Wait.Page Lock Wait.Page IO Latch Wait等.从中找出可能的异常等待,为性 ...

  3. heart

    好久没写博客了,不想废话,直接欣赏效果! 点击这里,查看完美效果! 附完整代码: <!doctype html> <html> <head> <meta ch ...

  4. FFmpeg学习3:播放音频

    参考dranger tutorial,本文将介绍如何使用FFmpeg解码音频数据,并使用SDL将解码后的数据输出. 本文主要包含以下几方面的内容: 关于播放音频的需要的一些基础知识介绍 使用SDL2播 ...

  5. 简简单单学会C#位运算

    一.理解位运算 要学会位运算,首先要清楚什么是位运算?程序中的所有内容在计算机内存中都是以二进制的形式储存的(即:0或1),位运算就是直接对在内存中的二进制数的每位进行运算操作 二.理解数字进制 上面 ...

  6. Razor语法中绑定一个值给checkbox

    在ASP.NET MVC开发中,需要绑定一个值给checkbox标签,如下面写法,它们运行时是没有问题,照样能跑. 看看上面的语法,在绑定时,它却出现绿浪线.提不绑定的值is not a valid ...

  7. 推荐几篇关于EF的好文章

    文章作者 Julie Lerman 是 Microsoft MVP..NET 导师和顾问,住在佛蒙特州的山区.您可以在全球的用户组和会议中看到她对数据访问和其他 .NET 主题的演示.她的博客地址是 ...

  8. C#--图片上传(PC端和APP)保存及 跨域上传说明

    手动跨域操作文件 补录:跨域访问文件夹文件是一种常见的需求,下面主要介绍的的通过代码使用具有权限账号的人来达到跨域操作文件的能力. 现在补充一下普通的一些需求场景,今天就遇到了一种需要经常需要登录远程 ...

  9. MVC发布到虚拟主机上出现的错误

    问题1:无法识别的属性“targetFramework”.请注意属性名称区分大小写. 现象:无法识别的属性“targetFramework”.请注意属性名称区分大小写. 原因:站点中部署的Web使用的 ...

  10. 【Tips】史上最全H1B问题合辑——保持H1B身份终级篇

    [Tips]史上最全H1B问题合辑——保持H1B身份终级篇 2015-04-10留学小助手留学小助手 留学小助手 微信号 liuxue_xiaozhushou 功能介绍 提供最真实全面的留学干货,帮您 ...