zoukankan      html  css  js  c++  java
  • js入门学习~ 运动应用小例

    要实现的效果如下:

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

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

    ----------------------------------------------------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基础先补补~~   

  • 相关阅读:
    浅谈.NET下的多线程和并行计算系列文章索引
    浅谈.NET下的多线程和并行计算(六)线程池基础下
    浅谈.NET下的多线程和并行计算(八)Winform中多线程编程基础上
    项目优化经验——垃圾回收导致的性能问题
    浅谈.NET下的多线程和并行计算(五)线程池基础上
    站点静态资源优化合并解决方案
    浅谈.NET下的多线程和并行计算(二)线程基本知识
    浅谈.NET下的多线程和并行计算(十二)CLR via C#第三版阅读笔记(1)
    原谅我的说谎
    索爱手机GPRS的OTA设置[转]
  • 原文地址:https://www.cnblogs.com/fuyinsheng/p/5057800.html
Copyright © 2011-2022 走看看