我一直在努力構建一個jQuery自定義動畫和prev/next功能的循環。請參閱Old Question。我一直無法弄清楚如何用cycle()做到這一點。所以我建立了這個:JSFiddle。然而,正如所寫,每個函數(prevcycle和nextcycle)只能工作一次,因爲我沒有正確地增加/減少我的變量。我做錯了什麼?爲什麼我沒有正確遞增/遞減?
我對這一切都很陌生,因此所有建設性的批評都歡迎和讚賞。
這裏是我的腳本:
$(document).ready(function() {
var slideCount = $('div.slide').length,
centSlide = 0, // enter 1 to test prevcycle
prevSlide = centSlide - 1,
nextSlide = centSlide + 1;
// initialize
$('.slide:eq('+centSlide+')').addClass('liveslide');
if (prevSlide >= 0 && prevSlide < slideCount) {
$('.slide:eq('+prevSlide+')').addClass('prev');
};
if (nextSlide < slideCount) {
$('.slide:eq('+nextSlide+')').addClass('next');
};
// next cycle code
$('.slide:eq('+nextSlide+')').click(function() {
nextcycle(centSlide, slideCount);
});
// prev cycle code
$('.slide:eq('+prevSlide+')').click(function() {
prevcycle(centSlide, slideCount);
});
// construct functions
function nextcycle(x, y) {
centSlide = x + 1;
prevSlide = centSlide - 1;
nextSlide = centSlide + 1;
$('.slide:eq('+x+')').removeClass('prev');
$('.slide:eq('+centSlide+')').animate({
left: 0,
height: '90%',
top: 0
}, 1000).removeClass('next').addClass('liveslide');
if (prevSlide >= 0 && prevSlide < y) {
$('.slide:eq('+prevSlide+')').animate({
left: '-79%',
height: '80%',
top: '5%',
}, 1000).removeClass('liveslide').addClass('prev');
};
if (nextSlide < y) {
$('.slide:eq('+nextSlide+')').css('left','100%').animate({
left: '79%'
}, 1000).addClass('next')
};
};
function prevcycle(x, y) {
centSlide = x - 1;
prevSlide = centSlide - 1;
nextSlide = centSlide + 1;
n = x + 1;
$('.slide:eq('+n+')').removeClass('next');
$('.slide:eq('+centSlide+')').animate({
left: 0,
height: '90%',
top: 0
}, 1000).removeClass('prev').addClass('liveslide');
if (prevSlide >= 0 && prevSlide < y) {
$('.slide:eq('+prevSlide+')').css('left','-100%').animate({
left: '-79%'
}, 1000).addClass('prev');
};
if (nextSlide < y) {
$('.slide:eq('+nextSlide+')').animate({
left: '79%',
height: '80%',
top: '5%',
}, 1000).removeClass('liveslide').addClass('next');
};
};
}); // end ready
是所有代碼的有關你的問題嗎? –
看起來你只是將「點擊」處理程序添加到有限數量的元素中。 – Pointy
@詹姆希爾 - 老實說,我不確定。我相信我的問題是我如何遞增/遞減。但也許不是。@ Pointy - 我的意圖是點擊事件被分配到prevSlide和nextSlide位置上的幻燈片,每次點擊都會改變。 – user1905842