2012-02-23 3 views
12

Как можно анимировать текущую позицию в центр с помощью position({of:,my:,at:})? Есть ли способ автоматизировать процесс или мне нужно анимировать свойства CSS вручную?анимация jQuery Положение Ui()

+0

См. Функцию http://api.jquery.com/animate/, вы можете указать набор значений CSS, а jQuery выполнит переход. – Yogu

ответ

1

Вы просмотрели .animate()?

Редактировать: Теперь, когда я понимаю, что вы ищете, лучше, here is a jQuery plugin that I wrote to do this very thing.

Here's a quick jsFiddle as an example.

Я сделал параметры настраиваемым объектом. Пример:

$('#clickme').click(function() { 
    $('#blah').align({speed:1000,y:false}); 
});​ 

EDIT: вынимает другой код, поскольку он больше не нужен и просто загромождает вещи вверх. Очистка моего нового кода. Исправлены проблемы размещения родительского позиционирования. Добавлена ​​ссылка на репозиторий git и jsFiddle с использованием последней версии источника.

+0

Я знаю об этом, но тогда мне придется рассчитать разницу ширины ширины div на 2 и т. Д. Мне было интересно, есть ли способ оживить, скажем: position ({of:, my:, at: , animate: slide}) или что-то в этом роде. – localhost

+0

jsfiddle.net/MjsDc/8/ Это решит проблему, но это бесполезно. Я хотел найти решение с позицией ({from:, my:, at:}). – localhost

+0

@ localhost2 ОК ... Я написал код для этого на самом деле .... это был объект, центрирующий расширение jQuery, которое я использовал на клиентском сайте ... должен видеть, могу ли я его выкопать ... –

24

Этот ответ, возможно, был в феврале, но теперь есть намного более простой способ.

Метод позиции принимает аргумент using только для этой цели. Например:

$(div).position({ 
    at: "left+50% top+50%", 
    of: $(div).parent(), 
    using: function(css, calc) { 
     $(this).animate(css, 200, "linear"); 
    } 
}); 
+0

Полезно знать, спасибо. – localhost

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