第一張顯示沒問題,第二張以及之后的圖片顯示為空白。
成都創(chuàng)新互聯(lián)公司是一家集網(wǎng)站建設(shè),麻江企業(yè)網(wǎng)站建設(shè),麻江品牌網(wǎng)站建設(shè),網(wǎng)站定制,麻江網(wǎng)站建設(shè)報價,網(wǎng)絡(luò)營銷,網(wǎng)絡(luò)優(yōu)化,麻江網(wǎng)站推廣為一體的創(chuàng)新建站企業(yè),幫助傳統(tǒng)企業(yè)提升企業(yè)形象加強企業(yè)競爭力??沙浞譂M足這一群體相比中小企業(yè)更為豐富、高端、多元的互聯(lián)網(wǎng)需求。同時我們時刻保持專業(yè)、時尚、前沿,時刻以成就客戶成長自我,堅持不斷學(xué)習(xí)、思考、沉淀、凈化自己,讓我們?yōu)楦嗟钠髽I(yè)打造出實用型網(wǎng)站。
首先,排除掉圖片路徑?jīng)]問題。(如果有問題,也不會網(wǎng)上提問了)
初步判斷,css靜態(tài)定位錯誤。
css樣式固定在了第一張圖片,第二,第三之后的css定位不到,則顯示空白。
即使在js中是動態(tài)定位的,但是請仔細檢查你的圖片ul的css的定位參數(shù)是否固定住了。
比如,設(shè)置了{left:0;}。
刪除掉css的錯誤靜態(tài)定位,只保留js中的動態(tài)定位可以解決第二張以及之后圖片空白問題。
建議,在當(dāng)前輪播圖的div添加類active,設(shè)置.active {display:block;},.ban{display:none;};這樣可以通過添加或移除active就可以了;這樣以下就比較方便很多,要不然又要做循環(huán),麻煩(swiper插件做輪播效果不錯)
$(".left").click(function(){
var $index = $(".ban").hasClass("active").index();//獲取當(dāng)前輪播圖的下標(biāo)
if($index === 0 ) {//當(dāng)前為第一張輪播圖
$(".ban").eq($(".ban").length-1).addClass("active)
.siblings(".ban").removeClass("active");
//這里寫成你自動切換的代碼,我這里只是一個無動態(tài)切換效果的方法
}else {
$(".ban").eq($index-1).addClass("active)
.siblings(".ban").removeClass("active");
})
$(".right").click(function(){
var $index = $(".ban").hasClass("active").index();//獲取當(dāng)前輪播圖的下標(biāo)
if($index === ($(".ban").length-1) ) {//當(dāng)前為最后一張輪播圖
$(".ban").eq($(".ban").length-1).addClass("active)
.siblings(".ban").removeClass("active");
//這里寫成你自動切換的代碼,我這里只是一個無動態(tài)切換效果的方法
}else {
$(".ban").eq($index+1).addClass("active)
.siblings(".ban").removeClass("active");
})
//大體思路是這樣了,代碼可能有個別字母寫得不對,畢竟是手敲的,但是大概思路是這樣了
*{??
margin:?0;??
padding:?0;??
}??
ul{??
list-style:none;??
}??
.slideShow{??
width:?620px;??
height:?700px;?????/*其實就是圖片的高度*/??
border:?1px?#eeeeee?solid;??
margin:?100px?auto;??
position:?relative;??
overflow:?hidden;????/*此處需要將溢出框架的圖片部分隱藏*/??
}??
.slideShow?ul{??
width:?2500px;??
position:?relative;?????/*此處需注意relative?:?對象不可層疊,但將依據(jù)left,right,top,bottom等屬性在正常文檔流中偏移位置,如果沒有這個屬性,圖片將不可左右移動*/??
}??
.slideShow?ul?li{??
float:?left;?????/*讓四張圖片左浮動,形成并排的橫著布局,方便點擊按鈕時的左移動*/??
width:?620px;??
}??
.slideShow?.showNav{?????/*用絕對定位給數(shù)字按鈕進行布局*/??
position:?absolute;??
right:?10px;??
bottom:?5px;??
text-align:center;??
font-size:?12px;??????
line-height:?20px;??
}??
.slideShow?.showNav?span{??
cursor:?pointer;??
display:?block;??
float:?left;??
width:?20px;??
height:?20px;??
background:?#ff5a28;??
margin-left:?2px;??
color:?#fff;??
}??
.slideShow?.showNav?.active{??
background:?#b63e1a;??
}??
js代碼規(guī)范:
script?src="../../../jQuery/js/jquery-2.1.4.js"/script?script?type="text/javascript"??
$(document).ready(function(){??????
var?slideShow=$(".slideShow"),????????????????????????????????????????????????????????????????????//獲取最外層框架的名稱?????
ul=slideShow.find("ul"),???????????????
showNumber=slideShow.find(".showNav?span"),??????????????????????????????????????????????//獲取按鈕??????????
oneWidth=slideShow.find("ul?li").eq(0).width();????????????????????????????????????????//獲取每個圖片的寬度??????????
var?timer=null;?????????????????????????????????????????????????????????????????????????????????????//定時器返回值,主要用于關(guān)閉定時器??????????
var?iNow=0;?????????????????????????????????????????????????????????????????????????????????????????//iNow為正在展示的圖片索引值,當(dāng)用戶打開網(wǎng)頁時首先顯示第一張圖,即索引值為0??????????????????
showNumber.on("click",function(){??????????????????????????????????????????????????????//為每個按鈕綁定一個點擊事件???????????????????
$(this).addClass("active").siblings().removeClass("active");??????????????????//按鈕點擊時為這個按鈕添加高亮狀態(tài),并且將其他按鈕高亮狀態(tài)去掉??????????????
var?index=$(this).index();????????????????????????????????????????????????????????????????//獲取哪個按鈕被點擊,也就是找到被點擊按鈕的索引值??????????????
iNow=index;??????????????
ul.animate({????"left":-oneWidth*iNow,???????????????????????????????//注意此處用到left屬性,所以ul的樣式里面需要設(shè)置position:?relative;?讓ul左移N個圖片大小的寬度,N根據(jù)被點擊的按鈕索引值iNOWx確定????????????
})????????
});?????????????????
function?autoplay(){??????
timer=setInterval(function(){??????????????????????????????????????????????//打開定時器?????????????
iNow++;?????????????????????????????????????????????????????????????????????????//讓圖片的索引值次序加1,這樣就可以實現(xiàn)順序輪播圖片?????????????
if(iNowshowNumber.length-1){??????????????????????????????????????//當(dāng)?shù)竭_最后一張圖的時候,讓iNow賦值為第一張圖的索引值,輪播效果跳轉(zhuǎn)到第一張圖重新開始??????????????????
iNow=0;?}??????????????
showNumber.eq(iNow).trigger("click");??????????????????????????????????//模擬觸發(fā)數(shù)字按鈕的click??????????
},2000);??????????????????????????????????????????????????????????????????????//2000為輪播的時間??
}?????
autoplay();?????
slideShow.hover(?function(){clearInterval(timer);},autoplay);?????另外注意setInterval的用法比較關(guān)鍵。??
})??
/script??
主體代碼:
[html]?view?plain?copy?print?
body??
div?class="slideShow"??
!--圖片布局開始--??
ul??
lia?href="#"img?src="images/view/111.jpg"http://a/li??
lia?href="#"img??src="images/view/112.jpg"?//a/li??
lia?href="#"img?src="images/view/113.jpg"?//a/li??
lia?href="#"img??src="images/view/114.jpg"?//a/li??
/ul??
!--圖片布局結(jié)束--??
!--按鈕布局開始--??
div?class="showNav"??
span?class="active"1/span??
span2/span??
span3/span??
span4/span??
/div??
!--按鈕布局結(jié)束--??
/div??
/body
輪播的原理是改變圖中ul的left值或者right值 以下代碼供你參考
HTML
CSS
JS代碼
注意此處沒有做臨界驗證? ?只是原理