Mini script jQuery (JavaScript) pour augmenter la zone de clic d’un article de blog dans les pages d’archives

Sur les pages de listing de produits ou d’articles, il est possible d’améliorer l’UX très simplement. L’idée est simple : récupérer le lien principal au sein d’un bloc contenant plusieurs informations (titre, paragraphe, lire la suite..), et rendre toute la zone du bloc cliquable.

Il est possible d’avoir un rendu similaire sans JavaScript, juste avec du HTML, en entourant tous les éléments du bloc dans un lien de type <a href= »https://www.exemple.com/ »></a>. Cette deuxième solution présente des inconvénients qui me dérangent : l’ancre (tous les mots inclus dans la balise) contient trop de termes, et la balise <a> n’est pas faite pour cet usage par défaut (d’ailleurs c’est un élément de type inline). Certains diront qu’il suffit de passer l’ancre en display:block (CSS), mais ça reste « tricky ».

Ici l’idée est donc de récupérer le lien (contenu dans un titre) et de rendre toute la zone cliquable. Voici une capture d’écran :

Blocks d'articles dans un blog (image d'illustration), avec 3 zones contenant chacune 1 titre avec un lien + un paragraphe
Sur l’image d’illustration ci-dessus, on trouve 3 blocs d’articles sur un blog. Chaque bloc contient un titre avec un lien et un paragraphe.

Le code HTML d’un bloc ressemble à ça :

<article class="post>
	<h2 class="entry-title" itemprop="headline"><a href="https://www.example.com/" rel="bookmark">The five boxing wizards jump quickly</a></h2>
	<p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nam id ultrices sem, ac elementum diam. Vivamus id risus sagittis, porttitor ante vel, suscipit dui. Nulla malesuada, ex sed volutpat ornare...</p>
</article>

Le snippet JavaScript que je vous présente s’appuie sur la bibliothèque jQuery et est le suivant :

<script>
jQuery(document).ready(function() {
    jQuery(".post").css("cursor", "pointer");

    jQuery(".post").on("click", function() {
        window.location = jQuery(this).find("h2 a").attr("href");
    });

    jQuery(".post a").on("click", function(e) {
        e.stopPropagation();
    });
});
</script>

Notez qu’il est possible de remplacer « jQuery » par le symbole « $ ».

Ce code utilise la méthode $(document).ready() pour s’assurer que le code s’exécute une fois que le DOM est entièrement chargé. Ensuite, il ajoute un événement « click » sur chaque élément avec la classe « post » (les <article>). Lorsque l’élément est cliqué, la fonction récupère l’attribut « href » du lien dans le titre et navigue vers cette URL. L’événement « stopPropagation() » est ajouté pour empêcher les clics sur les liens à l’intérieur de l’élément d’activer l’événement « click » de l’élément parent. Un détail : il ajoute également un style CSS afin que l’élément, au survol, change le pointeur pour lui donner l’apparence du survol d’une zone cliquable / d’un lien.

Il faut bien évidemment adapter le code JavaScript à votre DOM (votre HTML) et intégrer le snippet entre les balises <head> et </head>.

Et voià : vous avez augmenté la zone cliquable, améliorant ainsi la facilité de navigation.

Metas de l'article

Voici davantage de détails sur la publication :

Date de publication :
Dernière mise à jour : 24/03/2023
Catégorie : Développement web
Thèmes abordés : Aucun tag trouvé.
Auteur : Jérôme Lebret, Consultant SEO certifié / Consultant Marketing Digital, Chef de Projet Webmarketing diplômé et créateur de sites internet efficaces sous WordPress

Aide WebMarketing

Vous avez besoin d'aide dans votre marketing digital ? Vous un avez un site WordPress en projet ? Vous souhaitez développer le trafic de votre site internet ? Convertir davantage de visiteurs en clients ?

Création de site internet, optimisation du référencement naturel, stratégie de contenu...

Je suis Jérôme et j'accompagne les entreprises dans leurs projets web.

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Retour en haut