JQuery animate рассчитывает расстояние в пикселях - PullRequest
0 голосов
/ 19 апреля 2011

Я использую JQuery для анимации системного меню панели. Проблема в том, что есть 5 панелей, и я не могу установить атрибут panel left: напрямую, так как он должен рассчитать его на основе его текущей позиции. Мой сценарий должен объяснить.

$('.panel').animate({left: '-250'}, 300);

Так что это нормально, так как при первом щелчке она выдвигает первую панель из вида и вторую панель в поле зрения. Однако, если щелкнуть мышью на второй панели, она не переместится на третью панель, поскольку сообщает всем панелям панелей о переходе на left:-250. Я хочу, чтобы получилось то, что осталось: имеет .panel, а затем добавить еще -250 для анимации.

Таким образом, если left:0 мы находимся на первой панели и по щелчку мы перейдем к left:-250. При нажатии на вторую панель он добавит -250 + -250 и анимирует к -500 и т. Д. И т. Д.

Есть идеи?

1 Ответ

0 голосов
/ 19 апреля 2011

Вам необходимо получить позицию, используя смещение или смещение родителя.

http://api.jquery.com/offset/

http://api.jquery.com/offsetParent/

Как-то так;(не проверено)

    var offset = $('.panel').offset();
    alert(offset.left);
    alert(offset.top)
    var newpos = [offset.left - 250]
    $('.panel').animate({left: newpos}, 300);
...