2011-09-22 8 views
6

En mi página web tengo un div desbordado (es decir, con la barra de desplazamiento vertical). Dentro del div, tengo anclajes con ids. Cuando coloco uno de estos identificadores en la URL (mypage.html # id), quiero que div, no la página, se desplace a ese anclaje.¿Cómo desplazo un div desbordado a un hashtag de confirmación (ancla)?

¿Cómo hago eso, preferiblemente con JavaScript normal? Si es demasiado complejo, usaré jQuery, pero no lo usaré en este proyecto para nada más.

+0

muestra su código hasta el momento –

+0

Así que las 3 respuestas funcionan, gracias. Todavía tengo que hacer pruebas de varios navegadores, pero por el momento fui con .focus() – user323094

+0

Por lo que las pruebas en múltiples navegadores han demostrado que solo funciona .scrollTop(). – user323094

Respuesta

9
$('.overflow').scrollTop($('#anchor').offset().top); 

No hay razón para que no pueda convertir esto a javascript estándar.

Tenga en cuenta que el desplazamiento se desactivará si hay un margen en el elemento de anclaje.

+0

Tuve que reorganizar un poco mi HTML y CSS, pero esto funciona (con .position(), not .offset()). Miré la fuente jQuery y extraer estos métodos podría ser un poco difícil. Trataré de publicar Javascript puro si voy a tener éxito. – user323094

+0

Hay demasiadas interdependencias en jQuery para arrancar esto. Qué demonios, voy a ir con esta solución. Me acabo de dar cuenta de que para la próxima función estaría usando jQuery de todos modos. Gracias por la respuesta. – user323094

+0

En realidad, voy a ir con la solución más simple con focus(), simplemente lo probé. – user323094

2

¿Ha intentado establecer focus() en el ancla?

Cualquier elemento DOM con un tabindex es enfocable, y cualquier elemento que tenga foco se desplazará a la vista por el navegador.

+0

Gracias por la respuesta. – user323094

+0

Sí, ¡gracias por eso! – chris

Cuestiones relacionadas