NetPlusMédia

Bannière défilante en javascript avec JQuery

Retour

Ce programme fonctionne avec la librairie Jquery et la fonction Jquery Timers

banniere-defilante.html

  1. <!DOCTYPE html PUBLIC '-//W3C//DTD XHTML 1.0 Transitional//EN'
  2. 'http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd'>
  3. <html xmlns='http://www.w3.org/1999/xhtml' xml:lang='fr' lang='fr'>
  4. <title>Banni&egrave;re d&eacute;filante en javascript avec JQuery</title>
  5. <meta http-equiv='content-type' content='text/html; charset=iso-8859-1'/>
  6.  
  7.  
  8. <!-- Style CSS -->
  9. <link rel='stylesheet' type='text/css' href='banniere-defilante.css' />
  10.  
  11.  
  12.  
  13. </head>
  14.  
  15.  
  16. <div class='banniere'>
  17. <img src='http://lorempixel.com/700/350/nature/1' title='Image 1' alt='Image 1' />
  18. <img src='http://lorempixel.com/700/350/nature/2' title='Image 2' alt='Image 2' />
  19. <img src='http://lorempixel.com/700/350/nature/3' title='Image 3' alt='Image 3' />
  20. <img src='http://lorempixel.com/700/350/nature/4' title='Image 4' alt='Image 4' />
  21. </div>
  22.  
  23.  
  24. <!-- Javascript -->
  25. <script language='Javascript' type='text/javascript'
  26. src='http://ajax.googleapis.com/ajax/libs/jquery/1.8.3/jquery.min.js'></script>
  27. <script language='Javascript' type='text/javascript'
  28. src='timer.js'></script>
  29. <script language='Javascript' type='text/javascript'
  30. src='banniere-defilante.js'></script>
  31.  
  32. </body>
  33. </html>

banniere-defilante.css

  1. .banniere{
  2. position: relative;
  3. /*
  4.   Le calcule du pourcentage du padding-bottom est :
  5.   Hauteur de l'image / Largeur de l'image * 100
  6.   Pour cet exemple, nous utilisons des images 700x350px donc :
  7.   700 / 350 * 100 = 50
  8.   */
  9. padding-bottom:50%;
  10. /* page de hauteur car la hauteur sera créée avec le padding */
  11. height:0;
  12. overflow: hidden;
  13. }
  14.  
  15. .banniere_suivant , .banniere_precedent{
  16. position: absolute;
  17. background:#fff;
  18. top:40%;
  19. padding:10px;
  20. height:60px;
  21. width:60px;
  22. font-size:30px;
  23. font-weight:bold;
  24. color:#000;
  25. line-height:1.8em;
  26. z-index:2;
  27. -webkit-border-radius:60px;
  28. -khtml-border-radius:60px;
  29. -moz-border-radius:60px;
  30. -ms-border-radius:60px;
  31. -o-border-radius:60px;
  32. border-radius:60px;
  33. cursor:pointer;
  34. display:none;
  35. -webkit-opacity:0.4;
  36. -khtml-opacity:0.4;
  37. -moz-opacity:0.4;
  38. -ms-opacity:0.4;
  39. -o-opacity:0.4;
  40. opacity:0.4;
  41. filter:alpha(opacity=40);
  42. }
  43.  
  44. .banniere_suivant{
  45. right:-40px;
  46. text-align:left;
  47. -webkit-box-shadow:-2px 0 5px #000;
  48. -khtml-box-shadow:-2px 0 5px #000;
  49. -moz-box-shadow:-2px 0 5px #000;
  50. -ms-box-shadow:-2px 0 5px #000;
  51. -o-box-shadow:-2px 0 5px #000;
  52. box-shadow:-2px 0 5px #000;
  53. }
  54.  
  55. .banniere_precedent{
  56. left:-40px;
  57. text-align:right;
  58. -webkit-box-shadow:2px 0 5px #000;
  59. -khtml-box-shadow:2px 0 5px #000;
  60. -moz-box-shadow:2px 0 5px #000;
  61. -ms-box-shadow:2px 0 5px #000;
  62. -o-box-shadow:2px 0 5px #000;
  63. box-shadow:2px 0 5px #000;
  64. }
  65.  
  66. .banniere:hover .banniere_suivant , .banniere:hover .banniere_precedent{
  67. -webkit-opacity:1;
  68. -khtml-opacity:1;
  69. -moz-opacity:1;
  70. -ms-opacity:1;
  71. -o-opacity:1;
  72. opacity:1;
  73. filter:alpha(opacity=100);
  74. -webkit-transition:opacity 0.3s ease;
  75. -khtml-transition:opacity 0.3s ease;
  76. -moz-transition:opacity 0.3s ease;
  77. -ms-transition:opacity 0.3s ease;
  78. -o-transition:opacity 0.3s ease;
  79. transition:opacity 0.3s ease;
  80. }
  81.  
  82. .banniere img{
  83. position: absolute;
  84. top: 0;
  85. left: 0;
  86. width: 100%;
  87. height: 100%;
  88. z-index:1;
  89. }

banniere-defilante.js

  1. (function($){
  2.  
  3. $('.banniere').each(function(){
  4.  
  5. var element = $(this);
  6. var nombre_enfant = $(this).children("img").length;
  7.  
  8. if(nombre_enfant>1){
  9.  
  10. var en_cours = 0;
  11. element.children("img").hide();
  12. element.children("img").eq(en_cours).show();
  13.  
  14. element.append("<div class='banniere_suivant'>&gt;</div><div class='banniere_precedent'>&lt;</div>");
  15. var suivant = $(".banniere_suivant");
  16. var precedent = $(".banniere_precedent");
  17. suivant.show();
  18.  
  19. element.everyTime(4000, "banniere" , function(i) {
  20.  
  21. element.children("img").eq(en_cours).fadeOut(500);
  22.  
  23. en_cours++;
  24. if(en_cours==nombre_enfant) en_cours = 0;
  25.  
  26. element.children("img").eq(en_cours).fadeIn(500);
  27.  
  28. });
  29.  
  30. suivant.click(function(){
  31.  
  32. element.stopTime("banniere");
  33. precedent.show();
  34.  
  35. element.children("img").eq(en_cours).fadeOut(500);
  36.  
  37. en_cours++;
  38. if((en_cours+1)==nombre_enfant) suivant.hide();
  39.  
  40. element.children("img").eq(en_cours).fadeIn(500);
  41.  
  42. });
  43.  
  44. precedent.click(function(){
  45.  
  46. element.stopTime("banniere");
  47. suivant.show();
  48.  
  49. element.children("img").eq(en_cours).fadeOut(500);
  50.  
  51. en_cours--;
  52. if(en_cours==0) precedent.hide();
  53.  
  54. element.children("img").eq(en_cours).fadeIn(500);
  55.  
  56. });
  57.  
  58. }
  59.  
  60. });
  61.  
  62. })(jQuery);

Démonstration

Bannière défilante en javascript avec JQuery
Image 1 Image 2 Image 3 Image 4
Plan du site - Contact - Google+ - FaceBook - Twitter