J'ai un panneau coulissant mis en place sur mon site Web.
Quand il a terminé l'animation, j'ai mis le hachage comme ça
function() {
window.location.hash = id;
}
(il s'agit d'un rappel, et le id
est attribué plus tôt).
Cela fonctionne bien, pour permettre à l'utilisateur de mettre en signet le panneau, et aussi pour que la version non JavaScript fonctionne.
Cependant, lorsque je mets à jour le hachage, le navigateur saute à l'emplacement. Je suppose que c'est un comportement attendu.
Ma question est la suivante: comment puis-je éviter cela? Ie comment puis-je changer le hachage de la fenêtre, mais ne pas faire défiler le navigateur jusqu'à l'élément si le hachage existe? Une sorte event.preventDefault()
de chose?
J'utilise jQuery 1.4 et le plugin scrollTo .
Merci beaucoup!
Mettre à jour
Voici le code qui change le panneau.
$('#something a').click(function(event) {
event.preventDefault();
var link = $(this);
var id = link[0].hash;
$('#slider').scrollTo(id, 800, {
onAfter: function() {
link.parents('li').siblings().removeClass('active');
link.parent().addClass('active');
window.location.hash = id;
}
});
});
event.preventDefault()
:)