Czy za pomocą jQuery można przewijać do określonej lokalizacji na stronie?
Czy lokalizacja, którą chcę przewinąć, musi mieć:
<a name="#123">here</a>
Czy może po prostu przejść do określonego identyfikatora DOM?
jquery
scroll
scrollto
jquery-scrollable
mrblah
źródło
źródło
Odpowiedzi:
Wtyczka jQuery Scroll
ponieważ jest to pytanie oznaczone jquery, muszę powiedzieć, że ta biblioteka ma bardzo fajną wtyczkę do płynnego przewijania, możesz ją znaleźć tutaj: http://plugins.jquery.com/scrollTo/
Fragmenty dokumentacji:
lub
Niestandardowa funkcja jQuery do przewijania
możesz użyć bardzo prostego podejścia , definiując swoją niestandardową funkcję przewijania jquery
i używaj go jak:
Przewiń do współrzędnych strony
Animuj
html
ibody
elementy z atrybutamiscrollTop
lubscrollLeft
Zwykły javascript
przewijanie za pomocą
window.scroll
podsumowując, użyj window.location.hash, aby przejść do elementu o identyfikatorze
Bezpośrednio w HTML (ulepszenia dostępności)
źródło
Tak, nawet w zwykłym JavaScript jest to całkiem proste. Dajesz elementowi identyfikator, a następnie możesz go użyć jako „zakładki”:
Jeśli chcesz, aby przewijał się tam, gdy użytkownik kliknie łącze, możesz po prostu użyć wypróbowanej metody:
Aby zrobić to programowo, użyj
scrollIntoView()
źródło
Nie ma potrzeby używania żadnej wtyczki, możesz to zrobić w ten sposób:
następnie użyj tego, aby przewinąć dokument do określonego DOM:
źródło
.animate
rozmowy dziejeOto czysta wersja javascript:
Przewinie się automatycznie. Pamiętaj, aby dodać przedrostek „#”.
źródło
Zwykły JavaScript:
źródło
Ten przykład pokazuje, jak zlokalizować określony identyfikator div, tj. W tym przypadku „idVal”. Jeśli masz kolejne elementy div / tabele, które otworzą się na tej stronie za pośrednictwem ajax, możesz przypisać unikalne elementy div i wywołać skrypt, aby przewinął do określonej lokalizacji dla każdej zawartości elementów div.
Mam nadzieję, że to się przyda.
źródło
źródło
Spróbuj tego
źródło
Oto wariant lekkiego podejścia @ juraj-blahunka . Ta funkcja nie zakłada, że kontener jest dokumentem i przewija się tylko wtedy, gdy element jest poza zasięgiem widoku. Kolejkowanie animacji jest również wyłączone, aby uniknąć niepotrzebnego przeskakiwania.
źródło
Korzystanie z jquery.easing.min.js, z poprawionymi błędami konsoli IE
HTML
Jquery
źródło
location.hash = 'idOfElement';
powinno wystarczyćMożesz użyć,
scroll-behavior: smooth;
aby zrobić to bez Javascripthttps://developer.mozilla.org/en-US/docs/Web/CSS/scroll-behavior
źródło