如何获得对象的实际位置?

时间:2015-07-06 20:02:46

标签: jquery css css3 css-animations velocity.js

我有以下代码片段,它试图每隔100毫秒获取动画对象的实际位置。

   $scope.getPositionOfTheSpiderOnTheRope = function() {
        $interval(function () {
           var positionOfTheSpider =  $('#spiderTwo').position();
           console.log(positionOfTheSpider.top);
        }, 100);
    }

动画功能如下:

$scope.animateSpiderOne = function () {
        $('#spiderTwo').velocity({
            "margin-top": '+=20%',
        }, 4500, function () {
            console.log("MOVE DOWN END");
            $('#spiderTwo').velocity({
                "margin-top": '-=20%',
            }, 4500, function () {
                console.log("MOVE UP END");
                $scope.animateSpiderOne();
            });
        });
    };

问题是动画是动画的,但返回的值仍然相同而没有变化。

我该如何解决?

2 个答案:

答案 0 :(得分:0)

jQuery的.position()方法不考虑margin。如果您为top而非margin-top设置动画,则会获得不同的值。

答案 1 :(得分:0)

我使用此代码段解决了它:

   $scope.getPositionOfTheSpiderOnTheRope = function() {
               var positionOfTheSpider =  $('#spiderTwo');
               console.log(positionOfTheSpider[0].style.marginTop);
        }