国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > JavaScript > 正文

jquery無縫圖片輪播組件封裝

2019-11-19 12:09:14
字體:
供稿:網(wǎng)友

圖片輪播在我們的前端開發(fā)中是非常常見的,下面是自己寫的一個圖片輪播組件,支持自動輪播,手動輪播,無縫銜接。

dom結(jié)構(gòu)

首先是dom結(jié)構(gòu),將所有內(nèi)容放入一個大盒子,應(yīng)用ul標(biāo)簽存放圖片列表,圓點(diǎn)定位圖片位置。

<div id="box">  <ul id="banners">   <li class="banners-img"><img src="img/DSC_1913.JPG" /></li>   <li class="banners-img"><img src="img/DSC_1913.JPG" /></li>   <li class="banners-img"><img src="img/DSC_1913.JPG" /></li>   <li class="banners-img"><img src="img/DSC_1913.JPG" /></li>     </ul>  <ul class="num">   <li class="on"></li>  </ul>   <div class="btns btn_l"><</div>   <div class="btns btn_r">></div></div>

下面是盒子樣式,這里使用百分比自適應(yīng),大盒子使用overflow: hidden;防止圖片溢出,將ul寬設(shè)置為圖片總寬度+1(這里+1后面會有用到)。

 #box{ width:100%; height:40.0em; overflow: hidden; position: absolute;} #box #banners{ width:500%; position: relative;} #box .banners-img{ float: left; width:20%; height:40.0em;} #box .banners-img img{ width:100%; height: 100%;} .num{ width:10%; height:2.0em; position: relative; top: 82%; left: 40%; -webkit-transform: rotate(-90deg); -ms-transform: rotate(-90deg); transform:rotate(-90deg);} .num li{ width:2.0em; height:100%; position: relative; border-radius: 50%; background-color: grey; } .num .on{ background-color: black;}  .btns{ width:1.0em; height:1.0em; background-color: rgba(0,0,0,0.5); position:relative; top:50%; color: white; font-size: 3.0em; text-align: center; line-height: 1.0em; cursor: pointer; display: none;} #box:hover .btns{ display: block;} .btn_l{ left: 0;} .btn_r{ right:0;}

組件使用jquery編寫

function addImg(item,arrSrc){ //添加圖片,這里需同時修改樣式,讀者可自行修改   for(let i = 0;i<item;i++){     item[i].attr('src',arrSrc[i]);            }          }        var srcs = ['img/DSC_1913.JPG','img/DSC_1914.JPG','img/DSC_1915.JPG','img/DSC_1916.JPG'];        addImg($('.banners-img img'),srcs);  var Clone = $("#banners li").first().clone(); //追加一張圖片,輪到最后一張時能夠自然過渡,這里初學(xué)者需慢慢體會 $("#banners").append(Clone); var Size = $("#banners li").size(); //alert(Size); for(var j=0;j<Size-2;j++){  $(".num").append("<li></li>");  }   //獲取圖片寬度 var imgWidth = parseInt($("#banners .banners-img").css("width")); //因?qū)挾葹榘俜直龋翱诖笮∽兓瘯r需重新獲取 window.onresize = function(){  var newWidth = $("#banners .banners-img").css("width");      imgWidth = parseInt(newWidth);  } //鼠標(biāo)移到按鈕時輪播 $(".num li").hover(function(){  var index = $(this).index();  i=index;  $("#box #banners").stop().animate({left:-i*imgWidth},500);  $("#box .num li").eq(i).addClass("on")  .siblings().removeClass("on");    })  //自動輪播  var t = setInterval(function(){   i++;   move();  },3000);  //鼠標(biāo)移入時停止自動輪播  $("#box").hover(function(){   clearInterval(t);  },function(){   t = setInterval(function(){   i++;   move();  },3000);  })    //手動輪播  $("#box .btn_l").click(function(){   i--;   move();  });    $("#box .btn_r").click(function(){   i++;   move();  });   //封裝一個運(yùn)動函數(shù)  // alert(imgWidth);  function move(){   if(i==Size){ //當(dāng)輪播到最后一張時過渡到第一張圖片   $("#box #banners").css({left:0});   i=1;   }   if(i==-1){   $("#box #banners").css({left:-(Size-1)*imgWidth});   i=Size-2;   }   $("#box #banners").stop().animate({left:-i*imgWidth},500);   if(i==Size-1){   $("#box .num li").eq(0).addClass("on")   .siblings().removeClass("on");   }else{   $("#box .num li").eq(i).addClass("on")   .siblings().removeClass("on");   }     }

以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持武林網(wǎng)。

發(fā)表評論 共有條評論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 昌吉市| 陕西省| 仪陇县| 拉孜县| 新民市| 望江县| 梅州市| 江华| 南部县| 满洲里市| 弥勒县| 宜都市| 仁布县| 崇信县| 芦溪县| 社旗县| 天全县| 通海县| 黎城县| 双鸭山市| 鄢陵县| 茌平县| 安福县| 来安县| 阿坝| 江油市| 赤壁市| 定西市| 万山特区| 宁陵县| 富宁县| 广德县| 喀喇沁旗| 大英县| 惠安县| 金昌市| 清涧县| 犍为县| 克什克腾旗| 定陶县| 辛集市|