我有一個滑塊,我想要自動滑動。使滑塊li項目被一個接一個點擊
setInterval(function() {
$('.navigation li').trigger('click');
}, 100);
此代碼使其移動,但點擊總是在第一個li項目上執行,所以第三個幻燈片從不顯示。我怎樣才能讓它點擊它們並自動重新開始,讓我們說「循環」?
檢查這個鏈接,看看如何滑塊與此代碼行爲...
我有一個滑塊,我想要自動滑動。使滑塊li項目被一個接一個點擊
setInterval(function() {
$('.navigation li').trigger('click');
}, 100);
此代碼使其移動,但點擊總是在第一個li項目上執行,所以第三個幻燈片從不顯示。我怎樣才能讓它點擊它們並自動重新開始,讓我們說「循環」?
檢查這個鏈接,看看如何滑塊與此代碼行爲...
通過使用選擇eq()
索引詭計達到li
S上的長度全部li
試試循環:
$(function(){
setTimeout(function(){
var slide_count = $('.navigation li').length;
var cpt=0;
setInterval(function()
{
if(cpt < slide_count)
{
$('.navigation li:eq('+cpt+')').click();
cpt++;
}else{
cpt=0;
}
}, 2000);
}, 1000);
});
Live Example(循環滑動,每2秒)。
希望這會有所幫助。
嗨,謝謝,沒有工作,我已經添加了一個鏈接到示例網站,以便您可以更好地瞭解我想實現的目標。 – GauchoCode
實際上您需要使用setTimeout()
而不是setInterval()
,因爲setInterval()
會在運行後設置另一個超時,這會在等待期間產生不一致。代碼在確定的確切時間段內執行。
下面的代碼會在確切的時間段內對每個li
發起一次點擊。這裏超時設置爲4秒,但您可以根據自己的需要進行設置。
<ul class="navigation">
<li>A</li>
<li>B</li>
<li>C</li>
</ul>
<script>
$().ready(function(){
var totalEle = $('.navigation li').length;
var currentElement = 0;
var transitionTime = 4000; // 4 sec
function Transition()
{
setTimeout(function() {
alert("Image " + $('.navigation li').eq(currentElement).text() + " was clicked");
currentElement < (totalEle - 1) ? currentElement++ : currentElement = 0;
Transition();
}, transitionTime);
}
Transition();
});
</script>
沒有工作,我已經添加了一個鏈接到示例站點,以便您可以更好地理解我想實現的目標。 – GauchoCode
請檢查下面的答案,評論,voteup有益的答案,並標出答案正確的,如果它真的是你想要的。 –
它沒有工作,我試了兩個...滑塊不會自動滑動,它確實滑動我的代碼,但只在1和2之間循環,而不是通過所有的李項。加入實時測試的實時鏈接,以便您可以看到滑塊的行爲。 – GauchoCode