Accueil > WordPress > Développement WordPress > Le bouton haut de page

Le bouton haut de page

Publié le 21 janvier 2011 Développement WordPress
Bouton Haut de Page

L’ergonomie joue beaucoup sur la fidélité des visiteurs ainsi que sur le taux de transformation d’un site Internet. Pour rendre plus facile la navigation sur des sites ayant des contenus longs, un bouton haut de page devient un atout indéniable.

Suite à plusieurs demandes concernant le bouton Retour en haut utilisé sur le site de l’agence SeoMix, voici un petit tutoriel pour en installer un sur une page statique ou sur le CMS WordPress.

Créer un bouton haut de page

Le bouton utilisé sur SeoMix fonctionne à l’aide de Jquery, de deux plugins de cette même librairie ainsi qu’un peu de HTML et de CSS. Vous aurez donc besoin d’un accès FTP à votre site, et d’un logiciel d’édition de fichiers (Notepad ++ est parfait).

Temps d’installation : moins de 10 minutes.
Difficulté : facile.

Le javascript

Pour installer ce bouton « Retour en haut« , vous avons besoin 3 JavaScripts différents (que l’on va combiner en un seul) :

  • Jquery 1.4.4
  • Jquery easing
  • Jquery Scroll To Top (ressource indisponible depuis la rédaction de l’article. Utilisez le fichier contenu à la fin de ce post)

PS : pour ceux qui ne veulent pas réaliser la manipulation des javascripts, celui-ci est disponible en fin d’article.

Commencez par télécharger la dernière version de Jquery, en version de production (c’est à dire compressée pour prendre moins de place). Créez ensuite un fichier javascript « toto.js », et ajoutez-y son contenu.

Placez ensuite ce fichier javascript dans votre code html juste avant la fin du </body>, comme ceci:

[pastacode lang= »markup » message= » » highlight= » » provider= »manual » manual= »%20%20%20%20%3Cscript%20type%3D%22text%2Fjavascript%22%20src%3D%22toto.js%22%3E%3C%2Fscript%3E%0A%20%20%3C%2Fbody%3E%0A%3C%2Fhtml%3E »/]

Copiez ensuite dans toto.js le contenu du plugin Jquery Easing, qui va permettre de modifier la transition pour avoir un effet fluide et graphique.

Puis, nous allons également placer (toujours à la suite du fichier) le contenu du plugin Jquery Scroll To Top que voici:

[pastacode lang= »javascript » message= » » highlight= » » provider= »manual » manual= »%20%20%2F*%20——%20jQuery%20Plugin%3A%20Scroll%20to%20Top%20——%20*%2F%0A%20%20%24(function()%7B%0A%20%20%20%20%24.fn.scrollToTop%3Dfunction(options)%7B%0A%20%20%20%20%20%20if(options.speed)%7Bvar%20%20speed%3Doptions.speed%3B%7Delse%7Bvar%20speed%3D%22slow%22%3B%7D%0A%20%20%20%20%20%20if(options.ease)%7Bvar%20%20ease%3Doptions.ease%3B%7Delse%7Bvar%20ease%3D%22jswing%22%3B%7D%0A%20%20%20%20%20%20if(options.start)%7Bvar%20%20start%3Doptions.start%3B%7Delse%7Bvar%20start%3D%220%22%3B%7D%0A%20%20%20%20%20%20var%20%20scrollDiv%3D%24(this)%3B%24(this).hide().removeAttr(%22href%22)%3B%0A%20%20%20%20%20%20if(%24(window).scrollTop()%3Estart)%7B%0A%20%20%20%20%20%20%20%20%24(this).fadeIn(%22slow%22)%3B%7D%0A%20%20%20%20%20%20%20%20%24(window).scroll(function()%7B%0A%20%20%20%20%20%20%20%20%20%20if(%24(window).scrollTop()%3Estart)%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%24(scrollDiv).fadeIn(%22slow%22)%3B%0A%20%20%20%20%20%20%20%20%20%20%7D%20else%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%24(scrollDiv).fadeOut(%22slow%22)%3B%0A%20%20%20%20%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20%20%7D)%3B%0A%20%20%20%20%20%20%20%24(this).click(function(event)%7B%0A%20%20%20%20%20%20%20%20%20%24(%22html%2C%20%20body%22).animate(%7BscrollTop%3A%220px%22%7D%2Cspeed%2Cease)%3B%0A%20%20%20%20%20%7D)%3B%0A%20%20%20%20%7D%0A%20%20%7D)%3B »/]

Pour terminer, copiez le code suivant à la fin de votre fichier JS : c’est ce qui va permettre d’activer la fonctionnalité de retour en haut.

