HTML + JS + CSS : Créer un bouton "Vers le haut" sur son site
Table des matières
Si on a un site web qui possède de grandes pages, il peut être utile d'afficher un bouton pour retourner en haut de page.
Il est judicieux de placer le bouton en bas à droite.
Le but est qu'il s'affiche une fois 200 pixels de page descendu.
Voici mon corps de page :
Bien souvent, sur les sites, on utilise du JQuery.
Je vais donc utiliser une fonction JQuery.
Si tel n'est pas le cas, appeler JQuery dans la balise <head> de notre site :
On créé une div, avec notre bouton dedans.
J'ai opté pour une image, de dimension 35x35 environ.
Le bouton utilisé est celui-ci :
On applique du style dans notre feuille de style, pour positionner ce bouton en bas à droite de page, fixé :
Le -100px est important, puisqu'au chargement de la page, le bouton sera masqué.
Bien, on a notre bouton et il est masqué.
Maintenant, il ne reste qu'a l'afficher au bout de 200pixels descendus.
Pour cela, une petite fonction avec JQuery pourra répondre à nos besoins :
Il faut juste s'assurer qu'elle est appelée après JQuery évidemment.
Voici le code tout en 1.
Et l'image : to_top.png
Introduction
Si on a un site web qui possède de grandes pages, il peut être utile d'afficher un bouton pour retourner en haut de page.
Il est judicieux de placer le bouton en bas à droite.
Le but est qu'il s'affiche une fois 200 pixels de page descendu.
Mise en pratique
Voici mon corps de page :
Code HTML :
<html> <head> <title>Ma super page</title> <head> <body> <h2>Du texte</h2> <h2>Du texte</h2> <h2>Du texte</h2> <h2>Du texte</h2> <h2>Du texte</h2> <h2>Du texte</h2> <h2>Du texte</h2> <h2>Du texte</h2> <h2>Du texte</h2> <h2>Du texte</h2> <h2>Du texte</h2> <h2>Du texte</h2> <h2>Du texte</h2> <h2>Du texte</h2> <h2>Du texte</h2> <h2>Du texte</h2> <h2>Du texte</h2> <h2>Du texte</h2> <h2>Du texte</h2> <h2>Du texte</h2> <h2>Du texte</h2> <h2>Du texte</h2> <h2>Du texte</h2> <h2>Du texte</h2> <h2>Du texte</h2> <h2>Du texte</h2> <h2>Du texte</h2> <h2>Du texte</h2> <h2>Du texte</h2> <h2>Du texte</h2> <h2>Du texte</h2> <h2>Du texte</h2> <h2>Du texte</h2> <h2>Du texte</h2> <h2>Du texte</h2> <h2>Du texte</h2> <h2>Du texte</h2> <h2>Du texte</h2> <h2>Du texte</h2> <h2>Du texte</h2> <h2>Du texte</h2> <h2>Du texte</h2> <h2>Du texte</h2> <h2>Du texte</h2> <h2>Du texte</h2> <h2>Du texte</h2> <h2>Du texte</h2> </body> </html>
Prérequis
Bien souvent, sur les sites, on utilise du JQuery.
Je vais donc utiliser une fonction JQuery.
Si tel n'est pas le cas, appeler JQuery dans la balise <head> de notre site :
Code HTML :
Mise en place du bouton
On créé une div, avec notre bouton dedans.
J'ai opté pour une image, de dimension 35x35 environ.
Le bouton utilisé est celui-ci :
On applique du style dans notre feuille de style, pour positionner ce bouton en bas à droite de page, fixé :
Code CSS :
#scrollUp { position: fixed; bottom : 10px; right: -100px; opacity: 0.5; }
Le -100px est important, puisqu'au chargement de la page, le bouton sera masqué.
Afficher le bouton
Bien, on a notre bouton et il est masqué.
Maintenant, il ne reste qu'a l'afficher au bout de 200pixels descendus.
Pour cela, une petite fonction avec JQuery pourra répondre à nos besoins :
Code JAVASCRIPT :
jQuery(function(){ $(function () { $(window).scroll(function () { //Fonction appelée quand on descend la page if ($(this).scrollTop() > 200 ) { // Quand on est à 200pixels du haut de page, $('#scrollUp').css('right','10px'); // Replace à 10pixels de la droite l'image } else { $('#scrollUp').removeAttr( 'style' ); // Enlève les attributs CSS affectés par javascript } }); }); });
Il faut juste s'assurer qu'elle est appelée après JQuery évidemment.
Le code "Tout en 1"
Voici le code tout en 1.
Code HTML :
<html> <head> <style> #scrollUp { position: fixed; bottom : 10px; right: -100px; opacity: 0.5; } </style> <script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.8/jquery.min.js"></script> <script> jQuery(function(){ $(function () { $(window).scroll(function () { if ($(this).scrollTop() > 200 ) { $('#scrollUp').css('right','10px'); } else { $('#scrollUp').removeAttr( 'style' ); } }); }); }); </script> </head> <body> <h2>Du texte</h2> <h2>Du texte</h2> <h2>Du texte</h2> <h2>Du texte</h2> <h2>Du texte</h2> <h2>Du texte</h2> <h2>Du texte</h2> <h2>Du texte</h2> <h2>Du texte</h2> <h2>Du texte</h2> <h2>Du texte</h2> <h2>Du texte</h2> <h2>Du texte</h2> <h2>Du texte</h2> <h2>Du texte</h2> <h2>Du texte</h2> <h2>Du texte</h2> <h2>Du texte</h2> <h2>Du texte</h2> <h2>Du texte</h2> <h2>Du texte</h2> <h2>Du texte</h2> <h2>Du texte</h2> <h2>Du texte</h2> <h2>Du texte</h2> <h2>Du texte</h2> <h2>Du texte</h2> <h2>Du texte</h2> <h2>Du texte</h2> <h2>Du texte</h2> <h2>Du texte</h2> <h2>Du texte</h2> <h2>Du texte</h2> <h2>Du texte</h2> <h2>Du texte</h2> <h2>Du texte</h2> <h2>Du texte</h2> <h2>Du texte</h2> <h2>Du texte</h2> <h2>Du texte</h2> <h2>Du texte</h2> <h2>Du texte</h2> <h2>Du texte</h2> <h2>Du texte</h2> <h2>Du texte</h2> <h2>Du texte</h2> <h2>Du texte</h2> <div id="scrollUp"> <a href="#top"><img src="to_top.png"/></a> </div> </body> </html>
Et l'image : to_top.png