jQuery實現輪播圖效果
阿新 • • 發佈:2018-10-14
代碼實現 idt 代碼 out 顯示 move posit 技術 輪播圖
任務實現:用jQuery實現輪播圖。
來自瓶子啊之小白,歡迎來訪,歡迎指導。
相信大家從事前端的開發者初級就是輪播圖,首先我用jquery寫了一個,第二篇我會用原生JavaScript給大家展示。其原理是一樣的,只不過jquery封住好了一些屬性和方法。獲取節點和實現效果就比較方便快捷了。
下面是展示代碼和介紹:
html部分代碼:
<div class="slideshow"> <div class="btn"> <span class="last-img"><</span><span class="next-img">></span> </div> <div class="ra-show"> <i class="active">1</i> <i>2</i> <i>3</i> <i>4</i> <i>5</i> </div> <ul> <li style="display: block;"><a href="#"><img src="img/wangou1.jpg" /></a> </li> <li> <a href="#"><img src="img/wangou2.jpg" /></a> </li> <li> <a href="#"><img src="img/wangou3.jpg" /></a> </li> <li> <a href="#"><img src="img/wangou4.jpg" /></a> </li> <li> <a href="#"><img src="img/wangou5.jpg" /></a> </li> </ul> </div>
css部分代碼:
* { padding: 0; margin: 0; } .slideshow { height: 300px; width: 500px; margin: 0 auto; margin-top: 100px; overflow: hidden; position: relative; } .slideshow .btn { height: 50px; width: 100%; position: absolute; top: 45%; z-index: 2; } .slideshow .ra-show { height: 20px; width: ; position: absolute; bottom: 20px; left: 45%; z-index: 2; } .ra-show i { width: 18px; height: 18px; display: inline-block; border-radius: 50px; background: #efefef; font-size: 12px; line-height: 18px; text-align: center; cursor: pointer; } .slideshow .ra-show .active { background: #ff9000; box-shadow: 0 0 10px #FF9000; } .btn span { height: 50px; width: 50px; background-color: rgba(0, 0, 0, 0.2); line-height: 50px; text-align: center; border-radius: 50%; cursor: pointer; font-size: 20px; color: #ffffff; } .btn span:hover { background-color: rgba(0, 0, 0, 0.5); } .btn .last-img { float: left; } .btn .next-img { float: right; } .slideshow ul { position: relative; } .slideshow ul li { height: 300px; width: 500px; list-style: none; position: absolute; display: none; } .slideshow ul li:hover { cursor: pointer; } .slideshow ul li img { height: 300px; width: 500px; }css代碼實現
js部分代碼:
1 //引入jQuery文件 2 <script src="js/jquery-3.3.1.js" type="text/javascript" charset="utf-8"></script> 3 <script type="text/javascript"> 4 //聲明一個變量,下面的時候通過算術方法改變變量的值 5 var current = 0; 6 //初始化數據 7 var timer = null; 8 var pre = null; 9 var nex = null; 10 $(document).ready(function() { 11 var li_v = $(‘.slideshow ul li‘); 12 var i_v = $(‘.ra-show i‘); 13 //設置自動播放 14 function mover() { 15 //首先清除當前current以外的li_v的樣式顯示和偽圓標i_v的效果, 以下的同上 16 li_v.hide(); 17 // i_v.eq(current).removeClass("active"); 18 i_v.removeClass("active"); 19 current = (current + 1) % (li_v.length); 20 console.log(current); 21 //當鼠標放在偽圓標時候獲取當前的索引值,並把它賦給current從而實現了移出鼠標的時候跳轉到下一個圖片輪播 22 i_v.mouseover(function() { 23 current = $(this).index(); 24 // console.log($(this).index()); 25 }); 26 //當鼠標放在偽圓標時候獲取當前的索引值,並把它賦給current從而實現下一個圖片輪播 27 li_v.eq(current).fadeIn(1000); 28 i_v.eq(current).addClass("active"); 29 }; 30 //設置自動輪播 31 timer = setInterval(mover, 2000); 32 //鼠標劃入的時候停止輪播 33 li_v.mouseover(function() { 34 clearInterval(timer); 35 }); 36 //鼠標移出的時候繼續輪播 37 li_v.mouseout(function() { 38 timer = setInterval(mover, 2000); 39 }); 40 //實現左右按鈕事件 41 //點擊左按鈕事件 42 $(".last-img").click(function() { 43 // 首先清除定時器 44 clearInterval(timer); 45 clearInterval(pre); 46 //實現點擊按鈕顯示上一個圖片代碼 47 function last_v() { 48 li_v.hide(); 49 i_v.removeClass("active"); 50 current = (current - 1 + li_v.length) % (li_v.length); 51 //console.log(current); 52 li_v.eq(current).fadeIn(1000); 53 i_v.eq(current).addClass("active"); 54 }; 55 pre = setTimeout(last_v, 10); 56 timer = setInterval(mover, 2000); 57 }); 58 //點擊右按鈕事件 59 //只需繼續輪播就可以 60 $(".next-img").click(function() { 61 // 首先清除定時器 62 clearInterval(timer); 63 clearInterval(nex); 64 //console.log(current); 65 //調用自動輪播的代碼和點擊上一張圖片代碼的setTimeout 66 nex = setTimeout(mover, 10); 67 timer = setInterval(mover, 2000); 68 }); 69 //添加偽類下標圓標動事件 70 //鼠標碰到偽圓標的時候顯示所對應的圖片並且停止頁面。 71 i_v.mouseover(function() { 72 clearInterval(timer); 73 i_v.removeClass("active"); 74 li_v.hide(); 75 li_v.eq($(this).index()).fadeIn(1000); 76 $(this).addClass("active"); 77 //console.log($(this).index()); 78 }); 79 }); 80 </script>
完成實現,歡迎來訪!!!
jQuery實現輪播圖效果