Heim  >  Artikel  >  Web-Frontend  >  jquery implementiert Karussell-Bildcode auf dem PC

jquery implementiert Karussell-Bildcode auf dem PC

小云云
小云云Original
2018-01-31 10:15:182871Durchsuche

Ich war in letzter Zeit nicht sehr mit anderen Projekten beschäftigt. Ich wurde beauftragt, eine neue Seite für das offizielle Website-Projekt des Unternehmens zu erstellen. Da jQuery bereits im Projekt verwendet wurde, verwenden wir einfach jQuery, um ein Karussellbild zu schreiben. In diesem Artikel erfahren Sie hauptsächlich, wie Sie mit jquery ein Beispiel für einen PC-seitigen Karusselleffekt schreiben. Interessierte Freunde können sich darauf beziehen.

Nehmen Sie nun den Karussellbildcode heraus, den Sie separat geschrieben haben, erstellen Sie eine kleine Demo und zeichnen Sie sie hier auf (das Bild des Karussellbilds in der Demo wurde zufällig online gefunden)

Erzielte Effekte:

1. Automatische Rotation (das Rotationsintervall wird im JS-Code angepasst)

2. Klicken Sie auf die linke und rechte Schaltfläche, um einen manuellen Rotationsschalter zu erreichen

3. Der kleine Punkt unten zeigt den aktiven Zustand entsprechend der Position des umgeschalteten Bildes an

4. Die Maus bewegt sich durch den Karussellbereich, stoppt das Karussell und verlässt den Karussellbereich, um zu starten Das Karussell.

Die Ergebnisse des Codeverzeichnisses lauten wie folgt:

1. index.html

Hinweis: Nehmen Sie hier 5 Bilder als Beispiel. Das eigentliche Karussell auf der Seite zeigt dem Benutzer jedoch 5 verschiedene Bilder, um den Karusselleffekt zu gewährleisten. Das erste Bild wird nach dem ersten Bild hinzugefügt, sodass die Demostruktur 7 Bilder enthält und die Größe jedes Bildes gleich sein muss (Breite und Höhe betragen hier 720 * 350 Pixel).


<!DOCTYPE html>
<html lang="en">
<head>
 <meta charset="UTF-8">
 <title>PC-jquery版轮播图</title>
 <link rel="stylesheet" href="css/style.css" rel="external nofollow" >
</head>
<body>
<p class="layout">
 <h2 style="text-align: center;">PC-jquery版轮播图</h2>
 <p class="slide" id="slide">
  <p id="outer" class="outer">
   <ul id="inner" class="inner">
    <li><a href="http://www.baidu.com" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" ><p>图片-5</p><img src="images/slide-5.jpg"></a></li>
    <li><a href="http://www.baidu.com" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" ><p>图片-1</p><img src="images/slide-1.jpg"></a></li>
    <li><a href="http://www.baidu.com" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" ><p>图片-2</p><img src="images/slide-2.jpg"></a></li>
    <li><a href="http://www.baidu.com" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" ><p>图片-3</p><img src="images/slide-3.jpg"></a></li>
    <li><a href="http://www.baidu.com" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" ><p>图片-4</p><img src="images/slide-4.jpg"></a></li>
    <li><a href="http://www.baidu.com" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" ><p>图片-5</p><img src="images/slide-5.jpg"></a></li>
    <li><a href="http://www.baidu.com" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" ><p>图片-1</p><img src="images/slide-1.jpg"></a></li>
   </ul>       <!--底部小圆点-->
   <ol class="dot" id="dot">
    <li class="active"></li>
    <li></li>
    <li></li>
    <li></li>
    <li></li>
   </ol>
  </p>
     <!--左右两侧的点击切换按钮-->
  <p class="arrow-box">
   <p class="arrow arrow-l" id="arrow_l">‹</p>
   <p class="arrow arrow-r" id="arrow_r">›</p>
  </p>
 </p>
</p>
<script src="js/jquery.min.js"></script>
<script src="js/index.js"></script>
</body>
</html>

2. style.css


* {
 margin: 0;
 padding: 0;
 box-sizing: border-box;
}
.layout {
 width: 1000px;
 margin: 30px auto;
}
ul,ol,li {
 list-style: none;
}
.slide {
 position: relative;
 width: 900px;
 margin:auto;
}
.slide .outer {
 position: relative;
 margin: 30px auto;
 width: 720px;
 height: 400px;
 overflow: hidden;
}
.slide .outer .inner {
 width: 5040px;
 height: 350px;
 position: absolute;
 left: -720px;
 top: 0;
}
.slide .outer .inner li {
 float: left;
 height: 350px;
}
.slide .outer .inner li a {
 display: block;
 position: relative;
 width: 100%;
 height: 100%;
}
.slide .outer .inner li a p {
 position: absolute;
 left: 0;
 bottom: 0;
 color: #fff;
 font-size: 18px;
 width: 720px;
 height: 80px;
 line-height: 80px;
 padding-left: 50px;
 background: linear-gradient(180deg,rgba(0,0,0,0), rgba(0,0,0,0.5));
}
.slide .outer .dot {
 margin-top: 365px;
 text-align: center;
}
.slide .outer .dot li {
 height: 6px;
 width: 6px;
 border-radius: 3px;
 background-color: #d2cbcb;
 display: inline-block;
 margin: 0 3px;
}
.slide .outer .dot li.active {
 background-color: #6e5ca5;
}
.slide .arrow-box {
 position: absolute;
 width: 900px;
 height: 60px;
 top: 150px;
 left: 0;
}
.slide .arrow-box .arrow {
 width: 60px;
 height: 60px;
 line-height: 60px;
 text-align: center;
 border-radius: 30px;
 background-color: #dde2e6;
 font-size: 60px;
 color: #999;
 cursor: pointer;
}
.slide .arrow-box .arrow.arrow-l {
 float: left;
}
.slide .arrow-box .arrow.arrow-r {
 float: right;
}

