anch'io ho scoperto che jCarousel ritorna .first inutilizzabile,. last, .prevFirst e .prevLast properties nel momento in cui ne hai bisogno.
Quindi, ho dovuto farlo in modo sporco e ho deciso di scrivere una funzione che restituisce l'ID di qualsiasi tag LI al momento è il primo nel contenitore, leggendo se l'offset a sinistra è o meno sopra lo zero. Se è così, ed è il primo con una posizione di sinistra sopra lo zero, è la mia diapositiva corrente.
Il seguente codice presuppone che sia stato inserito un id = "listitem-N" nei tag elenco nel ciclo foreach(), dove N è l'iterazione corrente.
var currSlide = 0;
function getCurrentCarouselItem(){
$("ul#use-cases li.use-case").each(function(){
var leftPos = $(this).offset().left;
if(leftPos >= 0){
var id = $(this).attr('id').split("-");
currSlide = id[1];
return false;
}
});
return currSlide;
}
Il motivo non torno l'id in ciascun() perché ogni() è una funzione e il ritorno restituirà solo per tale funzione, non getCurrentCarouselItem().
Ho pensato che all'inizio, ma prima e l'ultima non funzionano quando più di un'immagine è visibile come la prima immagine visibile e l'ultima immagine visibile non è sempre l'immagine corrente ... – Steerpike
Scusa non sono comprendendo pienamente quello che stai dicendo? Usando l'esempio semplice di jcarousel, che usa tre immagini e scorre orizzontalmente, carousel.first restituirà l'elemento più a sinistra e carousel.last restituirà l'elemento più a destra. Ad ogni pressione delle frecce sinistra e destra per eseguire le operazioni successive e precedenti, l'evento itemLoadCallback viene attivato passando i dati del carosello consentendo di controllare il primo e l'ultimo elemento. E quale pensi di essere quello corrente che puoi visualizzare, se consideri il mezzo come corrente, usa questi per determinare l'indice medio. – HenryRat
Grazie ... questo ha aiutato molto. –