Bonsoir;
En commençant, je dois reconnaître que je suis un big novice en Js/jQuery...
Donc, voilà, j'ai pris un code d'un Slidershow que j'ai trouvé sur la toile, voilà le lien du tuto:
http://sixrevisions.com/tutorials/ja...comment-145069
J'ai essayé par la suite de le modifier afin qu'il soit possible de mettre plusieurs Sliders sur une même page. Mais mes essaies ont échoués !
1 - En essayant de changer les ids des div et adapter la fonction js pour ça...J'ai dû utiliser une variable "prefix" qui va différer entre nos Sliders dans la page HTML...
Ex:
Pour le slider 1, je prends le préfixe "s1_" ==> <div id="s1_slideshow">; <div id="s1_slidesContainer">...etc.
Pour le slider 2, "s2_" ==>div id="s2_slideshow">; <div id="s2_slidesContainer">...etc.
.
.
.
.
etc.
2- Puis en appelant une fonction slider(prefix) pour chaque préfixe.
3- ça ne marche, j'ai l'impression comme si le script s'exécute qu'une seule fois et sur le même slider en mélangeant le contenu des deux slider ( comme j'ai mis que deux sliders dans ma page)
Je mets le code initial:
$(document).ready(function(){
var currentPosition = 0;
var slideWidth = 560;
var slides = $('.slide');
var numberOfSlides = slides.length;
// Remove scrollbar in JS
$('#slidesContainer').css('overflow', 'hidden');
// Wrap all .slides with #slideInner div
slides
.wrapAll('<div id="slideInner"></div>')
// Float left to display horizontally, readjust .slides width
.css({
'float' : 'left',
'width' : slideWidth
});
// Set #slideInner width equal to total width of all slides
$('#slideInner').css('width', slideWidth * numberOfSlides);
// Insert controls in the DOM
$('#slideshow')
.prepend('<span class="control" id="leftControl">Clicking moves left</span>')
.append('<span class="control" id="rightControl">Clicking moves right</span>');
// Hide left arrow control on first load
manageControls(currentPosition);
// Create event listeners for .controls clicks
$('.control')
.bind('click', function(){
// Determine new position
currentPosition = ($(this).attr('id')=='rightControl') ? currentPosition+1 : currentPosition-1;
// Hide / show controls
manageControls(currentPosition);
// Move slideInner using margin-left
$('#slideInner').animate({
'marginLeft' : slideWidth*(-currentPosition)
});
});
// manageControls: Hides and Shows controls depending on currentPosition
function manageControls(position){
// Hide left arrow if position is first slide
if(position==0){ $('#leftControl').hide() } else{ $('#leftControl').show() }
// Hide right arrow if position is last slide
if(position==numberOfSlides-1){ $('#rightControl').hide() } else{ $('#rightControl').show() }
}
});
Le code HTML ( juste l'utile):
<div id="slideshow">
<div id="slidesContainer">
<div class="slide">
<h2>Web Development Tutorial</h2>
</div>
<div class="slide">
<h2>Grunge Brushes, Anyone?</h2>
</div>
<div class="slide">
<h2>How About Some Awesome Grunge Textures?</h2>
</div>
<div class="slide">
<h2>'Tis the End, My Friend.</h2>
</div>
</div>
</div>