J'ai besoin de faire un curseur.Curseur avec boutons. Comment améliorer?
J'ai du contenu (qui devrait être décalé horizontalement) et deux boutons - "droit" et "gauche".
Si vous appuyez sur le bouton et le maintenez enfoncé, le contenu commence à se déplacer (dans la direction appropriée). Si vous ne maintenez pas le bouton, le mouvement s'arrête. Ce comportement copie le comportement d'une barre de défilement de fenêtre habituelle.
j'ai écrit un code:
var animateTime = 1,
offsetStep = 5;
//event handling for buttons "left", "right"
$('.bttR, .bttL')
.mousedown(function() {
scrollContent.data('loop', true).loopingAnimation($(this));
})
.bind("mouseup mouseout", function(){
scrollContent.data('loop', false);
});
$.fn.loopingAnimation = function(el){
if(this.data('loop') == true){
var leftOffsetStr;
leftOffsetInt = parseInt(this.css('marginLeft').slice(0, -2));
if(el.attr('class') == 'bttR')
leftOffsetStr = (leftOffsetInt - offsetStep).toString() + 'px';
else if(el.attr('class') == 'bttL')
leftOffsetStr = (leftOffsetInt + offsetStep).toString() + 'px';
this.animate({marginLeft: leftOffsetStr}, animateTime, function(){
$(this).loopingAnimation(el);
})
}
return this;
}
Mais il a un certain nombre de choses que je n'aime pas:
- Il appelle toujours l'animation de la fonction (
loopingAnimation
) - Je pense que cela est une charge supplémentaire (pas bon). - En déplaçant du contenu, il "tressaille et tremble" - (ce n'est pas joli).
Comment puis-je résoudre ce problème plus avec élégance et sans les inconvénients de mon code?
C'est génial! Merci, m'a beaucoup aidé! – abhisek
[Démo mise à jour] (http://jsfiddle.net/MvRdD/1443/) (réparer le lien brisé du plugin mousewheel). – Mottie