Ho una serie di div fluttuanti all'infinito in una linea orizzontale. Ho un div larghezza fissa li contenitore, overflow: nascosto. In definitiva, mi piacerebbe premere i div/pulsanti a sinistra e a destra per scorrere tra gli elementi (vs utilizzando la barra di scorrimento).jQuery Scorrimento orizzontale (fare clic e animare)
Ho problemi a far funzionare .animate(). Voglio ogni clic per spostare gli oggetti all'interno della lista.
Dovrebbe funzionare come Amazons "Clienti che hanno acquistato questo articolo hanno anche acquistato" un elenco che è possibile scorrere nello stesso modo. Sono stato tentato di provare a usare .mousedown e farlo muovere tenendo premuto (simile allo scrolling vero) ma voglio prima questo approccio più semplice.
Ecco il violino e il codice:
HTML:
<div id="container">
<div id="arrowL">
</div>
<div id="arrowR">
</div>
<div id="list-container">
<div class='list'>
<div class='item'>
</div>
<div class='item'>
</div>
<div class='item'>
</div>
<div class="item">
</div>
</div>
</div>
CSS:
#container{
width:340px;
height:50px;
}
#list-container {
overflow:hidden;
width: 300px;
float:left;
}
.list{
background:grey;
min-width:700px;
float:left;
}
#arrowR{
background:yellow;
width:20px;
height:50px;
float:right;
cursor:pointer;
}
#arrowL{
background:yellow;
width:20px;
height:50px;
float:left;
cursor:pointer;
}
.item{
background:green;
width:140px;
height:40px;
margin:5px;
float:left;
}
jQuery
$(document).ready(function() {
$('div#arrowR').click(function(){
$('div.item').animate({'left':'-=300px'});
});
$('div#arrowR').click(function(){
$('div.item').animate({'left':'+=300px'});
});
});
Qualsiasi aiuto è apprezzato. Grazie!
Impressionante! E capisco cosa intendi per altri bug ... Presumo che ti riferisci al fatto che la mia lista ha un inizio e una fine. Tuttavia, ha bisogno di un ciclo per funzionare in modo efficace. Hmmm ... tempo di capirlo. Grazie ancora. – jstacks
O forse farò disattivare i pulsanti freccia quando non ci sono più contenuti ... probabilmente un'opzione migliore. – jstacks
@jstacks Felice di aiutare! Se non lo hai già capito, puoi tracciare la posizione dello scroll assegnando un indice iniziale di 0 e quindi calcolare un indice massimo in base al numero di elementi presenti nell'elenco. Se premi il min, disabilita il pulsante sinistro. Se raggiungi il massimo, disabilita il pulsante destro. Spero che abbia senso! Non è l'unico modo per farlo, ma è una soluzione. :) –