ホームページ  >  記事  >  ウェブフロントエンド  >  jqueryでカルーセル効果を実現する方法

jqueryでカルーセル効果を実現する方法

藏色散人
藏色散人オリジナル
2021-12-01 11:16:143817ブラウズ

jquery でカルーセル効果を実現する方法: 1. マウスをバインドし、jquery の hover() メソッドを通じてイベント処理を残す; 2. jquery の binding() メソッドを通じて前後のマウス クリック イベント処理をバインドするそれをひっくり返します。

jqueryでカルーセル効果を実現する方法

この記事の動作環境: Windows7 システム、jquery-2.1.4 バージョン、DELL G3 コンピューター

実現方法jquery を使用したカルーセル効果 ?

画像カルーセル効果を実現するための Jquery コード

この記事はよく書かれていません。専門家からのアドバイスをお願いします。これ以上ナンセンスではありません。最初にレンダリングを見てください:

最初は初期化部分です。最初のカルーセル画像を除くすべての画像を非表示にし、最初のインデックス ボタンが表示されるように、「進む」ボタンと「戻る」ボタンを非表示にします。がアクティブ化されます。

イベント部分: マウスをバインドし、jquery の hover() メソッドを介してイベント処理を終了します。jquery の binding() メソッドは、前方、後方反転、およびカルーセル コントロールのマウス クリック イベント処理をバインドします: pre()、next ()、play()、start() は自動回転を開始し、stop() は自動回転を停止します。

次の記事は、さまざまな効果、便利な構成、拡張性をカスタマイズできる純粋な jquery カルーセル プラグインです。

次はコード全体です:

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>

この時点で、単純な jquery カルーセル効果が完成しました。もちろん、改善が必要な領域はまだたくさんあります。

推奨学習: 「jquery ビデオ チュートリアル

以上がjqueryでカルーセル効果を実現する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。