2011-08-11 5 views
0

J'ai le code suivant, j'ai mis en œuvre quelque chose comme ça jusqu'à présent, mais je veux ajouter "NEXT" fonctionnalité "PREV" à cela, dont j'ai besoin suggesstion.Simple curseur Jquery, ne pas utiliser plugin

<div id="slider"> 
<div class="wrap"> 
<div class="panel">Panel1</div> 
<div class="panel">Panel2</div> 
<div class="panel">Panel3</div> 
</div> 

<div class="previous">This need Implementation</div> 
<div class="next">This need Implementation</div> 

</div> 

<div class="nav"> 

<ul> 
<li> panel1</li> 
<li> panel2</li> 
<li> panel3</li> 
<ul> 

</div> 


$(document).ready(function() { 

$(".wrap .panel:not(.active)").fadeOut(); 
$(".wrap .panel:first(.active)").fadeIn(); 

$(".nav ul li").click(function (event) { 

$(this).addClass('current').siblings().removeClass('current'); 

$(".wrap .panel").stop(true, true).fadeOut().eq($(this).index()).fadeIn(); 

}); 
}); 

Répondre

0

vous devez stocker l'index du volet actuel affiché

var currentIndex = 0;// store current pane index displayed 
var ePanes = $('#slider .panel');// store panes collection 
function showPane(index){// generic showPane 
    // hide current pane 
    ePanes.eq(currentIndex).stop(true, true).fadeOut(); 
    // set current index : check in panes collection length 
    currentIndex = index; 
    if(currentIndex < 0) currentIndex = ePanes.length-1; 
    else if(currentIndex >= ePanes.length) currentIndex = 0; 
    // display pane 
    ePanes.eq(currentIndex).stop(true, true).fadeIn(); 
    // menu selection 
    $('.nav li').removeClass('current').eq(currentIndex).addClass('current'); 
} 
// bind ul links 
$('.nav li').click(function(ev){ showPane($(this).index());}); 
// bind previous & next links 
$('.previous').click(function(){ showPane(currentIndex-1);}); 
$('.next').click(function(){ showPane(currentIndex+1);}); 
// apply start pane 
showPane(0); 
+0

Grande dmidz, Hurry, il cela fonctionne. Juste un problème, quand vous cliquez sur suivant et après la troisième diapositive, il cache tout, comment puis-je aller à la première, après la troisième. la même chose pour prev-bien. – JAML

+0

au lieu de: 'currentIndex = Math.max (0, Math.min (ePanes.length-1, index));' écrire quelque chose comme: 'si (currentIndex <0) currentIndex = ePanes.length-1' 'else if (currentIndex> = ePanes.length) currentIndex = 0' – dmidz

+0

Désolé de ne pas modifier le code ci-dessus. Je n'ai aucune idée, où ça va. – JAML