2009-12-23 3 views

ответ

1

Я предполагаю, что вы хотите, чтобы переместить DIV вокруг экрана из одной позиции в другую. Способ сделать это состоял бы в цепочке нескольких вызовов animate(), перемещающих его из одной позиции в другую по мере завершения предыдущего перемещения. Возможно, сохраните промежуточные позиции, если они у вас есть, в массиве и вытащите следующую позицию для каждого вызова анимации до тех пор, пока все вызовы не будут завершены. Использование рекурсивной функции обратного вызова, вероятно, будет лучшим способом справиться с этим.

Я предполагаю, что DIV уже абсолютно позиционирован. Если нет, вы можете посмотреть плагин makeAbsolute.

непроверенных

var positions = [ [ x1, y1 ], [ x2, y2 ], .. ]; 

play($('#myDiv'), positions); 


function play(elem, positions) { 
    if (positions.length > 0) { 
     var position = positions.shift(); 
     elem.animate({ left: position[0], top: position[1] } }, function() { 
      play(elem, positions); 
     }); 
    } 
} 
1
$("#myDiv").click(
    function(event){ 
     $(this).animate({"left:0"},1500,'linear' // the fourth parameter is a callback function which runs when the animation completes 
      function(){ $(this).animate(...); 
    } 
); 

Как tvanfosson говорил, это просто ряд вызовов функции одушевленным - приведенный выше код не совсем идеально подходит для того, что вы говорите, но это достаточно ясно иллюстрирует пример (я думаю).

Смежные вопросы