Maison  >  Article  >  interface Web  >  Comment obtenir un effet carrousel avec jquery

Comment obtenir un effet carrousel avec jquery

藏色散人
藏色散人original
2021-12-01 11:16:143812parcourir

Comment obtenir l'effet carrousel avec jquery : 1. Liez la souris vers le haut et quittez le traitement des événements via la méthode hover() de jquery ; 2. Liez le traitement des événements de clic de souris via la méthode bind() de jquery pour basculer en avant et en arrière.

Comment obtenir un effet carrousel avec jquery

L'environnement d'exploitation de cet article : système Windows7, version jquery-2.1.4, ordinateur DELL G3

Comment jquery réalise-t-il l'effet carrousel ?

Le code Jquery réalise l'effet carrousel d'images

Le l'article n'est pas bien écrit, merci de me donner quelques conseils d'experts, fini les bêtises, regardons d'abord les rendus :

Il y a d'abord la partie initialisation : masquer toutes les images sauf la première image du carrousel, et masquer la bouton avant et avant, rendant le premier bouton d'index actif.

Partie événement : lie la souris vers le haut et quitte le traitement des événements via la méthode hover() de jquery, la méthode bind() de jquery lie le traitement des événements du clic de la souris pour le retournement avant, arrière et le contrôle du carrousel : pre(), next(), play (), start() démarre le carrousel automatique et stop() arrête le carrousel automatique.

L'article suivant est un plug-in carrousel jquery pur, qui peut personnaliser divers effets, une configuration et une extensibilité pratiques.

Voici le code global :

