11548 sujets

JavaScript, DOM et API Web HTML5

Bonjour,
J'utilise actuellement sur mon site la function scrollTo de jQuery.

Je l'utilise pour faire descendre ou monter de 100 pixels un <div> via un clic sur une balise <a>.
Le mouvement se fait en 800 (millisecondes je crois... peu importe).

Quiqu'il en soit, les clics sur mon <a> n'annulent et ne remplacent pas les précédents clic sur ce même <a>. Ce qui fait que les déplacements s'enchainent au nombre de clic fais. Ce qui n'est pas forcément très agréable pour l'internaute qui doit patienter s'il a clické une multitude de fois.

Y-a t'il donc une solution pour éviter cela ?

voici la fonction utilisé :

$('#haut').click(function(){
	$paneTarget.scrollTo('-=100px', 800);
});
$('#bas').click(function(){
	$paneTarget.scrollTo('+=100px', 800);
});


Merci.
Nico
Modifié par tonib (24 May 2009 - 23:04)
Salut tonib,

Si j'ai bien compris ton problème, la solution est, avant chaque scrollTo(), d'annuler les précédents (au lieu de les mettre tous à la queue). jQuery a une méthode pour ça : stop(). Essaye :
$paneTarget.stop().scrollTo('-=100px', 800);
Marcv,

Vous êtes un chef. Merci. A force de vouloir simplifier ce que l'on récupère sur le net, on fini par oublier les choses nécéssaire. Ce petit bout de script fesait effectivement parti du code original.

Merci pour ce morceaux de code ajouté désormais à mon vocabulaire.

Bonne continuation.

(admin : je ne sais pas s'il y à moyen de fermer un post résolu...)
tonib a écrit :
(admin : je ne sais pas s'il y à moyen de fermer un post résolu...)

On ne ferme pas les sujets en général, mais on invite l'auteur du sujet à éditer son premier message pour rajouter «[Résolu]» dans le titre du sujet.