我有一堆街区,我正试图沿着一条方形'轨道'移动,就像火车一样。
var itemLoop = function(){
$("li").each(function(getLeft, getTop) {
getLeft = parseInt($(this).css('left'));
getTop = parseInt($(this).css('top'));
if (getTop > 0 && getLeft < 5) {
$(this).css('top', (getTop - 5 ) + "px");
} else if (getTop > 140) {
$(this).css('left', (getLeft - 5) + "px");
} else if (getLeft > 140) {
$(this).css('top', (getTop + 5 ) + "px");
} else {
$(this).css('left', (getLeft + 5 ) + "px");
}
});
}
setInterval(itemLoop, 100);
然而,对于上述情况,这些街区不会绕过拐角,而是会粘在一起。
我想也许是因为所有lis都使用了相同的getTop / Left值,但我不知道我怎么能编写这个脚本。
答案 0 :(得分:2)
您需要使用position() function而不是css函数。所以不要这样:
getLeft = parseInt($(this).css('left'));
getTop = parseInt($(this).css('top'));
这样做:
var pos = $(this).position();
getLeft = parseInt(pos.left);
getTop = parseInt(pos.top);
以下是一个有效的例子:http://jsfiddle.net/judeosborn/rd2Ky/