Curseurs de réglage de type "Facebook" avec Mootools et les feuilles de styles CSS

Date de publication originale : 16 avril 2008

Date de la traduction : 09 janvier 2009

Remerciements à RideKick pour sa relecture.

Cet article vous montre comment mettre en place facilement des curseurs de réglage de type "Facebook" en utilisant les technologies JavaScripts (Mootools) et les feuilles de style.

Sommaire

Curseurs de réglage de type "Facebook" avec Mootools et les feuilles de styles CSS

L'un des intérêts que trouve [David Walsh] à être un développeur utilisant Facebook est qu'il peut y trouver de bonnes idées pour rendre un site plus interactif. Facebook est composé de nombreuses fonctionnalités avancées AJAX et JavaScript : Chargement de photos par des flèches droites et gauches, des menus déroulants, fenêtres d'alertes et des curseurs de réglage. Un tel curseur permet à l'utilisateur de faire glisser un bouton sur un segment pour paramètrer une valeur en lieu et place d'un ennuyeux et fastidieux champ texte. [David Walsh a] créé un très simple système composé de trois curseurs qui permettent à l'utilisateur de modifier la hauteur, la largeur et la transparence d'une image. Voici ce que cela donne.

Capture d'écran présentant le résultat final : une image précédée de trois curseurs de réglages

Le rendu final est une image précédée de trois curseurs de réglage

Première étape : Le script CSS

  1. #opacity-area, #width-area, #height-area {
  2. background:url(horizontal.jpg) 0 8px no-repeat;
  3. height:23px;
  4. width:500px;
  5. margin:0 0 5px 0;
  6. }
  7. #opacity-slider, #width-slider, #height-slider {
  8. background:url(button-horizontal.jpg) no-repeat;
  9. width:33px;
  10. height:23px;
  11. cursor:pointer;
  12. }
  13.  

Il y a très peu de code CSS impliqué. [David Walsh] a utilisé deux images comme arrière-plan pour les curseurs:

Le curseur à déplacer

L'image utilisée comme curseur

La barre sur laquelle le curseur glisse

L'image utilisée comme barre d'attache du curseur

Deuxième étape : Le code XHTML

  1. <img src="muse.jpg" id="muse" />
  2.  
  3. <div id="opacity-area">
  4. <div id="opacity-slider"></div>
  5. </div>
  6. <div>
  7. <strong>Opacit&eacute;:</strong> <span id="opacity-label"></span>%
  8. </div>
  9. <br /><br />
  10.  
  11. <div id="width-area">
  12. <div id="width-slider"></div>
  13. </div>
  14. <div>
  15. <strong>Largeur:</strong> <span id="width-label"></span> pixels
  16. </div>
  17. <br /><br />
  18.  
  19. <div id="height-area">
  20. <div id="height-slider"></div>
  21. </div>
  22. <div>
  23. <strong>Auteur:</strong> <span id="height-label"></span> pixels
  24. </div>
  25. <br /><br />
  26. <p><i>La muse, comme toujours, est Christina Ricci.</i></p>
  27.  

Une fois de plus, très peu de code XHTML est utilisé. Le code ne présente que des conteneurs [NDLT : sous forme de balise <div>] pour les différents éléments composant chaque curseur.

Troisème étape : Le code Javascript utilisant MooTools

  1. window.addEvent('domready', function () {
  2. /* opacity slider */
  3. var mySlide = new Slider($('opacity-area'), $('opacity-slider'), {
  4. steps: 100,
  5. wheel: 1,
  6. onChange: function(step){
  7. $('opacity-label').setHTML(step);
  8. $('muse').set('opacity',step / 100);
  9. }
  10. }).set(100);
  11.  
  12. /* height slider */
  13. var mySlide = new Slider($('height-area'), $('height-slider'), {
  14. steps: 300,
  15. wheel: 1,
  16. onChange: function(step){
  17. $('height-label').setHTML(step);
  18. $('muse').set('height',step);
  19. }
  20. }).set(300);
  21.  
  22. /* width slider */
  23. var mySlide = new Slider($('width-area'), $('width-slider'), {
  24. steps: 300,
  25. wheel: 1,
  26. onChange: function(step){
  27. $('width-label').setHTML(step);
  28. $('muse').set('width',step);
  29. }
  30. }).set(300);
  31. });
  32.  

Ce code est très répétitif, ce qui, du coup, le rend très simple à comprendre. [David Walsh] a créé une nouvelle instance de la classe Slider pour chaque curseur qu'il voulait sur la page, et fournit [NDLT : comme paramètre au constructeur] les éléments "area" et "slider". Il a également fournit à la classe les valeurs bornes (valeur maximale - valeur minimale valant 0 par défaut), une valeur "roulette" qui permet de déplacer le curseur en utilisant la molette de la souris, et une fonction "onchange" qui modifie les valeurs de la feuille de style et ajuste la largeur, la hauteur ou l'opacité de l'image. Enfin, il utilise la fonction "set()" pour définir la valeur par défaut du curseur.

EXEMPLE : Amusez-vous.

Opacité: 100%


Largeur: 300 pixels


Hauteur: 300 pixels


La muse, comme toujours, est Christina Ricci.

That's All Folks !

Ces curseurs peuvent être utilisés de bien des façons et [David Walsh] a choisi un tel exemple pour le rendre facilement utilisable [et pédagogique]. [David Walsh] propose, par exemple, d'utiliser les paramètres de chaque curseur afin de générer une nouvelle image à télécharger. Cependant c'est à vous de choisir comment utiliser de tels curseurs de réglages

Ecrit et posté par David Waldh Mercredi 16 avril 2008

Copyright © Alexandre TRANCHANT. Aucune reproduction, même partielle, ne peut être faite de ce site et de l'ensemble de son contenu : textes, documents, images, etc. sans l'autorisation expresse de l'auteur. Sinon vous encourez selon la loi jusqu'à trois ans de prison et jusqu'à 300 000 € de dommages et intérêts. Cette page est déposée.

 
 
 
 
Partenaires

Hébergement Web