[pastacode lang= »javascript » message= » » highlight= » » provider= »manual » manual= »%24(document).ready(function()%7B%0A%20%20%24(%22%23IDdubouton%22).scrollToTop(%7B%0A%20%20%20%20speed%3A1800%2C%0A%20%20%20%20ease%3A%22easeOutBounce%22%2C%0A%20%20%20%20start%3A250%7D)%3B%0A%7D)%3B »/]

Vous remarquez trois lignes distinctes qui permettent de modifier l’apparition du bouton, ainsi que sa transition :

  • speed : la durée de la transition, en secondes.
  • ease : l’effet appliqué sur la transition.
  • start : le nombre de pixels à partir duquel le bouton apparaît en descendant dans la page (ici, le bouton est visible quand les 250 premiers pixels de la page ne sont plus visibles).

Concernant le paramètre « ease« , je vous invite à regarder cette page (Easing Plugin), et notamment le bloc « example » dans lequel vous pouvez tester tous les types de transitions qui existent.

Nous avons donc le code suivant dans toto.js :

  • Jquery
  • suivi de Easing
  • suivi de Scroll To Top
  • suivi de notre code

L’intégration html

Notre bouton est prêt à être ajouté. Je vous conseille de le placer en bas de page, juste avant votre javascript, ce qui nous donne:

[pastacode lang= »markup » message= » » highlight= » » provider= »manual » manual= »%20%20%20%20%3Cbutton%20type%3D%22button%22%20id%3D%22IDdubouton%22%20title%3D%22Haut%20de%20page%22%3EHaut%20de%20page%3C%2Fbutton%3E%0A%20%20%20%20%3Cscript%20type%3D%22text%2Fjavascript%22%20src%3D%22toto.js%22%3E%3C%2Fscript%3E%0A%20%20%3C%2Fbody%3E%0A%3C%2Fhtml%3E »/]

Le bouton est fin prêt : un simple clic dessus et le tour est joué.

La mise en page

Sauf que notre bouton ne ressemble à rien en l’état, puisqu’il est placé en bas de page (donc inutile car on ne le voit pas tout le temps). Nous allons donc créer notre feuille de style (le fichier style.css) ou modifier celle qui existe déjà en ajoutant et personnalisant ce code:

[pastacode lang= »css » message= » » highlight= » » provider= »manual » manual= »%23backtop%7B%0A%20position%3Afixed%3B%0A%20%2F*%20La%20couleur%20de%20fond*%2F%0A%20background%3A%23eff0d4%3B%0A%20%2F*La%20bordure*%2F%0A%20border%3A2px%20solid%20%23125371%3B%0A%20%2F*%20la%20longueur%20et%20l’espace%20autour%20du%20texte*%2F%0A%20width%3A135px%3B%0A%20padding%3A12px%3B%0A%20%2F*%20On%20place%20le%20bloc%20en%20bas%20%C3%A0%20droite*%2F%0A%20right%3A30px%3B%0A%20bottom%3A35px%3B%0A%20%2F*%20On%20ajoute%20un%20bord%20arrondi%20pour%20les%20navigateurs%20compatibles*%2F%0A%20border-radius%3A7px%3B-moz-border-radius%3A7px%3B-khtml-border-radius%3A7px%3B-webkit-border-radius%3A7px%20%20%20%20%7D%0A%23backtop%3Ahover%7B%0A%20%2F*On%20change%20le%20curseur%20de%20la%20souris%20au%20survol*%2F%0A%20cursor%3Apointer%3B%0A%20%2F*On%20change%20la%20couleur%20de%20fond%20au%20survol*%2F%0A%20background%3A%23125371%3B%0A%20%2F*On%20change%20la%20couleur%20de%20la%20bordure%20au%20survol*%2F%0A%20border%3A2px%20solid%20%23eff0d4%3B%0A%20%2F*On%20change%20la%20couleur%20de%20texte%20au%20survol*%2F%0A%20color%3A%23eff0d4%7D »/]

Libre à vous de positionner et de donner la couleur que vous voulez à votre Haut de Page.

Si vous vous souhaitez faire disparaître également les pointillés qui apparaissent lors du clic sur votre bouton, copier/coller le code ci-dessous. Attention cependant : ces pointillés servent à la navigation au clavier afin de savoir où l’on se situe, notamment pour les personnes ayant un handicap. Libre à vous donc de mettre en place cette dernière partie ou non dans vos css.

[pastacode lang= »css » message= » » highlight= » » provider= »manual » manual= »%3Afocus%7Boutline%3A0%7D%0Abutton%3A%3A-moz-focus-inner%2C%0Ainput%5Btype%3D%22reset%22%5D%3A%3A-moz-focus-inner%2C%0Ainput%5Btype%3D%22button%22%5D%3A%3A-moz-focus-inner%2C%0Ainput%5Btype%3D%22submit%22%5D%3A%3A-moz-focus-inner%2C%0Ainput%5Btype%3D%22file%22%5D%20%3E%20input%5Btype%3D%22button%22%5D%3A%3A-moz-focus-inner%7Bborder%3A0%3Boutline%3Anone%7D »/]

