Comment éviter la superposition d’un lien hanchor avec la barre de navigation

Tout d’abord, si tu ne sais pas ce qu’est un lien hanchor, c’est simplement un lien qui dirige l’utilisateur vers une section spécifique d’une page web en utilisant un identifiant. Par exemple, si tu as une page web avec trois sections nommées « Introduction », « Contenu » et « Conclusion », tu peux ajouter des liens hanchors pour que les utilisateurs puissent cliquer dessus et être dirigés directement vers la section qu’ils veulent voir.

Maintenant, le problème avec les liens hanchors est que lorsqu’un utilisateur clique dessus, la section qu’il souhaite voir peut être cachée derrière la barre de navigation en haut de la page. Cela peut être frustrant pour l’utilisateur car il ne peut pas voir la section complète. Pour éviter cela, nous allons ajouter une marge lors d’un clique sur un lien hanchor.

Pour ce faire, nous allons utiliser un peu de CSS. Voici un exemple de code:

CSS
html, body {
   scroll-padding-top: 200px;
}

Ce code ajoute un padding lors du scoll avec un lien hanchor, qui permettra de compenser la hauteur de la barre de navigation en haut de la page.

Elementor!

Parfois avec Elementor le style ne marche pas parce qu’Elementor utilise sa propre fonction pour faire défiler les liens d’ancrage. Voici donc la solution.

JavaScript
window.addEventListener('elementor/frontend/init', function() {
	elementorFrontend.hooks.addFilter( 'frontend/handlers/menu_anchor/scroll_top_distance', function( scrollTop ) {
		return scrollTop - 200;
	} );
} );

Et voilà! Maintenant, lorsque l’utilisateur clique sur le lien hanchor, la section correspondante apparaîtra avec une marge supérieure pour éviter qu’elle ne soit cachée derrière la barre de navigation. Cependant, il est important de noter que ce code peut parfois ne pas fonctionner en fonction de certains sites web qui ont une structure de code différente. Dans ces cas-là, il peut être nécessaire d’adapter le code CSS en conséquence ou de chercher d’autres solutions pour éviter la superposition. Espérons que cela aide les utilisateurs à naviguer plus facilement sur votre site web!

Menu.