Sto provando a creare uno slide/slideshow di immagini molto, molto semplice senza autoplay, per favore. Voglio solo andare all'immagine successiva o precedente al clic. Avere alcuni problemi come puoi leggere qui sotto.Cursore/slideshow di immagini molto semplice con pulsante sinistro e destro. Nessun autoplay
Ecco il jsFiddlehttp://jsfiddle.net/HsEne/12/ (ho appena usato i colori di sfondo, invece di immagini nella violino così come passato img a div, ma è lo stesso identico problema, naturalmente)
Il codice HTML:
<div id="slider-wrapper">
<div id="slider">
<img class="sp" src="/img1.jpg">
<img class="sp" src="/img2.jpg">
<img class="sp" src="/img3.jpg">
<img class="sp" src="/img4.jpg">
<img class="sp" src="/img5.jpg">
<img class="sp" src="/img6.jpg">
</div>
<img id="button-previous" src="/button-arrow-left.jpg">
<img id="button-next" src="/button-arrow-right.jpg">
</div>
Il CSS:
#slider-wrapper {
display: block;
max-width: 790px;
margin: 5% auto;
max-height: 500px;
height: 100%; }
#slider {
display: block;
position: relative;
z-index: 99999;
max-width: 710px;
width: 100%;
margin: 0 auto; }
#button-previous {
position: relative;
left: 0;
margin-top: 40%;
width: 40px;
height: 60px; }
#button-next {
position: relative;
margin-top: 40%;
float: right; }
.sp {
position: absolute; }
#slider .sp {
max-width: 710px;
width: 100%;
max-height: 500px; }
jQuery per il pulsante accanto:
jQuery("document").ready(function(){
jQuery("#slider > img:gt(0)").hide();
jQuery("#button-next").click(function() {
jQuery("#slider > img:first")
.fadeOut(1000)
.next()
.fadeIn(1000)
.appendTo("#slider");
});
});
È possibile che questo jQuery funziona bene, tranne che salta la prima immagine se un utente fa clic sul pulsante Avanti ultima diapositiva. Visualizza solo la prima immagine una volta, tutte le altre immagini continueranno a scorrere ogni volta che viene cliccato il prossimo. Per qualche motivo display: nessuno viene aggiunto alla prima immagine ma non so da dove proviene quel codice.
jQuery per il tasto precedente:
jQuery("document").ready(function(){
jQuery("#slider > img:gt(0)").hide();
jQuery("#button-previous").click(function() {
jQuery("#slider > img:last")
.fadeOut(1000)
.next()
.fadeIn(1000)
.appendTo("#slider");
});
});
Questo codice jQuery sopra restituirà l'immagine appena in anteprima come dovrebbe. Ma quando cliccato di nuovo non fa nulla.
Ho anche provato .prev() in sostituzione di .next(). Funziona perfettamente la prima volta che fai clic sul pulsante precedente. Supponiamo di vedere l'immagine n. 4. Quando faccio clic sul pulsante precedente, si passa all'immagine n. 3, come dovrebbe. Ma quando si fa clic di nuovo su di esso non si passa all'immagine n. 2, si torna all'immagine n. 4, quindi n. 3 e n. 4, ripetendosi.
Grazie per la risposta dettagliata. Ha funzionato perfettamente e ho aggiunto alcuni effetti animati! – bob
questo non funziona bene. Alcune immagini non mostrano. –