2012-02-23 15 views
12

Jak mogę animować od bieżącej pozycji do centrum przy użyciu position({of:,my:,at:})? Czy istnieje sposób automatyzacji procesu lub czy muszę ręcznie animować właściwości CSS?animacja pozycji jQuery Ui()

+0

Zobacz funkcję http://api.jquery.com/animate/, możesz określić zestaw wartości CSS, a jquery wykona przejście. – Yogu

Odpowiedz

1

Czy obejrzałeś .animate()?

Edycja: Teraz, gdy rozumiem, czego szukasz, lepiej, here is a jQuery plugin that I wrote to do this very thing.

Here's a quick jsFiddle as an example.

Zrobiłem opcje konfigurowalny obiekt. Przykład:

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

EDYCJA: usunięcie drugiego kodu, ponieważ nie jest już potrzebny i po prostu bałagan. Czyszczenie mojego nowego kodu. Naprawiono błędy związane z pozycjonowaniem rodzica. Dodano łącze do repozytorium git i jsFiddle przy użyciu najnowszej wersji źródła.

+0

Wiem o tym, ale będę musiał obliczyć dzielenie szerokości i wysokości div przez 2 itd. Zastanawiam się, czy istnieje sposób na animację, powiedzmy: position ({of:, my:, at: , animuj: slajd}) lub coś w tym rodzaju. – localhost

+0

jsfiddle.net/MjsDc/8/ To rozwiązałoby to, ale jest trochę nieporządne. Chciałem znaleźć rozwiązanie dla pozycji ({,: my:, at:}). – localhost

+0

@ localhost2 OK ... Napisałem kod do tego .... było to rozszerzanie jQuery, które było centralnie używane w witrynie klienta ... muszę sprawdzić, czy mogę go wykopać ... –

24

Ta odpowiedź mogła być z powrotem w lutym, ale teraz jest o wiele łatwiejszy sposób.

Metoda pozycji przyjmuje argument using tylko w tym celu. Na przykład:

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

Dobrze wiedzieć, dzięki. – localhost