2010-02-24 6 views
14

Tengo un fragmento de jQuery en el doc preparada, que alterna un div que contiene una textarea:jQuery: Mueve la ventana de visualización para mostrar elemento recién toggled

$('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 
}); 

El conmutador funciona bien cuando se hace clic en el enlace. El problema que tengo es que si div#addnote-area está debajo de la ventana gráfica actual del navegador, permanece allí cuando se muestra. Me gustaría que el cursor del usuario vaya al área de texto y que todo el área de texto se pueda ver en la ventana.

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

Respuesta

4

Mira la scrollTo jQuery plugin. Simplemente puede hacer algo como esto:

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

O, si se quiere animar, dar el # de milisegundos a que el desplazamiento para durar:

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

@ Matt Gracias, que hace el truco! Desearía que hubiera una forma simple de jQuery (no complemento), pero lo tomaré. – k00k

1

de scrollTop jQuery también funciona. Pruebe a establecer como:

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

Puede obtener altura/anchura bastante facilidad utilizando $(...).offset().

49

Sin el plugin scrollTo

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

EDIT: Bueno Estoy seguro de tener una gran cantidad de puntos de esta vieja respuesta :)

Aquí hay un bono, esto también puede ser animada.

sólo tiene que utilizar la función animate() y el objetivo del cuerpo de la etiqueta:

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

probarlo en Stackoverflow! Abra la consola inspector y ejecutar

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

+0

La solución animada parece funcionar para Chrome y no para Firefox (18.0.1). No soy muy listo con JS/jQuery, ¿alguien sabe por qué esto puede ser? –

+4

Intenta animar tanto el cuerpo como html..' $ ('body, html') ' – Ben

Cuestiones relacionadas