2011-09-22 7 views
6

Nella mia pagina Web ho un div overflow (cioè con la barra di scorrimento verticale). Dentro il div, ho delle ancore con id. Quando inserisco uno di questi ID nell'URL (mypage.html # id), voglio che il div, non la pagina, scorrano fino all'ancora.Come si scorre un div overflow a un hashtag (anchor) di certa precisione?

Come faccio, preferibilmente con JavaScript semplice? Se è troppo complesso, andrò con jQuery, ma non lo sto usando in questo progetto per nient'altro.

+0

mostrare il codice fino ad ora –

+0

Quindi tutte e 3 queste risposte funzionano, grazie. Devo ancora fare test su più browser, ma per ora sono andato con .focus() – user323094

+0

Quindi testare in più pagine ha dimostrato che solo .scrollTop() funziona. – user323094

risposta

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

Non c'è alcun motivo per cui non è possibile convertire questo in javascript standard.

Si noti che lo scorrimento sarà disattivato se c'è un margine sull'elemento di ancoraggio.

+0

Ho dovuto riorganizzare un po 'il mio codice HTML e CSS, ma funziona (con .position(), non .offset()). Ho guardato la fonte di jQuery e strappare questi metodi potrebbe essere un po 'difficile. Proverò a postare pure javascript se riuscirò. – user323094

+0

Ci sono troppe interdipendenze in jQuery per eliminare questo problema. Che diavolo, vado con questa soluzione - ho appena realizzato che per il prossimo film userò comunque jQuery. Grazie per la risposta. – user323094

+0

In realtà, andrò con la soluzione più semplice con focus(), appena testato. – user323094

2

Hai provato a impostare focus() sull'ancora?

Qualsiasi elemento DOM con un tabindex è focheggiabile, e qualsiasi elemento che ha lo stato attivo verrà fatto scorrere in vista dal browser.

+0

Grazie per la risposta. – user323094

+0

Sì, grazie per quello! – chris

Problemi correlati