jQuery呼吸輪播圖制作原理詳解
本文實例為大家分享了jQuery呼吸輪播圖制作原理的具體過程,供大家參考,具體內(nèi)容如下
輪播圖:carousel
呼吸輪播圖變種布局重點(diǎn):所有的圖片摞一起。
jquery選擇元素的能力非常好,但是我們習(xí)慣將用到的元素,提前保存到變量。通常我們使用id選中元素。一般我們以$box。
左右按鈕防流氓的策略:當(dāng)圖片運(yùn)動時,不進(jìn)行任何操作。is()
小圓點(diǎn)的防流氓的策略:立即響應(yīng)新事件。stop(true)
注意:使用代碼時將圖片更換,以及需要引入jquery庫。
舉例:
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Document</title> <style type="text/css"> * { margin: 0; padding: 0; } ul, ol { list-style: none; } #carousel { position: relative; width: 900px; height: 540px; border: 1px solid #000; margin: 50px auto; } /*呼吸輪播圖布局關(guān)鍵是所有圖片落在一起*/ #carousel .imgs ul li { position: absolute; width: 100%; height: 100%; left: 0; top: 0; display: none; } #carousel .imgs ul li:first-child { display: block; } .btns a { position: absolute; width: 30px; height: 60px; top: 50%; margin-top: -30px; text-decoration: none; background-color: rgba(0, 0, 0, .5); line-height: 60px; text-align: center; font-size: 20px; color: #fff; } .btns a:first-child { left: 10px; } .btns a:last-child { right: 10px; } #carousel .circles { position: absolute; width: 200px; height: 20px; left: 50%; margin-left: -100px; bottom: 30px; } #carousel .circles ol { width: 210px; } #carousel .circles ol li { float: left; width: 20px; height: 20px; margin-right: 10px; background-color: blue; line-height: 20px; text-align: center; border-radius: 20px; } #carousel .circles ol li.cur { background-color: orange; } </style> </head> <body> <div id="carousel"> <div class="imgs" id="imgs"> <ul> <li><img src="images/aoyun/0.jpg" alt=""></li> <li><img src="images/aoyun/1.jpg" alt=""></li> <li><img src="images/aoyun/2.jpg" alt=""></li> <li><img src="images/aoyun/3.jpg" alt=""></li> <li><img src="images/aoyun/4.jpg" alt=""></li> <li><img src="images/aoyun/5.jpg" alt=""></li> <li><img src="images/aoyun/6.jpg" alt=""></li> </ul> </div> <div class="btns"> <a href="#" id="leftBtn"><</a> <a href="#" id="rightBtn">></a> </div> <div class="circles" id="circles"> <ol> <li class="cur">1</li> <li>2</li> <li>3</li> <li>4</li> <li>5</li> <li>6</li> <li>7</li> </ol> </div> </div> <script type="text/javascript" src="js/jquery-1.12.3.min.js"></script> <script type="text/javascript"> // 獲取元素 var $leftBtn = $("#leftBtn"); var $rightBtn = $("#rightBtn"); var $imgs = $("#imgs ul li"); var $circles = $("#circles ol li"); var $carousel = $("#carousel"); // 定義length var length = $imgs.length; // 定義信號量 var idx = 0; // 開啟定時器 var timer = setInterval(change, 2000); // 鼠標(biāo)移入停止定時器 $carousel.mouseenter(function() { // 清除定時器 clearInterval(timer); }) // 鼠標(biāo)離開從新開啟定時器 $carousel.mouseleave(function() { // 設(shè)表先關(guān) clearInterval(timer); // 重新賦值timer timer = setInterval(change, 2000); }) // 右按鈕事件 $rightBtn.click(change); function change() { // 防流氓 if ($imgs.is(":animated")) { return; } // 當(dāng)前圖片消失 $imgs.eq(idx).fadeOut(600); // 信號量改變 idx++; // 邊界判定 if (idx > length - 1) { idx = 0; } // 下一張圖片淡入 $imgs.eq(idx).fadeIn(600); // 當(dāng)前小圓點(diǎn)要加cur $circles.eq(idx).addClass("cur").siblings().removeClass("cur"); } // 左按鈕事件 $leftBtn.click(function() { // 防流氓 if (!$imgs.is(":animated")) { // 當(dāng)前圖片消失 $imgs.eq(idx).fadeOut(600); // 信號量改變 idx--; // 邊界判定 if (idx < 0) { idx = length - 1; } // 下一張圖片淡入 $imgs.eq(idx).fadeIn(600); // 當(dāng)前小圓點(diǎn)加cur $circles.eq(idx).addClass("cur").siblings().removeClass("cur"); } }) // 小圓點(diǎn)事件 $circles.mouseenter(function() { // 當(dāng)前圖片消失 $imgs.eq(idx).stop(true).fadeOut(600); // 改變信號量 idx = $(this).index(); // 下一張圖片出現(xiàn) $imgs.eq(idx).stop(true).fadeIn(600); // 當(dāng)前小圓點(diǎn)加cur $(this).addClass("cur").siblings().removeClass("cur"); }) </script> </body> </html>
以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
idTabs基于JQuery的根據(jù)URL參數(shù)選擇Tab插件
我們的項目用了SunSean的idTabs,但每個tab里的控件會觸發(fā)postback,或者轉(zhuǎn)到其他頁面再轉(zhuǎn)回來,這樣當(dāng)前選中的tab必丟。印度同事不肯用AJAX,無奈今天加班給印度人寫個demo,通過回傳URL參數(shù)來選擇tab2012-04-04jQuery實現(xiàn)圖片加載完成后改變圖片大小的方法
這篇文章主要介紹了jQuery實現(xiàn)圖片加載完成后改變圖片大小的方法,結(jié)合實例形式分析了jQuery圖片樣式與頁面元素屬性動態(tài)操作的相關(guān)技巧,需要的朋友可以參考下2016-03-03jQuery autoComplete插件兩種使用方式及動態(tài)改變參數(shù)值的方法詳解
這篇文章主要介紹了jQuery autoComplete插件兩種使用方式及動態(tài)改變參數(shù)值的方法,結(jié)合實例形式分析了jQuery自動匹配插件autoComplete的使用技巧與動態(tài)改變參數(shù)傳入值的實現(xiàn)方法,需要的朋友可以參考下2016-10-10jQuery實現(xiàn)的Tab滑動選項卡及圖片切換(多種效果)小結(jié)
這篇文章主要介紹了jQuery實現(xiàn)的Tab滑動選項卡及圖片切換效果小結(jié),實例總結(jié)了幾種常見的tab切換效果,包括鼠標(biāo)點(diǎn)擊切換、滑過切換、定時自動切換等,非常具有實用價值,需要的朋友可以參考下2015-09-09jquery如何實現(xiàn)點(diǎn)擊空白處隱藏元素
這篇文章主要介紹了jquery實現(xiàn)點(diǎn)擊空白處隱藏元素div等方法和實現(xiàn)代碼的講解,一起學(xué)習(xí)下。2017-12-12jQuery實現(xiàn)移動端圖片上傳預(yù)覽組件的方法分析
這篇文章主要介紹了jQuery實現(xiàn)移動端圖片上傳預(yù)覽組件的方法,結(jié)合實例形式分析了jQuery移動端圖片上傳預(yù)覽組件的實現(xiàn)原理、核心代碼與相關(guān)注意事項,需要的朋友可以參考下2020-05-05JQuery魔力之$("tagName")與selector
DOM 中的 getElementsByTagName()方法在JQuery中的表現(xiàn)就是$(“tagName”)這么簡單!tag標(biāo)簽(可以是:p、div、button …)標(biāo)簽本身具有ID、Class等屬性2012-03-03