中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

一款不用任何插件精美小巧的JQuery圖片輪播

發布時間:2020-07-10 22:41:57 來源:網絡 閱讀:1728 作者:axlnrose 欄目:web開發


現在好多帶插件的JQuery焦點圖片效果,一個網站那么多效果就要好多插件,這無疑給網站增加一定的負擔,現在介紹一款不用任何插件,代碼量很少且便于操作的圖片輪播效果,希望有所幫助

說下思路,比如有三張圖片需要輪播,首先把除了第一張以外的圖片隱藏掉,然后點擊圖片右下方相應的按鈕來切換圖片顯示,用JQuery的fadeIn和fadeOut效果就可以,最后設置延時自動加載方法setInterval()來實現圖片輪播到頭后自動開始新一輪輪播。

效果預覽:

一款不用任何插件精美小巧的JQuery圖片輪播

 

HTML部分代碼:

 

  1. <div id="banner"> 
  2.     <div id="banner_bg"></div> 
  3.     <div id="banner_info"></div> 
  4.     <ul> 
  5.     <li></li> 
  6.     <li></li> 
  7.     <li></li> 
  8.     </ul> 
  9.     <div id="banner_list"> 
  10.     <a href="#"><img src=" " alt="bing讀心機器人" title="bing讀心機器人" border="0" width="705" height="240"/></a> 
  11.     <a href="#"><img src=" " alt="手機輻射監測器" title="手機輻射監測器" border="0" width="705" height="240"/></a> 
  12.     <a href="#"><img src=" " alt="GIF快手" title="GIF快手" border="0" width="705" height="240"/></a> 
  13.     </div> 
  14. </div> 

#banner_bg是圖片下方半透明的title背景圖
#banner_info里面內容顯示圖片標題
<ul>部分是右下方三個切換圖片的小按鈕
#banner_list里面是要輪播的三張圖片

CSS樣式:

  1. #banner {position:relativewidth:705pxheight:240pxoverflow:hiddenfont-size:16pxmargin:5px auto;} 
  2. #banner_list img {border:0px;} 
  3. #banner_bg {width:705px;position:absolutecolor:#fff; bottom:0background:url(../v2_p_w_picpaths/toumingbar.png);height:38px;z-index:1000;cursor:pointerline-height:38pxfont-size:14px;} 
  4. #banner_info{position:absolute; bottom:0px; left:5px;height:38pxline-height:38pxcolor:#fff;z-index:1001;cursor:pointer
  5. #banner ul {position:absolute;list-style-type:none; ;z-index:1002;margin:0padding:0; bottom:8px; right:5px;} 
  6. #banner ul li {width:18pxheight:18px;float:left;display:block;cursor:pointermargin:0px autobackground:url(../v2_p_w_picpaths/scropoint.png) no-repeat;overflow:hiddencolor:#a3a1a2font-size:9pxline-height:18pxtext-align:center;} 
  7. #banner ul li.on {background:url(../v2_p_w_picpaths/scropoint_on.png) no-repeatcolor:#78e927;} 
  8. #banner_list a{position:absolute;

JS部分:

  1. <script type="text/javascript"> 
  2.     var n =0;  
  3.     var t;  
  4.     var count; //定義所需變量 
  5.     $(function(){  
  6.         $("li:first").addClass("on");  //給第一個按鈕加上選中樣式 
  7.         count=$("#banner_list a").length; //為了讓HTML上的代碼可自動循環就必須定義banner_list下所含圖片的長度           
  8.         $("#banner_list a:not(:first-child)").hide(); //讓除了不是第一張圖的隱藏掉 
  9.         $("#banner_info").html($("#banner_list a:first-child").find("img").attr('alt')); //把圖片的alt屬性的值添加到標題欄上去 
  10.         $("#banner_info").click(function(){window.open($("#banner_list a:first-child").attr('href'), "_blank")}); //點擊標題另開新窗口打開對應鏈接 
  11.         var bli = $("#banner li");  
  12.         bli.each(function(i){ //利用JQuery的遍歷實現點擊li的時候自動切換到下一張 
  13.             bli.eq(i).click(function(){  
  14.             n = i;  
  15.             $("#banner_info").html($("#banner_list a").eq(i).find("img").attr('alt')); 
  16.             $("#banner_list a").filter(":visible").fadeOut(1000).parent().children().eq(i).fadeIn(500); //篩選出所有可見元素,然后取當前點擊的fadeOut,其他的fadeIn 
  17.             $(this).addClass("on"); //給所點擊的li加上樣式 
  18.             $(this).siblings().removeAttr("class");  
  19.                 }); //移除同級li的樣式 
  20.             }); 
  21.             t = setInterval("showAuto()", 3000);  
  22.             $("#banner").hover(function(){clearInterval(t)}, function(){t = setInterval("showAuto()", 3000);});  
  23.     }) //設置自動執行時間為3s,利用setInterval自動無限延時加載,同時鼠標放上去后移除自動加載效果,鼠標移開后再繼續執行輪播方法。 
  24.   
  25.     function showAuto()  
  26.     {  
  27.         n = n >=count?0 : ++n; //如果n>=圖片總個數的話重新賦值為0,也就是從頭算起,達到自動切換到第一張的效果 
  28.         $("#banner li").eq(n).trigger('click'); 
  29.     } //在每一個匹配的li上綁定觸發click事件  
  30. </script> 

 

 現在發現這個圖片輪播在谷歌和FF瀏覽器下有bug,就是當切換到別的標簽頁的時候動畫停止執行了,等你再切換過來的時候會發現動畫瘋狂執行,可能是由于瀏覽器線程處理機制的問題,解決辦法是在動畫執行完畢之后加上JQuery的stop方法來停止被選元素所有加入隊列的動畫,這樣,就算從另外一個標簽頁切換回來,他會先停止執行動畫,然后再繼續執行。

具體代碼如下:

在showAuto()方法里加上:

 

 

  1.  function showAuto()  
  2.     {  
  3. $("#banner_list a").stop(true,true);
  4.         n = n >=count?0 : ++n; //如果n>=圖片總個數的話重新賦值為0,也就是從頭算起,達到自動切換到第一張的效果 
  5.         $("#banner li").eq(n).trigger('click'); 
  6.     } 

 

附上stop方法詳解:

 

定義和用法

stop() 方法停止當前正在運行的動畫。

語法

$(selector).stop(stopAll,goToEnd)
參數 描述
stopAll 可選。規定是否停止被選元素的所有加入隊列的動畫。
goToEnd

可選。規定是否允許完成當前的動畫。

該參數只能在設置了 stopAll 參數時使用。

 

 

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

淮南市| 望奎县| 泾阳县| 长子县| 定远县| 潮安县| 巴东县| 凤城市| 山丹县| 合山市| 永康市| 宁强县| 阜新市| 綦江县| 玛沁县| 丹东市| 松阳县| 龙山县| 泗洪县| 泾川县| 辽宁省| 莱州市| 太原市| 大厂| 赤壁市| 察隅县| 清原| 瑞丽市| 水城县| 聂拉木县| 大余县| 色达县| 清新县| 舟山市| 读书| 上杭县| 托克托县| 西昌市| 鄂尔多斯市| 岚皋县| 淮安市|