Quindi, per quanto posso vedere, il bootstrap di Twitter non espone quale direzione il carosello si sta muovendo tramite l'oggetto evento. Tuttavia, aggiunge una classe "giusta" o "sinistra" agli elementi coinvolti nella diapositiva.
Quindi fondamentalmente vedo 2 opzioni. Esporre la direzione nell'oggetto evento o cercare la classe destra o sinistra sugli elementi.
Opzione 1:
Si dovrà modificare il codice di bootstrap giostra. Nella giostra, scorrere cambiamento di funzione:
e = $.Event('slide')
a
e = $.Event('slide', {direction: direction})
(intorno alla linea 337-340 nella versione normale di bootstrap.js)
e allora si può ottenere con la direzione qualcosa di simile:
var $carousel = $('.carousel');
$carousel.carousel();
$carousel.bind('slide', function(e) {
console.log("e.direction = " + e.direction);
});
O Option2:
Attendere un po 'di tempo per la classe css "left" o "right" da aggiungere all'elemento e quindi verificare se tale classe è presente.
var $carousel = $('.carousel');
$carousel.carousel();
$carousel.bind('slide', function(e) {
setTimeout(function(){
var left = $carousel.find('.item.active.left');
var right = $carousel.find('.item.active.right');
if(left.length > 0) {
console.log('left');
}
else if(right.length > 0) {
console.log('right');
}
}, 500);
});
necessario il timeout perché c'è una condizione di competizione tra quando l'evento viene attivato e quando sono impostati le classi destro e sinistro. Ovviamente questa è una soluzione hackyer, ma non è necessario modificare il codice di bootstrap. Ci sono probabilmente anche altre opzioni, ma ritengo che l'opzione 1 sia la migliore.
Edit: Nella versione più recente di bootstrap css (2.1.1) La variazione linea per l'opzione 1 sarebbe:
(linea 340) da:
, e = $.Event('slide', {
relatedTarget: $next[0]
})
a:
, e = $.Event('slide', {
relatedTarget: $next[0],
direction: direction
});
Grazie, l'opzione 1 funzionava a meraviglia! – William
Nel caso in cui qualcuno si imbattesse in questa vecchia domanda - questo non sembra essere più il caso. L'evento 'slide' ora contiene la direzione. –
Puoi aggiornare la tua risposta per favore per la versione di bootstrap 3.1.1? –