js让页面动起来 互动版

同时运动

实现思路:

同时改变长宽或者其他属性,也就是在单属性的语句后加入改变其他属性效果语句,达到函数每一次都改变多个属性效果

效果

logo运动


函数编写

  1. 将要改变的属性以传入一个对象{width:300,height:300,opacity:100}为参数的方式进行传值
  2. for循环遍历的方式改变元素属性
  3. 设立isComplete变量,如果全部属性均已达到目标,则isComplete为true,定时器关闭
  4. 在判断opacity时我使用的是getStyle(obj,attr)*100,大家也可在getStyle函数里进行判断

var isComplete=false;
function startMove(obj,attrClass)
{
    clearInterval(timer);
    timer=setInterval(function(){
        for(attr in attrClass){
            if((attr === 'opacity'?getStyle(obj,attr)*100:getStyle(obj,attr))=== attrClass[attr]){
                isComplete=true;
                continue;
            }
            isComplete=false;
            console.log(attr);
            else if(attr === 'opacity'){
                var speed=(attrClass[attr] - getStyle(obj,attr)*100)/20;
                speed = speed>0?Math.ceil(speed):Math.floor(speed);
                obj.style[attr]=(getStyle(obj,attr)*100+speed)/100.0;
            }
            else{
                var speed=(attrClass[attr] - getStyle(obj,attr))/20;
                speed = speed>0?Math.ceil(speed):Math.floor(speed);
                obj.style[attr]=getStyle(obj,attr) + speed + 'px';
            }
        }
        if(isComplete){
            clearInterval(timer);
        }
    },30);
   }
在右方填入相应的代码使其width和height为300px,透明度为1