用了json之后就没反应了囧.怎么回事啊

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

叮当没口袋

2016-11-18 13:04

function startMove(obj, json, fn) {


    clearInterval(obj.timer); //清除定时器,避免重复生成多个定时器

    obj.timer = setInterval(function() {

        var flag = true; //假设刚开始时所有运动都已完成

        for (var attr in json) { //遍历json


            var icur = null;

            //1.判断类型

            if (attr == 'opacity') {

                icur = Math.round(parseFloat(getStyle(obj, attr)) * 100);

            } else {

                icur = parseInt(getStyle(obj, attr));

            }

            //2.算速度

            var speed = (json[attr] - icur) / 10;

            speed = speed > 0 ? Math.ceil(speed) : Math.floor(speed);

            //3.检测停止

            if (icur != json[attr]) {

                flag = false;

            }

            if (attr == 'opacity') {

                obj.style.filter = 'alpha(opacity:' + (icur + speed) + ')';

                obj.style.opacity = (icur + speed) / 100;

            } else {

                obj.style[attr] = icur + speed + 'px';

            }

        }

        if (flag) { //当所有运动都完成时,清除定时器

            clearInterval(obj.timer);

            if (fn) {

                fn();

            }

        }

    }, 30);

}



function getStyle(obj, attr) {

    if (obj.currentStyle) {

        return obj.currentStyle[attr];

    } else {

        return getComputedStyle(obj, false)[attr];

    }

}


写回答 关注

2回答

  • 慕码人1183263
    2017-01-18 11:09:17

    应该是你调用的时候没有调用正确吧,,把你调用的那部分代码也粘出来看看

  • stone310
    2016-11-20 10:05:42

    这段代码没问题啊

JS动画效果

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

113925 学习 · 1443 问题

查看课程

相似问题