2013-07-27 197 views
0

我知道如何製作幻燈片,雖然我不知道如何使它連續運行而不是一次,但我還沒有製作幻燈片,所以無法顯示任何代碼,但是我知道,我將使用一個<ul>一個div裏面有overflow: hidden;然後使用上慄項目的絕對位置,使它們堆疊在彼此循環jquery幻燈片

我雖然使用jQuery的頂部時的項目變化的不透明度,然後如果不透明度爲0,那麼重做這樣的循環。如何將這項被編碼

我更希望不必依傍的插件,其他人也犯提前

+2

你可能想要使用現有的jQuery插件,或者至少看看它們是如何工作的。 – glautrou

+0

我不喜歡使用插件 – Ollie

+0

如果你看看插件,他們大多數是水平移動圖像。當你在最後的圖像上設置第一個圖像的位置。如果你不嘗試編寫代碼,那麼你不會難以幫助你,你也不會自己嘗試。 – glautrou

回答

0

謝謝你既然知道怎樣製作幻燈片,我就會放棄你爲循環部分代碼:

var images = new Array("image1.jpg", "image2.jpg", etc.) 
var index = 0; 

// Visually clearer method (my opinion) 
function changeImage() { 
    index++; 
    if (index == images.length) index = 0; // Avoid going out of range 

    $("#imageElement").attr("src", images[index]); 
} 

setInterval("changeImage()", 5000); 

// More concise method 
setInterval(function() { 
    index++; 
    if (index == images.length) index = 0; 
    $("#imageElement").attr("src", images[index]); 
}, 5000); 

如果你想要字幕,我會推薦一個數組「平行」的圖像源數組。

+0

嗯......必須有一個更簡單的方法來做到這一點,因爲我已經看到了它,但我似乎無法找到在哪裏 – Ollie

+0

這很簡單... – Trojan

+0

我知道如何創建幻燈片我只需要知道如何使圖像循環 – Ollie

0

我不確定你想用不透明度做什麼。 你是對Ollie.You必須去與你在你的question.Like描述的類似HTML的結構如下:

<div class="mask"> 
    <ul class="images"> 
    <li style="display: none;"> 
     <img border="0" usemap="#Map" src="images/image.png"> 
    </li> 
    <li style="display: none;"> 
     <img src="images/image1.png"> 
    </li> 
    </ul> 
</div> 
<div class="pagination"> 
    <ul class="triggers"> 
    <li class="">1</li> 
    <li class="">2</li> 
    </ul> 
</div> 

CSS的上述結構是這樣的:

.mask { 
    float: left; 
    height: 156px; 
    margin-top: 10px; 
    overflow: hidden; 
    position: relative; 
    width: 822px; 
} 
ul.images { 
    left: 0; 
    position: relative; 
    top: 0; 
} 
ul.images li { 
    left: 0; 
    position: absolute; 
    top: 0; 
} 
ul.triggers { 
    left: 870px; 
    list-style: none outside none; 
    top: 250px; 
} 
ul.triggers li { 
    background-color: #000000; 
    color: #FFFFFF; 
    cursor: pointer; 
    float: left; 
    font: bold 10px arial; 
    margin: 0 3px; 
    padding: 2px; 
} 
ul.triggers li.selected { 
    background-color: #FFFFFF; 
    color: #000000; 
} 

一些腳本這使得這項工作作爲幻燈片放映會是這樣:

$(document).ready(function(){ 
var triggers = $('ul.triggers li'); 
var images = $('ul.images li'); 
var lastElem = triggers.length-1; 
var target; 
triggers.first().addClass('selected'); 
images.hide().first().show(); 
function sliderResponse(target) { 
images.fadeOut(300).eq(target).fadeIn(300); 
triggers.removeClass('selected').eq(target).addClass('selected'); 
} 
triggers.click(function() { 
if (!$(this).hasClass('selected')) { 
target = $(this).index(); 
sliderResponse(target); 
resetTiming(); 
} 
}); 
function sliderTiming() { 
target = $('ul.triggers li.selected').index(); 
if (target === lastElem) { target = 0; } 
else { target = target+1; } 
sliderResponse(target); 
} 
var timingRun = setInterval(function() { sliderTiming(); },5000); 
function resetTiming() { 
clearInterval(timingRun); 
timingRun = setInterval(function() { sliderTiming(); },5000); 
} 
}); 

可以增加/改變5000爲其他值減少的時間間隔。