2012-12-06 37 views
5

HTML:jquery animować div centrum

<div id="container"> 
    <div id="header"> 
      <div id="animate"> 
     cartagena 
     </div> 
     </div> 

co chcę zrobić, to przenieść "animowany" div do środka przy użyciu jQuery.

moje obecne JS:

$(document).ready(function() { 
     $("#animate").animate({left: "+=512"}, 2000); 
}); 

i teraz chciałbym, aby go do środka, a nie tylko 512 px na prawo.

+0

Do centrum czego? #header, #container, document, window? – pxx

Odpowiedz

6

Zakładam, że pozycja #animate to absolute. Aby wyśrodkować element w jego elementu nadrzędnego wystarczy dodać połowę szerokości jego rodzica minus połowy własnej szerokości do left:

$("#animate").animate({ 
    left: $("#animate").parent().width()/2 - $("#animate").width()/2 
}, 2000); 

stworzyłem demo użyciu jsFiddle.

+0

to już nie działa po odświeżeniu:/ –

+0

@WouterVandenputte Powinno zachowywać się tak samo podczas odświeżania przeglądarki ... W każdym razie możesz spróbować [ustawić lewą wartość] (http://jsfiddle.net/8gJAa/1 /) przed animacją. – Matthias

1

można go używać w taki sposób, aby wyśrodkować go na ekranie,

Jquery

$(document).ready(function() { 
    $("#animate").animate({left: $(window).width()/2}, 2000); 
}); 

css

<style type="text/css"> 
div 
{ 
    height: 50px; width: 50px; background-color: Red;position:absolute; top:0; left:0; 
} 
</style> 

html

<div id="container"> 
    <div id="header"> 
     <div id="animate"> 
      cartagena 
     </div> 
    </div> 
</div> 
2

Asuming chcesz wyśrodkować do okna, użyj tego kodu:

$("#myJQUIDialog").parent().position({ 
    my: "center", 
    at: "center", 
    of: window, 
    using: function (pos, ext) { 
     $(this).animate({ top: pos.top }, 600); 
    } 
}); 

tego centrum okno i animować w tym samym czasie, w wyniku gładkiej centrowania