2011-09-22 16 views
6

Na mojej stronie mam przepełniony div (tj. Z pionowym paskiem przewijania). Wewnątrz div mam kotwice z ids. Kiedy umieściłem jeden z tych identyfikatorów w adresie URL (mypage.html # id), chcę, aby div, a nie na stronie, przewinął do tej kotwicy.Jak przewinąć przepełniony div do hasztagu (kotwicy)?

Jak to zrobić, najlepiej z prostym JavaScript? Jeśli to zbyt skomplikowane, pójdę z jQuery, ale nie używam go w tym projekcie do niczego innego.

+0

pokazać kod do tej pory –

+0

Więc wszystkie 3 z tych odpowiedzi działają, dzięki. Nadal muszę wykonywać testy w różnych przeglądarkach, ale na razie poszedłem z .focus() – user323094

+0

. Testowanie w wielu przeglądarkach pokazało, że działa tylko .scrollTop(). – user323094

Odpowiedz

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

Nie ma powodu w ogóle nie można przekonwertować to do standardowej javascript.

Należy pamiętać, że przewijanie zostanie wyłączone, jeśli na elemencie zakotwiczającym znajduje się margines.

+0

Musiałem trochę zreorganizować mój HTML i CSS, ale to działa (z .position(), nie .offset()). Spojrzałem na źródło jQuery i zgrywanie tych metod może być nieco trudne. Spróbuję opublikować czysty javascript, jeśli mi się uda. – user323094

+0

Istnieje zbyt wiele współzależności w jQuery, aby zgrać to. Co do diabła, pójdę z tym rozwiązaniem - właśnie zdałem sobie sprawę, że dla następnej funkcji i tak będę używał jQuery. Dziękuję za odpowiedź. – user323094

+0

Właściwie to pójdę z prostszym rozwiązaniem z focus(), po prostu przetestowałem to. – user323094

2

Czy próbowałeś ustawić focus() na kotwicy?

Dowolny element DOM z tabindeksem można ustawić, a każdy element, który ma fokus, zostanie przewinięty do widoku przez przeglądarkę.

+0

Dzięki za odpowiedź. – user323094

+0

Tak, dzięki za to! – chris