$('a').click(function(){
$('html, body').animate({
scrollTop: $( $.attr(this, 'href') ).offset().top
}, 500);
return false;
});
Et voici le violon: http://jsfiddle.net/9SDLw/
Si votre élément cible ne dispose pas d'un ID, et vous êtes lier à elle de par sa name
, utilisez ceci:
$('a').click(function(){
$('html, body').animate({
scrollTop: $('[name="' + $.attr(this, 'href').substr(1) + '"]').offset().top
}, 500);
return false;
});
Pour des performances accrues, vous devez cache $('html, body')
sélecteur, de sorte qu'il ne fonctionne pas à chaque fois un point d'ancrage est cliqué:
var $root = $('html, body');
$('a').click(function() {
$root.animate({
scrollTop: $( $.attr(this, 'href') ).offset().top
}, 500);
return false;
});
Si vous voulez que l'URL de mise à jour, le faire dans l' animate
de rappel:
var $root = $('html, body');
$('a').click(function() {
var href = $.attr(this, 'href');
$root.animate({
scrollTop: $(href).offset().top
}, 500, function () {
window.location.hash = href;
});
return false;
});