2010-02-24 10 views
14

Ich habe einen Schnipsel von jQuery in doc bereit, die ein div ein textarea enthält schaltet:jQuery: move Fenster Ansichtsfenster zeigen frisch gewechselt Element

$('div#addnote-area').hide(); // hide the div 
$('a#addnote-link').click(function() { // click event listener on link 
    $('div#addnote-area').toggle(); // toggle the hidden div 
}); 

Die Toggle funktioniert gut, wenn auf den Link klicken. Das Problem, das ich habe, ist, dass div#addnote-area unter dem aktuellen Ansichtsfenster des Browsers bleibt, bleibt es dort, wenn es angezeigt wird. Ich möchte, dass der Cursor des Benutzers zum Textfeld geht und das gesamte Textfeld im Fenster angezeigt wird.

Click here to see an image http://i50.tinypic.com/5ousuv.png

Antwort

4

Überprüfen Sie die scrollTo jQuery plugin aus. Sie können einfach etwas tun:

$.scrollTo('div#addnote-area'); 

Oder, wenn Sie es animieren möchten, geben Sie die Anzahl der Millisekunden für das Scrollen zum letzten:

$.scrollTo('div#addnote-area', 500); 
+0

@ Matt Danke, das funktioniert der Trick! Ich wünschte, es gäbe eine einfache jQuery (nicht-Plugin) Weg, aber ich nehme es. – k00k

1

jQuery scrollTop funktioniert auch. Versuchen Sie, wie:

$('#idOfElement').css('scrollTop', 10) 

Sie können mit $(...).offset() Höhe/Breite ziemlich leicht.

49

Ohne das scrollTo Plugin

$(window).scrollTop($('div#addnote-area').offset().top) 

EDIT: Nun, ich sicher, dass viele Punkte aus dieser alten Antwort bekommen :)

hier ein Bonus ist, kann dies auch animiert werden.

Verwenden Sie einfach die animate() Funktion und den Body-Tag Ziel:

$('body').animate({scrollTop:$('div#addnote-area').offset().top},500)

Versuchen Sie es auf Stackoverflow! Öffnen Sie den Inspektor Konsole und führen

$('body').animate({scrollTop:$('#footer').offset().top},500)

+0

Die animierte Lösung scheint für Chrome und nicht für Firefox (18.0.1) zu funktionieren. Ich bin nicht zu scharf mit JS/jQuery, weiß jemand, warum das sein kann? –

+4

Versuchen Sie, Körper und HTML zu animieren. '$ ('Body, html')' – Ben

Verwandte Themen