基本上,我只是想爲教育目的做隨機jQuery的東西,這裏是我非常簡單的滑塊。我希望它可以自動工作,也可以使用控件(小箭頭滾動到下一個/上一個滑塊)。我現在唯一的問題是,當你按下箭頭時,每5秒自動切換一次滑動的功能仍然計算這5000毫秒,所以下一張幻燈片顯得更快,然後是所需的。我想要的是讓這些箭頭重置計時器,所以您按下箭頭 - >下一張幻燈片出現 - >僅在5秒後幻燈片再次切換。 對不起,馬虎的解釋,希望我說得夠清楚。jquery滑塊控件和自動滾動
這裏的的jsfiddle:http://jsfiddle.net/cA9aW/
這裏是代碼
HTML
<body>
<div id="wrapper">
<header>
<h1>Simplest Sliding Image Slider</h1>
</header>
<div id="content">
<div id="slider_container">
<div id="slider">
<div class="slides" id="slide1">
<img src="http://s2.postimg.org/5uxqi0mgl/cats1.jpg" alt="" />
</div>
<div class="slides" id="slide2">
<img src="http://s2.postimg.org/66f6us2wl/cats2.jpg" alt="" />
</div>
<div class="slides" id="slide3">
<img src="http://s2.postimg.org/ai3sjs9th/cats3.jpg" alt="" />
</div>
</div>
</div>
</div>
<footer></footer>
</div>
</body>
JS
jQuery(document).ready(function($) {
// start slider function
startSlider();
// set width and step variables and add active class to first slider
var slideWidth = $('.slides').width();
$('#slide1').addClass('slides active');
// actual function
function startSlider() {
looper = setInterval(function() {
// remove and add class active
$('.active').removeClass('active').next().addClass('active');
// animation expression
$('.active').animate({'left': '-=' + (slideWidth) + 'px'}, 500);
$('.active').siblings().animate({'left': '-=' + (slideWidth) + 'px'}, 500);
// return to first slide after the last one
if($('.active').length == 0) {
$('#slide1').addClass('active');
$('.slides').animate({'left': 0}, 500);
}
}, 5000); // interval
// adding controls
$('.slides').append("<div class='controls'><a class='control_left' href='#'></a><a class='control_right' href='#'></a></div>");
// remove unnecessary controlls on first and last slides
$('.slides:nth-child(1) a.control_left').remove();
$(".slides:nth-child(" + $('.slides').length + ") a.control_right").remove();
// add functionality to controls
$('.control_left').on('click', function() {
$('.active').removeClass('active').prev().addClass('active');
$('.active').animate({'left': '+=' + (slideWidth) + 'px'}, 500);
$('.active').siblings().animate({'left': '+=' + (slideWidth) + 'px'}, 500);
});
$('.control_right').on('click', function() {
$('.active').removeClass('active').next().addClass('active');
$('.active').animate({'left': '-=' + (slideWidth) + 'px'}, 500);
$('.active').siblings().animate({'left': '-=' + (slideWidth) + 'px'}, 500);
});
}
});
THX很多提前
要重置它在每個按鈕點擊startover再次對不對? – PSL
這不是正確的(也不是最簡單的)構建滑塊的方法,只是使用2個按鈕而不是將按鈕放到所有位置 –
我意識到這與完美無關,只是想先製作一個簡單的滑塊並解決所有問題我遇到的問題。現在我會嘗試擦亮它,讓它變得更好,然後嘗試一些更高級的東西。 –