仿小米官網輪播圖(Banner)的實現
本篇是仿照小米官網所做的輪播圖,注意事項(圖片命名規則為 banner-img-0.jpg,banner-img-1.jpg 依此類推);
例項程式碼如下:
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Title</title> <style type="text/css"> #banner{ margin: 100px auto; position: relative; width: 813px; height: 320px; } #banner>img{ height: 100%; width: 100%; cursor: pointer; } #banner>div{ position: absolute; bottom: 20px; right: 20px; } #banner>div>span{ display: block; width: 10px; height: 10px; float: left; border: #333333 solid 2px; border-radius: 50%; background-color: #717987; margin-left: 10px; cursor: pointer; } #banner>div>span:first-child{ background-color: white; } </style> </head> <body> <div id="banner"> <img src="img/banner-img-0.jpg"/> <div> <span></span> <span></span> <span></span> <span></span> <span></span> </div> </div> <script type="text/javascript" src="js/jquery-1.12.3.js" ></script> <script type="text/javascript"> let $bannerImg = $("#banner").children("img"); let $bannerPoints = $("#banner>div"); let prePoint = 0;//記錄上一個被點選的小點 $bannerPoints.delegate("span", "click mouseenter", function () { clearInterval(bannerInterval);//每次點選時,先停止輪播 let $2 = $(this); if (prePoint !== $2.index()) { //防止滑鼠移入時 使用者點選了 重複兩次走相同的邏輯賦值 currentPoint = $2.index();//賦值-- 關聯到圖片的迴圈設定 $2.css("background-color", "white").parent().children(":eq(" + prePoint + ")").css("background-color", "#717987"); $bannerImg.attr("src", "img/banner-img-" + $2.index() + ".jpg"); prePoint = $2.index(); //記錄上一個點選的小點 } }); $bannerPoints.delegate("span", "mouseleave", function () { //滑鼠離開時 繼續輪播 startBannerInterval(); }); let bannerInterval; let currentPoint = 0; let pointSize = $bannerPoints.children().length - 1;//用來重置小點的判斷 function startBannerInterval() { let children = $bannerPoints.find("span"); bannerInterval = setInterval(function () { children.eq(prePoint).css("background-color", "#717987"); prePoint = currentPoint; //賦值-- 關聯到圖片的迴圈設定 if (currentPoint > pointSize) { currentPoint = 0; prePoint = 0; } children.eq(currentPoint).css("background-color", "white"); $bannerImg.attr("src", "img/banner-img-" + currentPoint + ".jpg"); currentPoint++; }, 2000); } startBannerInterval();//開始輪播 </script> </body> </html>
相關文章
- Banner實現輪播圖
- 仿照(小米官網首頁輪播圖)特效js程式碼特效JS
- Android UI 實現廣告 Banner 輪播效果AndroidUI
- Flutter 封裝一個 Banner 輪播圖Flutter封裝
- Flutter 如何封裝一個 Banner 輪播圖?Flutter封裝
- 自定義view————Banner輪播View
- ViewPage實現輪播圖View
- js實現輪播圖JS
- 網頁佈局------輪播圖效果實現網頁
- 原生js實現輪播圖JS
- 圖片輪播元件實現元件
- 直播軟體原始碼,Android---Banner輪播圖原始碼Android
- Axure之使用動態皮膚建立banner輪播圖
- vue元件之輪播圖的實現Vue元件
- 原生JS實現輪播圖的效果JS
- 左右無縫輪播圖的實現
- 這可能是全網最好用的Banner輪播庫
- 兩種方式實現輪播圖
- (轉)jquery實現圖片輪播jQuery
- app直播原始碼,Banner廣告圖片輪播控制元件APP原始碼控制元件
- vue元件之路之輪播圖的實現Vue元件
- [分享會]只用CSS實現輪播圖CSS
- 使用jQuery實現的平滑滾動輪播圖jQuery
- 基於 flex 的 order 實現 carousel 輪播圖Flex
- Vue封裝Swiper實現圖片輪播Vue封裝
- 用原生js實現圖片輪播器JS
- 高效圖片輪播,兩個ImageView實現View
- javascript實現的焦點圖輪播效果詳解JavaScript
- jQuery輪播圖之上下輪播jQuery
- Axure實現輪播效果
- jQuery實現輪播效果jQuery
- 直播app原始碼,HTML + jQuery 實現輪播圖APP原始碼HTMLjQuery
- 藉助 :has 實現3d輪播圖3D
- JQuery實現圖片輪播無縫滾動jQuery
- JS實現八種焦點輪播圖(下)JS
- 原生JS實現輪播圖--第二章動畫實現JS動畫
- 微信小程式------輪播圖------縱向輪播圖微信小程式
- Bootstrap教程(26)–輪播的實現boot