我有以下代码片段,它试图每隔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();
});
});
};
问题是动画是动画的,但返回的值仍然相同而没有变化。
我该如何解决?
答案 0 :(得分:0)
jQuery的.position()
方法不考虑margin
。如果您为top
而非margin-top
设置动画,则会获得不同的值。
答案 1 :(得分:0)
我使用此代码段解决了它:
$scope.getPositionOfTheSpiderOnTheRope = function() {
var positionOfTheSpider = $('#spiderTwo');
console.log(positionOfTheSpider[0].style.marginTop);
}