同时运动
实现思路:
同时改变长宽或者其他属性,也就是在单属性的语句后加入改变其他属性效果语句,达到函数每一次都改变多个属性效果
效果
函数编写
- 将要改变的属性以传入一个对象{width:300,height:300,opacity:100}为参数的方式进行传值
- 用for循环遍历的方式改变元素属性
- 设立isComplete变量,如果全部属性均已达到目标,则isComplete为true,定时器关闭
- 在判断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