简单动画 封装方法

       //el:谁要做运动; target:运动到哪; step:运动步长; fn:回调
        var time = null;
       function lineamove(el, target, step, fn) {
            var startLift = el.offsetLeft;
            // 当前位置与目标位置一致则停止不动
            if (startLift == target) {
                return;
            }
            // 判断step的正负
            step = target > startLift ? Math.abs(step) : -1 * Math.abs(step);
            // 停止定时器
            clearInterval(time);
            time = setInterval(function() {
                // 获取当前的Left
                var currentLeft = el.offsetLeft;
                // 增加步长
                currentLeft += step;
                // 赋值
                el.style.left = currentLeft + 'px';
                // 做差
                var cha = target - currentLeft;
                // 判断定时器是否停止
                if (Math.abs(cha) < Math.abs(step)) {
                    el.style.left = target + 'px';
                    clearInterval(time);
                    // 回调
                    if (fn) {
                        fn();
                    }
                }
            }, 16.7)
        }

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值