index.html
[html] view plaincopy
<!DOCTYPE html> 
<html> 
<head> 
<meta charset="UTF-8"> 
<title>jquery轮播效果图 </title> 
<script type="text/javascript" src="scripts/jquery-1.9.1.js"></script> 
<style type="text/css"> 
 * { 
 padding: 0px; 
 margin: 0px; 
 } 
 a { 
 text-decoration: none; 
 } 
 ul { 
 list-style: outside none none; 
 } 
 .slider, .slider-panel img, .slider-extra { 
 width: 650px; 
 height: 413px; 
 } 
 .slider { 
 text-align: center; 
 margin: 30px auto; 
 position: relative; 
 } 
 .slider-panel, .slider-nav, .slider-pre, .slider-next { 
 position: absolute; 
 z-index: 8; 
 } 
 .slider-panel { 
 position: absolute; 
 } 
 .slider-panel img { 
 border: none; 
 } 
 .slider-extra { 
 position: relative; 
 } 
 .slider-nav { 
 margin-left: -51px; 
 position: absolute; 
 left: 50%; 
 bottom: 4px; 
 } 
 .slider-nav li { 
 background: #3e3e3e; 
 border-radius: 50%; 
 color: #fff; 
 cursor: pointer; 
 margin: 0 2px; 
 overflow: hidden; 
 text-align: center; 
 display: inline-block; 
 height: 18px; 
 line-height: 18px; 
 width: 18px; 
 } 
 .slider-nav .slider-item-selected { 
 background: blue; 
 } 
 .slider-page a{ 
 background: rgba(0, 0, 0, 0.2); 
 filter: progid:DXImageTransform.Microsoft.gradient(startColorstr=#33000000,endColorstr=#33000000); 
 color: #fff; 
 text-align: center; 
 display: block; 
 font-family: "simsun"; 
 font-size: 22px; 
 width: 28px; 
 height: 62px; 
 line-height: 62px; 
 margin-top: -31px; 
 position: absolute; 
 top: 50%; 
 } 
 .slider-page a:HOVER { 
 background: rgba(0, 0, 0, 0.4); 
 filter: progid:DXImageTransform.Microsoft.gradient(startColorstr=#66000000,endColorstr=#66000000); 
 } 
 .slider-next { 
 left: 100%; 
 margin-left: -28px; 
 } 
</style> 
<script type="text/javascript"> 
 $(document).ready(function() { 
 var length, 
  currentIndex = 0, 
  interval, 
  hasStarted = false, //是否已经开始轮播 
  t = 3000; //轮播时间间隔 
 length = $(&#39;.slider-panel&#39;).length; 
 //将除了第一张图片隐藏 
 $(&#39;.slider-panel:not(:first)&#39;).hide(); 
 //将第一个slider-item设为激活状态 
 $(&#39;.slider-item:first&#39;).addClass(&#39;slider-item-selected&#39;); 
 //隐藏向前、向后翻按钮 
 $(&#39;.slider-page&#39;).hide(); 
 //鼠标上悬时显示向前、向后翻按钮,停止滑动,鼠标离开时隐藏向前、向后翻按钮,开始滑动 
 $(&#39;.slider-panel, .slider-pre, .slider-next&#39;).hover(function() { 
  stop(); 
  $(&#39;.slider-page&#39;).show(); 
 }, function() { 
  $(&#39;.slider-page&#39;).hide(); 
  start(); 
 }); 
 $(&#39;.slider-item&#39;).hover(function(e) { 
  stop(); 
  var preIndex = $(".slider-item").filter(".slider-item-selected").index(); 
  currentIndex = $(this).index(); 
  play(preIndex, currentIndex); 
 }, function() { 
  start(); 
 }); 
 $(&#39;.slider-pre&#39;).unbind(&#39;click&#39;); 
 $(&#39;.slider-pre&#39;).bind(&#39;click&#39;, function() { 
  pre(); 
 }); 
 $(&#39;.slider-next&#39;).unbind(&#39;click&#39;); 
 $(&#39;.slider-next&#39;).bind(&#39;click&#39;, function() { 
  next(); 
 }); 
 /** 
  * 向前翻页 
  */ 
 function pre() { 
  var preIndex = currentIndex; 
  currentIndex = (--currentIndex + length) % length; 
  play(preIndex, currentIndex); 
 } 
 /** 
  * 向后翻页 
  */ 
 function next() { 
  var preIndex = currentIndex; 
  currentIndex = ++currentIndex % length; 
  play(preIndex, currentIndex); 
 } 
 /** 
  * 从preIndex页翻到currentIndex页 
  * preIndex 整数,翻页的起始页 
  * currentIndex 整数,翻到的那页 
  */ 
 function play(preIndex, currentIndex) { 
  $(&#39;.slider-panel&#39;).eq(preIndex).fadeOut(500) 
  .parent().children().eq(currentIndex).fadeIn(1000); 
  $(&#39;.slider-item&#39;).removeClass(&#39;slider-item-selected&#39;); 
  $(&#39;.slider-item&#39;).eq(currentIndex).addClass(&#39;slider-item-selected&#39;); 
 } 
 /** 
  * 开始轮播 
  */ 
 function start() { 
  if(!hasStarted) { 
  hasStarted = true; 
  interval = setInterval(next, t); 
  } 
 } 
 /** 
  * 停止轮播 
  */ 
 function stop() { 
  clearInterval(interval); 
  hasStarted = false; 
 } 
 //开始轮播 
 start(); 
 }); 
</script> 
</head> 
<body> 
 <div class="slider"> 
 <ul class="slider-main"> 
  <li class="slider-panel"> 
  <a href="https://www.jb51.net" target="_blank"><img alt="关注脚本之家" title="关注脚本之家" src="images/1.jpg"></a> 
  </li> 
  <li class="slider-panel"> 
  <a href="https://www.jb51.net" target="_blank"><img alt="关注脚本之家" title="关注脚本之家" src="images/2.jpg"></a> 
  </li> 
  <li class="slider-panel"> 
  <a href="https://www.jb51.net" target="_blank"><img alt="关注脚本之家" title="关注脚本之家" src="images/3.jpg"></a> 
  </li> 
  <li class="slider-panel"> 
  <a href="https://www.jb51.net" target="_blank"><img alt="关注脚本之家" title="关注脚本之家" src="images/4.jpg"></a> 
  </li> 
 </ul> 
 <div class="slider-extra"> 
  <ul class="slider-nav"> 
  <li class="slider-item">1</li> 
  <li class="slider-item">2</li> 
  <li class="slider-item">3</li> 
  <li class="slider-item">4</li> 
  </ul> 
  <div class="slider-page"> 
  <a class="slider-pre" href="javascript:;;"><</a> 
  <a class="slider-next" href="javascript:;;">></a> 
  </div> 
 </div> 
 </div> 
</body> 
</html>

À ce stade, un simple effet carrousel jquery est terminé. Bien sûr, il reste encore de nombreux domaines à améliorer.

Apprentissage recommandé : "Tutoriel vidéo jquery"

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn