⑴ Jquery圖片輪播循環問題,求大神指教,怎麼實現循環播放
js">//js
varisround="";
vari=0;
$(function(){
isround=setTimeout("change()",3000);
$("div[name=ban]divimg:eq(0)").show().siblings().hide();
$(".numli:eq(0)").addClass("current").siblings().removeClass("current");
$(".numli").click(function(){
i=$(".numli").index(this);
$(this).addClass("current").siblings().removeClass("current");
$("div[name=ban]divimg").eq($(".numli").index(this)).show().siblings().hide();
isround=setTimeout("change()",3000);
}).hover(function(){
clearTimeout(isround)
},function(){
isround=setTimeout("change()",3000);
})
})
functionchange(){
if(i==$(".numli").length)i=0;
$(".numli").eq(i).addClass("current").siblings().removeClass("current");
$("div[name=ban]divimg").eq(i).show().siblings().hide();
i++;
setTimeout("change()",3000);
}
//html
<divname="ban">
<div>
<!--圖片-->
<imgsrc="/resources/images/f1.jpg"width="369px"height="114px"/>
<imgsrc="/resources/images/f2.jpg"width="369px"height="114px"/>
<imgsrc="/resources/images/f1.jpg"width="369px"height="114px"/>
<imgsrc="/resources/images/f2.jpg"width="369px"height="114px"/>
<imgsrc="/resources/images/f1.jpg"width="369px"height="114px"/>
</div>
<divclass="numbox">
<!--選項-->
<ulclass="num">
<liclass="current"></li>
<li></li>
<li></li>
<li></li>
<li></li>
</ul>
</div>
</div>
不懂再問,這是我自己寫的一個輪換,裡麵包括了點擊事件,原理是控制圖片的顯示隱藏,
別的有控制高度等等之類的 。
⑵ jquery圖片輪播思路
首先糾正個錯誤,開始就隱藏img不要用js去做。js操作影響速度,第二是需要在js載入完了才會把圖片隱藏,這會導致沒載入完前你的圖片全部是顯示的。 用css來隱藏img,另外圖片寬高都寫在img里減小渲染框架時間。你們老師這樣寫例子 誤人子弟啊==!
思路就是
<style>
#focus{width:500px;height:200px;overflow:hidden;/*用一個div把圖片包含設置超出范圍隱藏*/}
</style>
<divid="focus">
<imgsrc="xx.jpg"width="500"height="200">
<imgsrc="xx.jpg"width="500"height="200">
<imgsrc="xx.jpg"width="500"height="200">
</focus>
.....引入jQuery
<script>
//將script寫在最底部避免js阻塞頁面載入
varindex=0;//當前顯示的第幾張圖,默認開始為0;
varmg=$("#focusimg");//將焦點圖儲存為一個變數方便調用節省下載調用查詢時間。
varlen=mg.length;//焦點圖圖片數量
functionplay(n){
mg.eq(n).fadeIn(200).siblings("img").fadeOt(200);
//eq表示第幾個標簽裡面的n就是代表的第幾個img標簽是從0開始數的。這里用siblings而不是先hide全部在fadein,siblings代表的是除開當前標簽以外的所有同級標簽。使用siblings來處理這樣的情況速度會比你老師寫的快很多倍。簡單來講siblings就是除開當前顯示的這個以外的所有統計圖片全部fadeOut
}
setInterval(function(){
showPics(index);
index++;
if(index==len){//當當前播放的索引值等於總圖片數就重置為0,重新開始循環
index=0;
}
},2000);//將function寫在setInterval里更簡潔。這樣寫默認開始2秒就開始播放,如果想開始2秒就播放第二張,那就得把最前面的index=1;因為初始顯示的就是第一張。所以2秒後應該顯示第二張而不是還是第一張
</script>
⑶ 用jquery實現圖片輪播怎麼寫呢求指教
*{
margin:0;
padding:0;
}
ul{
list-style:none;
}
.slideShow{
width:620px;
height:700px;/*其實就是圖片的高度*/
border:1px#eeeeeesolid;
margin:100pxauto;
position:relative;
overflow:hidden;/*此處需要將溢出框架的圖片部分隱藏*/
}
.slideShowul{
width:2500px;
position:relative;/*此處需注意relative:對象不可層疊,但將依據left,right,top,bottom等屬性在正常文檔流中偏移位置,如果沒有這個屬性,圖片將不可左右移動*/
}
.slideShowulli{
float:left;/*讓四張圖片左浮動,形成並排的橫著布局,方便點擊按鈕時的左移動*/
width:620px;
}
.slideShow.showNav{/*用絕對定位給數字按鈕進行布局*/
position:absolute;
right:10px;
bottom:5px;
text-align:center;
font-size:12px;
line-height:20px;
}
.slideShow.showNavspan{
cursor:pointer;
display:block;
float:left;
width:20px;
height:20px;
background:#ff5a28;
margin-left:2px;
color:#fff;
}
.slideShow.showNav.active{
background:#b63e1a;
}
js代碼規范:
<scriptsrc="../../../jQuery/js/jquery-2.1.4.js"></script><scripttype="text/javascript">
$(document).ready(function(){
varslideShow=$(".slideShow"),//獲取最外層框架的名稱
ul=slideShow.find("ul"),
showNumber=slideShow.find(".showNavspan"),//獲取按鈕
oneWidth=slideShow.find("ulli").eq(0).width();//獲取每個圖片的寬度
vartimer=null;//定時器返回值,主要用於關閉定時器
variNow=0;//iNow為正在展示的圖片索引值,當用戶打開網頁時首先顯示第一張圖,即索引值為0
showNumber.on("click",function(){//為每個按鈕綁定一個點擊事件
$(this).addClass("active").siblings().removeClass("active");//按鈕點擊時為這個按鈕添加高亮狀態,並且將其他按鈕高亮狀態去掉
varindex=$(this).index();//獲取哪個按鈕被點擊,也就是找到被點擊按鈕的索引值
iNow=index;
ul.animate({"left":-oneWidth*iNow,//注意此處用到left屬性,所以ul的樣式裡面需要設置position:relative;讓ul左移N個圖片大小的寬度,N根據被點擊的按鈕索引值iNOWx確定
})
});
functionautoplay(){
timer=setInterval(function(){//打開定時器
iNow++;//讓圖片的索引值次序加1,這樣就可以實現順序輪播圖片
if(iNow>showNumber.length-1){//當到達最後一張圖的時候,讓iNow賦值為第一張圖的索引值,輪播效果跳轉到第一張圖重新開始
iNow=0;}
showNumber.eq(iNow).trigger("click");//模擬觸發數字按鈕的click
},2000);//2000為輪播的時間
}
autoplay();
slideShow.hover(function(){clearInterval(timer);},autoplay);另外注意setInterval的用法比較關鍵。
})
</script>
主體代碼:
[html]viewplainprint?
<body>
<divclass="slideShow">
<!--圖片布局開始-->
<ul>
<li><ahref="#"><imgsrc="images/view/111.jpg"/></a></li>
<li><ahref="#"><imgsrc="images/view/112.jpg"/></a></li>
<li><ahref="#"><imgsrc="images/view/113.jpg"/></a></li>
<li><ahref="#"><imgsrc="images/view/114.jpg"/></a></li>
</ul>
<!--圖片布局結束-->
<!--按鈕布局開始-->
<divclass="showNav">
<spanclass="active">1</span>
<span>2</span>
<span>3</span>
<span>4</span>
</div>
<!--按鈕布局結束-->
</div>
</body>
⑷ 如何jQuery實現圖片輪播的同時左右按鈕可以實現切換
建議,在當前輪播圖的div添加類,設置.active {display:block;},.ban{display:none;};這樣可以通過添加或移除active就可以了;這樣以下就比較方便很多,要不然又要做循環,麻煩(swiper插件做輪播效果不錯)
$(".left").click(function(){
var $index = $(".ban").hasClass("active").index();//獲取當前輪播圖的下標
if($index === 0 ) {//當前為第一張輪播圖
$(".ban").eq($(".ban").length-1).addClass("active)
.siblings(".ban").removeClass("active");
//這里寫成你自動切換的代碼,我這里只是一個無動態切換效果的方法
}else {
$(".ban").eq($index-1).addClass("active)
.siblings(".ban").removeClass("active");
})
$(".right").click(function(){
var $index = $(".ban").hasClass("active").index();//獲取當前輪播圖的下標
if($index === ($(".ban").length-1) ) {//當前為最後一張輪播圖
$(".ban").eq($(".ban").length-1).addClass("active)
.siblings(".ban").removeClass("active");
//這里寫成你自動切換的代碼,我這里只是一個無動態切換效果的方法
}else {
$(".ban").eq($index+1).addClass("active)
.siblings(".ban").removeClass("active");
})
//大體思路是這樣了,代碼可能有個別字母寫得不對,畢竟是手敲的,但是大概思路是這樣了
⑸ jquery自動輪播圖代碼只能出現一張圖片第二三張就空白了 輪播正常播放
第一張顯示沒問題,第二張以及之後的圖片顯示為空白。
首先,排除掉圖片路徑沒問題。(如果有問題,也不會網上提問了)
初步判斷,css靜態定位錯誤。
css樣式固定在了第一張圖片,第二,第三之後的css定位不到,則顯示空白。
即使在js中是動態定位的,但是請仔細檢查你的圖片<ul>的css的定位參數是否固定住了。
比如,設置了{left:0;}。
刪除掉css的錯誤靜態定位,只保留js中的動態定位可以解決第二張以及之後圖片空白問題。
⑹ jquery裡面,或者HTML,HTML5,C#裡面如何實現下圖的圖片效果。滑動輪播類似的。 DW裡面添加代碼也行。
; (function ($) {
/* var i = 2;
$(document).ready(function () {
var arry = ['images/headback/001.jpg', 'images/headback/002.jpg', 'images/headback/003.jpg', 'images/headback/004.jpg', 'images/headback/005.jpg', 'images/headback/006.jpg', ]
setInterval(
function () {
$("#div_pic").css("backgroundImage", "url(" + arry[i] + ")");
i++;
if (i == 5) {
i = 0;
}
}
, 5000);
}); 定時換背景圖片的代碼 */
//下面是圖片切換代碼
/*
var t;
var speed = 2; //圖片切換速度
var nowlan = 0; //圖片開始時間
function changepic() {
var imglen = $("#div_pic").find("li").length;
$("#div_pic").find("li").hide();
$("#div_pic").find("li").eq(nowlan).show();
nowlan = nowlan + 1 == imglen ? 0 : nowlan + 1;
t = setTimeout("changepic()", speed * 1000);
}
onload = function () { changepic(); }
$(document).ready(function ()
//滑鼠在圖片上懸停讓切換暫停
$("#div_pic").hover(function () { clearInterval(t); });
//滑鼠離開圖片切換繼續
$("#div_pic").mouseleave(function () { changepic(); });
});
*/
//下面是圖片輪播代碼
/* var num = 0
$(function(){
$("#div_pic ol li").mouseover(function(e){
$(this).attr("class","current");
$(this).siblings().attr("class",""); //兄弟節點的class屬性設置為空
//alert($('ul').index())
num = $('ul').index() + 2
var index = $(this).index(); //記錄選定的li標簽在ul中的索引
//圖片會出現層疊現象為了顯示當前的圖片,把當前的圖片的z-index 值設置為大於其他的兄弟元素
$("#div_pic ul li").eq(index).css({"left":"650px","zIndex":num})
$("#div_pic ul li").eq(index).siblings().css("zIndex",num-1);
//動畫效果,圖片從右側飛入
$("#div_pic ul li").eq(index).animate({left:"0"},500)
});
}); */
//下面是可配置輪播動畫代碼
$.fn.slide=function(options){
var defaults= {
affect:1, //1:上下滾動; 2:幕布式; 3:左右滾動;4:淡入淡出
time: 5000, //間隔時間
speed:500, //動畫快慢
dot_text:true,//按鈕上有無序列號
};
var opts=$.extend(defaults,options);
var $this=$(this);
var ool=$("<div class='dot'><p></p></div>");
var $box=$this.find("ul");
var $li=$box.find("li");
var timer=null;
var num=0;
$this.append(ool);
$box.find("li").each(function(i){
ool.find("p").append($("<b></b>"));
if(opts.dot_text){
ool.find("b").eq(i).html(i+1)
}
})
ool.find("b").eq(0).addClass("cur");
switch(opts.affect){
case 1:
break;
case 2:
$box.find("li").css("display","none");
break;
case 3:
$box.css({"width":$li.eq(0).width()*$li.length});
$li.css("float","left");
break;
case 4:
$box.find("li").css("display","none");
break;
}
$box.find("li").eq(0).show(0);
ool.find("b").mouseover(function(){
num=$(this).index();
run ();
})
timer=setInterval(auto,opts.time);
function auto(){
num<$box.find("li").length-1?num++:num=0;
run();
}
function run(){
ool.find("b").eq(num).addClass("cur").siblings().removeClass("cur");
switch(opts.affect){
case 1:
$box.stop(true,false).animate({"top":-240*num},opts.speed);
break;
case 2:
$box.find("li").css({"position":"absolute"});
$box.find("li").stop(false,true).fadeOut(opts.speed).eq(num).slideDown(opts.speed);
break;
case 3:
$box.stop(true,false).animate({"left":-670*num},opts.speed);
break;
case 4:
$box.find("li").css({"position":"absolute"});
$box.find("li").stop(false,true).fadeOut(opts.speed).eq(num).fadeIn(opts.speed);
break;
}
}
$this.mouseover(function(){
clearInterval(timer);
})
$this.mouseout(function(){
timer=setInterval(auto,opts.time);
})
}
}(jQuery));