2010-07-12 9 views
6

I tiene una larga lista de divs anidados. Paso la identificación de un elemento en particular (en realidad, un elemento de párrafo) en la cadena de consulta y abro su div y padre de carga. Sin embargo, la lista es tan larga que a veces el elemento que se abre se oculta debajo de la parte inferior de la ventana.Vaya a un elemento particular w/jQuery

¿Cómo se desplazará automáticamente la ventana del navegador del usuario para que el elemento que aparece es en la parte superior de la pantalla?

Probablemente no necesita esto, pero para que conste ... mi lista es así:

<div id="div1"> 
    <p id="1"></p> 
    <div>stuff</div> 
    <p id="2"></p> 
    <div>stuff</div> 
    <p id="3"></p> 
    <div>stuff</div> 
</div> 
... 
<div id="divN"> 
    <p id="997"></p> 
    <div>stuff</div> 
    <p id="998"></p> 
    <div>stuff</div> 
    <p id="999"></p> 
    <div>stuff</div> 
</div> 
+3

No es válido para iniciar sus identificaciones con un número. – user113716

+4

Sí, sí ... ese no es el código real. : P – Bryan

Respuesta

12

usted podría utilizar la función scrollIntoView.

$(document).ready(function() { 
    $('#divN').get(0).scrollIntoView(); 
}); 
+1

¿Funcionará esto en el navegador? –

+0

+1 en esta respuesta, pero con la advertencia de que no se desplaza si el objetivo ya está a la vista. @Russ - Esto es ampliamente respaldado por mi conocimiento. – user113716

+0

@Russ: No lo creo, de lo contrario sería una característica bastante agradable. Pero realmente creo que suena bien ser verdad. El equipo central de Resig & jQuery lo habría implementado si se tratara de un navegador cruzado. – jAndy

2

La forma más sencilla de hacer esto es mediante el uso Ariel Flesler's scrollTo plugin. Lo he usado varias veces antes y es pequeño, liviano y funciona muy bien.

6

jQuery:

$(document).ready(function(){ 
    $(document.body).scrollTop($('#divN').offset().top); 
}); 
Cuestiones relacionadas