。在你的
function manageControls(position){}
一個邏輯上的錯誤。您使用的功能爲了兩個目的。
- 顯示/隱藏根據左/右控制上滑動你是
- 顯示/隱藏取決於是否滑塊是可見的或隱藏的左/右控制。
但它始終工作,如果它是第一個場景。我的建議是簡單地爲你的函數添加另一個參數。
function manageControls(position, flag){}
在「顯示」,「隱藏」和「檢查」用於示出兩種控制,隱藏對照和滑動號顯示與標誌寄值。然後根據情況重新編寫函數調用。
設置。控制在CSS中「無」 display屬性。並在js中進行以下更改。
$(document).ready(function() {
var out = 0;
var currentPosition = 0;
var slideWidth = 400;
var slides = $(".slide");
var slidesNumber = slides.length;
$("#button").click(function() {
if (out === 0) {
manageControls(currentPosition, 'show'); // Show controls on slide show
$("#center, #slideshow, .slide").animate({
width: "400px"
}, {
queue: false,
duration: 1900
});
$(".slide").delay(2000).animate({
opacity: "1"
}, 1500);
out = 1;
} else {
manageControls(currentPosition, 'hide'); // Hide controls on slide hide
$("#center, #slideshow, .slide").animate({
width: "0px"
}, {
queue: false,
duration: 2000
});
$(".slide").stop(true).animate({
opacity: "0"
}, 250);
out = 0;
}
});
//Slideshow
$("#slideshow").css("overflow", "hidden");
// No need for this line if .control set to hidden in css.
//manageControls(currentPosition);
$('.control').click(function() {
currentPosition = ($(this).attr('id') == 'right-control') ? currentPosition + 1 : currentPosition - 1;
manageControls(currentPosition, 'check'); // Show/hide controls on control click
$('#slides').animate({
'left': slideWidth * (-currentPosition)
}, 600);
});
function manageControls(position, flag) {
// Checks for control display
if (flag == 'check') {
if (position === 0) {
$('#left-control').hide();
} else {
$('#left-control').show();
}
if (position == slidesNumber - 1) {
$('#right-control').hide();
} else {
$('#right-control').show();
}
} else if (flag == 'show') {
$('.control').show();
} else if (flag == 'hide') {
$('.control').hide();
}
}
//End Slideshow
});
但是您需要檢查您的代碼。這可能是你是初學者,但你應該始終致力於優化你的代碼。你的代碼需要。
你的例子究竟是不是工作? –
右側控件在加載時可見,我需要它隱藏起來,並且只有在幻燈片放映時纔會淡入。 (你可以看到,在我張貼的jsFiddle鏈接。) – 2150814582
所以一切正常,只是我不知道如何隱藏該權利控制,直到按鈕被點擊和幻燈片div滑出。 – 2150814582