Je cherchais depuis longtemps, et je suis juste trop nouveau avec JQuery et javascript pour savoir où je vais mal. Toute aide est la bienvenue. J'ai le script ci-dessous, qui fonctionne très bien pour un élément. Comment puis-je modifier cela pour travailler avec plusieurs éléments? Si j'ai plusieurs éléments sur la page, le curseur fera défiler tout, pas seulement les éléments dans le conteneur. Je sais que techniquement, je pourrais juste faire de nouvelles variables et de nouveaux noms de classe pour chaque méthode, mais c'est désordonné et je sais qu'il doit y avoir un moyen plus intelligent.Isoler jQuery à seulement des éléments contenus
<script type="text/javascript" charset="utf-8">
window.onload = function() {
var container = $('div.sliderGallery');
var ul = $('ul', container);
var itemsWidth = ul.innerWidth() - container.outerWidth();
$('.slider', container).slider({
min: 0,
max: itemsWidth,
handle: '.handle',
stop: function (event, ui) {
ul.animate({'left' : ui.value * -1}, 500);
},
slide: function (event, ui) {
ul.css('left', ui.value * -1);
}
});
};
</script>
Et voici le code HTML.
<div class="sliderGallery">
<ul id="audio-downloads">
<li><a href="#">Audio Title</a></li>
<li><a href="#">Audio Title</a></li>
<li><a href="#">Audio Title</a></li>
<li><a href="#">Audio Title</a></li>
<li><a href="#">Audio Title</a></li>
<li><a href="#">Audio Title</a></li>
<li><a href="#">Audio Title</a></li>
<li><a href="#">Audio Title</a></li>
<li><a href="#">Audio Title</a></li>
</ul>
<div class="slider">
<div class="handle"></div>
</div>
</div>
<div class="sliderGallery">
<ul id="audio-downloads">
<li><a href="#">Audio Title</a></li>
<li><a href="#">Audio Title</a></li>
<li><a href="#">Audio Title</a></li>
<li><a href="#">Audio Title</a></li>
<li><a href="#">Audio Title</a></li>
<li><a href="#">Audio Title</a></li>
<li><a href="#">Audio Title</a></li>
<li><a href="#">Audio Title</a></li>
<li><a href="#">Audio Title</a></li>
</ul>
<div class="slider">
<div class="handle"></div>
</div>
</div>
Vous utilisez toujours 'container' qui n'est plus défini. – jitter
@jitter, super attrape. Manqué celui-là! –
Cela a presque résolu! Et cela fait vraiment beaucoup de sens. Le seul problème est maintenant que c'est un curseur, et maintenant le curseur ne suivra pas la souris lorsque vous le faites glisser. Cela a-t-il du sens? Je peux les faire défiler indépendamment les uns des autres, mais le curseur ne bougera pas avec la souris. J'utilise les dernières versions de jQuery et jQuery UI – jaasum