1

我有一堆块,我正试图沿着方形“轨道”移动,就像火车一样。

    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 值,但我不确定我还能如何编写脚本。

4

1 回答 1

2

您需要使用position() 函数而不是 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/

于 2013-06-14T01:30:50.480 回答