同时运动宽和高时,高改变的值不对,求解代码中的错误

来源:6-2 完美运动框架

一二得三

2017-01-10 00:20

function startMove(obj,json,fn){
clearInterval(obj.timer);
obj.timer = setInterval(function(){
var all = true;//假设全部执行成功
for(var attr in json){
//判断是否为透明度
if(attr == "opacity"){
var icur = Math.round(parseFloat(getStyle(obj,attr)) * 100);
}else{
var icur = parseInt(getStyle(obj,attr));
}
var speed = (json[attr] - icur)/10;
speed = speed>0?Math.ceil(speed):Math.floor(speed);
if(icur != json[attr]){
all = false;
}
//判断是否为透明度
if(attr == "opacity"){
obj.style[attr] = (icur + speed)/100;;
}else{
obj.style[attr] = icur + speed + "px";
}   
if(all){
clearInterval(obj.timer);
if(fn){
fn();
}
}
}
},30);  
}
//解决IE兼容
function getStyle(obj,attr) {
var style = null;  
if(window.getComputedStyle){
style = window.getComputedStyle(obj, null)[attr];
}else{
style = obj.currentStyle[attr];
}
return style;
}


写回答 关注

1回答

  • 慕数据2204058
    2017-01-10 09:54:02

    if(all){

    clearInterval(obj.timer);

    放在属性变化的后面

    一二得三

    谢谢回答,我在代码中有放这个判断啊,是放错位置了吗?

    2017-01-10 09:57:27

    共 1 条回复 >

JS动画效果

通过本课程JS动画的学习,从简单动画开始,逐步深入各种动画框架封装

113925 学习 · 1443 问题

查看课程

相似问题