Le rendu final donnera donc :

Bouton haut de page
Le bouton haut de page

Le haut de page sur WordPress

Maintenant, il s’agit de faire la même chose sur mon CMS préféré. Et c’est encore plus simple. Il faut juste vérifier plusieurs points dans le répertoire de votre thème :

  • Pour savoir si Jquery est chargé ou non par votre blog WordPress, consulter le code source de votre page puis faites une recherche sur le terme Jquery (touches Ctrl + F). Si la recherche ne donne rien, il faudra l’inclure.
  • Vérifiez dans le même temps si votre thème utilise bien un fichier style.css (ce qui est normalement le cas), et s’il fait déjà appel à un javascript existant (beaucoup plus rare).

Voici la méthode à suivre :

1 – copiez le contenu css dans celui de votre thème WordPress. Si le fichier n’existe pas (ce dont je doute), créez-le puis ajoutez-le dans le fichier header.php avec le code suivant:

[pastacode lang= »markup » message= » » highlight= » » provider= »manual » manual= »%3Clink%20rel%3D%22stylesheet%22%20href%3D%22%3C%3Fphp%20bloginfo(‘stylesheet_url’)%3B%20%3F%3E%22%20type%3D%22text%2Fcss%22%20media%3D%22screen%22%20%2F%3E »/]

2 – Si vous avez déjà Jquery chargé dans votre header, copiez dans un fichier à part (ou dans le javascript déjà présent dans votre thème) le contenu de Easing, Scroll To Top et mon code. Si Easing est également chargé, ne prenez que les deux derniers.

2bis – Si vous n’avez pas déjà Jquery, faites comme la première méthode en copiant tout dans votre fichier javascript.

3 – Placez ensuite dans le répertoire de votre thème WordPress votre fichier toto.js

4- Modifiez ensuite le fichier footer.php comme ceci :

[pastacode lang= »markup » message= » » highlight= » » provider= »manual » manual= »%20%20%20%3Cbutton%20type%3D%22button%22%20id%3D%22backtop%22%20title%3D%22Haut%20de%20page%22%3EHaut%20de%20page%3C%2Fbutton%3E%0A%20%20%20%3Cscript%20type%3D%22text%2Fjavascript%22%20src%3D%22%3C%3Fphp%20bloginfo(‘stylesheet_directory’)%3B%20%3F%3E%2Ftoto.js%22%3E%3C%2Fscript%3E%0A%20%20%3C%2Fbody%3E%0A%3C%2Fhtml%3E »/]

Voilà, le tour est joué : vous avez désormais un bouton haut de page sur votre blog WordPress.

Le javascript final du haut de page

Pour les feignants, voici le fichier javascript final, dont vous n’avez que la dernière ligne à changer:

Daniel Roch

Conférencier, auteur, consultant et expert SEO WordPress, CEO de SeoMix et SEOKEY

32 Commentaires

bruno Le 21 janvier 2011 à 15h02
Namasteo Le 21 janvier 2011 à 15h11
DJib's Le 21 janvier 2011 à 19h17
Valentin Le 21 janvier 2011 à 19h40
Masamune Le 21 janvier 2011 à 20h09
Daniel Roch Le 21 janvier 2011 à 22h34
Pascal Le 21 janvier 2011 à 23h27
Djib's Le 23 janvier 2011 à 12h31
Johan Le 24 janvier 2011 à 9h52
Maximilien Le 24 janvier 2011 à 12h34
Daniel Roch Le 24 janvier 2011 à 13h43
Masamune Le 25 janvier 2011 à 15h23
Daniel Roch Le 25 janvier 2011 à 15h44
Cédric G. Le 27 janvier 2011 à 21h22
Annuaire généraliste de qualité Le 29 janvier 2011 à 1h52
Laurent Mottet Le 10 mars 2011 à 21h24
leglaude51 Le 16 mai 2011 à 20h01
Daniel Roch Le 17 mai 2011 à 7h47
leglaude51 Le 17 mai 2011 à 17h37
Daniel Roch Le 18 mai 2011 à 9h22
Merqur Le 19 juin 2011 à 22h56
patrick Le 15 mars 2012 à 11h56
Noob Le 05 octobre 2012 à 12h51
Daniel Roch Le 06 octobre 2012 à 9h19
Loic Le 26 mars 2013 à 18h34
    Daniel Roch Le 27 mars 2013 à 9h37
Dan Leran Le 17 juillet 2013 à 14h51
Léa Le 23 juillet 2013 à 13h35
Connors Le 17 septembre 2013 à 17h45
    Daniel Roch Le 19 septembre 2013 à 15h40
Stan O'Connors Le 19 septembre 2013 à 15h43
Damien Le 17 avril 2014 à 9h59

Laisser un commentaire

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