mam nawigację i początkowe url wygląda następująco:jQuery scrollTop nie działa z linkiem kwerendy
test.php?query=19
i mam linki na mojej stronie jak Więc <a href="#section-1">Section 1</a><a href="#section-2">Section 2</a><a href="#section-3">Section 3</a>
z 3 części:
<section id="section-1"></section><section id="section-2"></section><section id="section-3"></section>
i używam tego kodu jquery, aby przewinąć do tej sekcji od góry strony (lub gdy użytkownik znajduje się na p wiek) na początku tej sekcji i nie wyświetlaj tagu #
w moim adresie URL.
$(function() {
$('a[href*=#]:not([href=#])').click(function() {
if (location.pathname.replace(/^\//, '') == this.pathname.replace(/^\//, '') && location.hostname == this.hostname) {
var target = $(this.hash);
target = target.length ? target : $('[name=' + this.hash.slice(1) + ']');
if (target.length) {
$('html,body').animate({
scrollTop: target.offset().top
}, 2000);
return false;
}
}
});
});
Mój problem polega na tym, że nie przewija się do sekcji. po prostu przechodzi do dolnej sekcji sekcji, a następnie przewija do góry, a w moim adresie URL pojawia się #
.
mam innego menu na mojej głównej stronie głównej:
home.php
i używam dokładnie ten sam kod jquery i działa na tej stronie.
Moje pytanie brzmi: w jaki sposób mogę uzyskać scrollTop pracować w moim test.php?query=19
stronie jak to robi na home.php
Kiedy klikam na podobnym na test.php?query=19
moje zmiany adresu URL do tego: test.php?query=19#section-1
widzisz jakieś błędy w konsoli? – Dhiraj
Mówisz, że masz dokładnie ten sam kod w menu. Mam 2 pytania: 1) Ta część '$ ('a [href * = #]: not ([href = #])') jest taka sama?Ponieważ celujesz w każdy link na stronie, a jeśli 2) ładujesz skrypt dwukrotnie (menu + ta strona), to procedury obsługi kliknięć są dodawane wielokrotnie – JohnKiller
* Jeśli * opublikowałeś tutaj swój * aktualny * kod ... działa tak jak jest, i nie ma problemu (choć funkcja prawdopodobnie mogłaby być nieco uproszczona). Tak więc jedyną odpowiedzią jest to, że problem dotyczy * nie * w bitach tutaj zamieszczonych. Postaraj się, aby Twój aktualny "HTML" i "javascript" ... wykasował wszelkie nieistotne elementy przed opublikowaniem (ale upewnij się, że problem nadal występuje w jakimkolwiek "minimalnym" kodzie, który tu publikujesz). Założę się, że odkryjesz, gdzie jest problem w tym procesie, gdy wycinasz część, która wydaje się zupełnie nieistotna;) – Mikk3lRo