小編給大家分享一下jquery中怎么封裝無縫圖片輪播組件,希望大家閱讀完這篇文章之后都有所收獲,下面讓我們一起去探討吧!
為烏拉特中等地區(qū)用戶提供了全套網(wǎng)頁設(shè)計制作服務(wù),及烏拉特中網(wǎng)站建設(shè)行業(yè)解決方案。主營業(yè)務(wù)為成都做網(wǎng)站、網(wǎng)站制作、烏拉特中網(wǎng)站設(shè)計,以傳統(tǒng)方式定制建設(shè)網(wǎng)站,并提供域名空間備案等一條龍服務(wù),秉承以專業(yè)、用心的態(tài)度為用戶提供真誠的服務(wù)。我們深信只要達到每一位用戶的要求,就會得到認可,從而選擇與我們長期合作。這樣,我們也可以走得更遠!
dom結(jié)構(gòu)
首先是dom結(jié)構(gòu),將所有內(nèi)容放入一個大盒子,應(yīng)用ul標簽存放圖片列表,圓點定位圖片位置。
<>
下面是盒子樣式,這里使用百分比自適應(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- "); } //獲取圖片寬度 var imgWidth = parseInt($("#banners .banners-img").css("width")); //因?qū)挾葹榘俜直?,窗口大小變化時需重新獲取 window.onresize = function(){ var newWidth = $("#banners .banners-img").css("width"); imgWidth = parseInt(newWidth); } //鼠標移到按鈕時輪播 $(".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); //鼠標移入時停止自動輪播 $("#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(); }); //封裝一個運動函數(shù) // alert(imgWidth); function move(){ if(i==Size){ //當輪播到最后一張時過渡到第一張圖片 $("#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"); } }
看完了這篇文章,相信你對“jquery中怎么封裝無縫圖片輪播組件”有了一定的了解,如果想了解更多相關(guān)知識,歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道,感謝各位的閱讀!