3. index.js

Hinweis: Im js-Code wurde jede Variable kommentiert. Um zu verhindern, dass die Animation durch schnelle Mehrfachklicks stoppt, wird hier bei jedem Bildwechsel stop(false,true) aufgerufen. Bitte beachten Sie jedoch, dass Sie beim Scrollen nach links nach dem Scrollen zum letzten Bild beim erneuten Wechsel nicht stop(false,true) verwenden, sondern sofort das erste Bild (eigentlich das dritte Bild in der Dom-Struktur) suchen ), ähnlich ist es beim Scrollen nach rechts, nachdem zum ersten Bild gescrollt wurde, nicht erforderlich, beim erneuten Umschalten anzuhalten (falsch, wahr), sondern sofort das letzte Bild zu lokalisieren (eigentlich eine Domstruktur im vorletzten Bild). ).


var interval = 3000;    //轮播间隔时间
var arrowL = $(&#39;#arrow_l&#39;);   //左侧箭头
var arrowR = $(&#39;#arrow_r&#39;);   //右侧箭头

var slideBox = $(&#39;#slide&#39;);   //轮播图区域
var innerBox = $(&#39;#inner&#39;);   //内层大盒子
var img = innerBox.children(&#39;li&#39;); //每个图片
var dot = $(&#39;#dot&#39;);    //小圆点盒子

var imgW = $(img[0]).outerWidth(); //每个li标签的宽度

var imgCount = 5;     //总图片个数(不同图片的个数)(实际dom上是有7张)
var i = 0;       //初始化为第0张图片
timer = null;      //定时器

//自动轮播
timer = setInterval(function () {
 i++;
 innerBox.stop(false, true).animate({&#39;left&#39;:-i*imgW+&#39;px&#39;},300)
 dot.find(&#39;li&#39;).removeClass(&#39;active&#39;).eq(i-1).addClass(&#39;active&#39;)
 if(i > imgCount){
  innerBox.animate({&#39;left&#39;:-1*imgW+&#39;px&#39;},0);
  dot.find(&#39;li&#39;).removeClass(&#39;active&#39;).eq(0).addClass(&#39;active&#39;)
  i = 1;
 }
},interval)

//点击右侧箭头,播放下一张
arrowR.click(function () {
 i++;
 innerBox.stop(false, true).animate({&#39;left&#39;:-i*imgW+&#39;px&#39;},300)
 dot.find(&#39;li&#39;).removeClass(&#39;active&#39;).eq(i-1).addClass(&#39;active&#39;)
 if(i > imgCount){
  innerBox.animate({&#39;left&#39;:-1*imgW+&#39;px&#39;},0);
  dot.find(&#39;li&#39;).removeClass(&#39;active&#39;).eq(0).addClass(&#39;active&#39;)
  i = 1;
 }
})

//点击左侧箭头,播放上一张
arrowL.click(function () {
 i--;
 innerBox.stop(false, true).animate({&#39;left&#39;:-i*imgW+&#39;px&#39;},300)
 dot.find(&#39;li&#39;).removeClass(&#39;active&#39;).eq(i-1).addClass(&#39;active&#39;)
 if(i < 1){
  innerBox.animate({&#39;left&#39;:-imgCount*imgW+&#39;px&#39;},0);
  dot.find(&#39;li&#39;).removeClass(&#39;active&#39;).eq(imgCount-1).addClass(&#39;active&#39;)
  i = imgCount;
 }
})
//鼠标经过轮播图区域时,清除定时器,停止自动轮播
slideBox.mouseenter(function () {
 clearInterval(timer);
})

//鼠标离开轮播图区域时,重新启动自动轮播
slideBox.mouseleave(function () {
 timer = setInterval(function () {
  i++;
  innerBox.stop(false, true).animate({&#39;left&#39;:-i*imgW+&#39;px&#39;},300)
  dot.find(&#39;li&#39;).removeClass(&#39;active&#39;).eq(i-1).addClass(&#39;active&#39;)
  if(i > imgCount){
   innerBox.animate({&#39;left&#39;:-1*imgW+&#39;px&#39;},0);
   dot.find(&#39;li&#39;).removeClass(&#39;active&#39;).eq(0).addClass(&#39;active&#39;)
   i = 1;
  }
 },interval)
})

Verwandte Empfehlungen:

Zwei js-Möglichkeiten zur Implementierung von Karussellbildern

Erklärung des Gleitfokus-Karusselldiagramms in der praktischen Verwendung des gekapselten Bewegungsframeworks

Teilen des Karusselleffekts der JQuery-Version und Erweiterungsbeispiele


Das obige ist der detaillierte Inhalt vonjquery implementiert Karussell-Bildcode auf dem PC. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn