jQuery: scrolling animato dei link 'Torna su'

jQuery: scrolling animato dei link 'Torna su'

I link 'Torna su' hanno la caratteristica di essere troppo veloci e poco elastici nel loro movimento, portando ad uno scrolling istantaneo della pagina verso l'ancora di destinazione. Oltre a ciò, hanno anche lo svantaggio di aggiungere l'ancora (hash) stessa all'URL della pagina. Vediamo come risolvere questo problema con jQuery.

Partiamo da questa struttura HTML:


<body id="top">

	<!-- contenuti -->
	
	<p><a class="top" href="#top">Torna su</a></p>

</body>

Con jQuery dobbiamo ottenere l'offset superiore dell'elemento a cui punta l'ancora e operare sulla proprietà scrollTop degli elementi html e body:


$(document).ready(function() {

	$('a.top', document.body).click(function(event) {
	
		$('html, body').animate({
			scrollTop: $($(this).attr('href')).offset().top + 'px'
		}, {
			duration: 500,
			easing: 'swing'
		});
		
		event.preventDefault();
	});
});

Abbiamo scelto l'easing di tipo swing per ottenere la maggiore fluidità di movimento possibile. Potete visionare l'esempio finale in questa pagina.

Torna su