2016-06-20 12 views
1

Ich fand this simple slider mit einem Fortschrittsbalken. Es funktioniert gut, aber ich möchte nächste, vorherige und Pause-Tasten hinzufügen. Kann jemand helfen?Hinzufügen von Pause, nächste und vorherige Schaltflächen zu jquery Slider mit Fortschrittsbalken

JS

bar = $('.progress_bar'); 
time = 3000; 

function run(){ 
    bar.width(0); 
    bar.fadeIn(500,function(){ 
     bar.animate({'width': "100%"}, time).fadeOut(500,function(){ 
      change();run(); 
     }); 
    }); 
} 
$("#slideshow > li:gt(0)").hide(); 


var change = function() { 
    $('#slideshow > li:first') 
    .fadeOut(1000) 
    .next() 
    .fadeIn(1000) 
    .end() 
    .appendTo('#slideshow'); 
}; 

run(); 

Antwort

0

machte ich ein codepen.io Beispiel, das die Pause-Adressen und weiterhin Funktionalität, die ich denke, der anspruchsvollere Teil ist. Für die nächste, würden Sie einfach ein Click-Ereignis haben, die die Änderung() Funktion in Ihrem ursprünglichen Beispiel ausführen würde: http://codepen.io/KAPastor/pen/ezdQPd

<button id="run">RUN</button> 
<button id="pause">PAUSE</button> 
<button id="continue">CONTINUE</button> 

<div class="progress_bar"></div> 

CSS

div.progress_bar { 
    position: absolute; 
    bottom: 0; 
    left: 0; 
    background: #6cecc6; 
    height: 5px; 
    width: 0; 
    opacity: 1; 
    z-index: 1002; 
    width: 100%; 
    } 

JS:

$(document).ready(function(){ 

    $('#run').click(function(){ 
    $('.progress_bar').width(0); 
    $('.progress_bar').fadeIn(500,function(){ 
     $('.progress_bar').animate({'width': "100%"}, 3000) 
    }); 
    }); 

    $('#pause').click(function(){ 
     $('.progress_bar').clearQueue(); 
    $('.progress_bar').stop(); 

    }); 

    $('#continue').click(function(){ 
$('.progress_bar').fadeIn(500,function(){ 
     $('.progress_bar').animate({'width': "100%"}, 3000) 
    }); 
    }); 



}) 

I Ich weiß, es ist eine vereinfachte Lösung, aber ich denke, es wird hilfreich sein! Lassen Sie mich wissen, wenn Sie weitere Fragen haben. -K

+0

Vielen Dank! Das war sehr hilfreich. Ich habe eine kleine Änderung an Ihrem Code vorgenommen, da sich der Schieberegler nach dem Drücken der Pause- und Fortfahren-Tasten nicht geändert hat. Ich habe einfach die Funktionen change() und run() zur Funktion continue() hinzugefügt, und das schien zu funktionieren. Es scheint jedoch immer noch nicht korrekt mit mehreren Folien zu funktionieren. Die Schaltflächen pause und continue funktionieren auf der ersten Folie, aber ab der zweiten Folie scheinen sie nichts zu tun. –

+0

Hey R.J, ich bin froh, dass ich dir helfen kann. Ist es möglich, dass Sie einen Link zu einem jsfiddle oder codepen der gerade geposteten Lösung/des Problems posten? Es würde mir helfen, von Ihrem Beispiel zu arbeiten: D –

+0

Ich habe gerade gefunden, was ich falsch gemacht habe. Es war ein Problem mit dem, wo ich die Knöpfe hatte. So wie ich es anfangs hatte, fügte das Skript bei jeder Folie neue Schaltflächen hinzu, was dazu führte, dass sie nach der ersten nicht funktionierten. Ich habe die Knöpfe aus dem Append gezogen und es scheint jetzt perfekt zu funktionieren. Danke für die Hilfe Kyle: D –