ho una navigazione e l'URL iniziale si presenta così:jQuery scrollTop non funziona con il collegamento querystring
test.php?query=19
e devo link sulla mia pagina come modo <a href="#section-1">Section 1</a><a href="#section-2">Section 2</a><a href="#section-3">Section 3</a>
con 3 sezioni:
<section id="section-1"></section><section id="section-2"></section><section id="section-3"></section>
e sto usando questo codice jquery per scorrere fino a quella sezione dalla parte superiore della pagina età) all'inizio di quella sezione e non mostrare il tag #
nella mia 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;
}
}
});
});
il mio problema è che questo non scorre alla sezione. va semplicemente alla sezione in basso della sezione e poi scorre verso l'alto e il #
appare nel mio url.
Ho un altro menù sulla mia home page principale:
home.php
e sto usando lo stesso codice esatto jquery e funziona su quella pagina.
mia domanda è come faccio ad avere lo scrollTop di lavorare nella mia pagina test.php?query=19
come fa il home.php
Quando clicco su un come su test.php?query=19
mie modifiche URL a questo: test.php?query=19#section-1
vedete eventuali errori nella console? – Dhiraj
Si dice di avere lo stesso identico codice sul menu. Ho 2 domande: 1) Questa parte '$ ('a [href * = #]: not ([href = #])')' è la stessa?Poiché stai mirando a ogni link nella pagina, e se 2) carichi lo script due volte (menu + questa pagina), i gestori dei clic vengono aggiunti più volte – JohnKiller
* Se * hai postato il tuo codice * effettivo * qui ... allora funziona così com'è e non ci sono problemi (anche se probabilmente la funzione potrebbe essere semplificata un po '). Quindi l'unica risposta è che il problema è * non * nei bit che hai postato qui. Prova a pubblicare il tuo vero 'HTML' e' javascript' ... ritaglia le parti completamente irrilevanti prima di postare (ma assicurati che il problema persista ancora in qualunque codice "minimale" pubblichi qui). Scommetto che scoprirai dove si trova il problema in questo processo quando ritagli una parte che sembra completamente irrilevante;) – Mikk3lRo