11548 sujets

JavaScript, DOM et API Web HTML5

Bonjour tout le monde,

Je voudrais faire en sorte de déclencher une animation en javascript (avec .animate de jquery) lors du passage de la souris sur une zone précise d'une page web. La zone en question ne correspond pas à un div ou autre mais à une zone dont on aura préalablement déterminé les coordonnées.

Ce bout de code me permet bien de lancer l'animation mais elle s'arrête dès que mon marginLeft a été incrémenté de 10px :


$().mousemove(function(e){
	sourisLeft = e.pageX;
	sourisTop = e.pageY;
	if ((sourisLeft > 300) && (sourisTop > 350) && (sourisTop < 615)){
		$(".slider").animate( {marginLeft: 10}, 400,function(){} );
	}
});


Comment faire pour que mon élément slide jusqu'à ce que la souris sorte de la zone définie ?

Merci de votre aide.
Bon je progresse. Avec ce bout de code, je lance mon animation. Par contre, le stopScrollSlider() ne marche pas. Quelqu'un peut-il m'expliquer pourquoi ?


$().mousemove(function(e){
	sourisLeft = e.pageX;
	sourisTop = e.pageY;
	if ((sourisLeft > 300) && (sourisTop > 350) && (sourisTop < 615))
		intervalSlider = setInterval("go()",1);
	else
		stopScrollSlider();
});

function stopScrollSlider() {
	clearInterval(intervalSlider);
}

function go(){
     marginLeft = parseFloat($(".slider").css('marginLeft').replace("px", ""));	
      if ((sourisLeft > 300) && (sourisTop > 350) && (sourisTop < 615))
		$(".slider").css("marginLeft",(marginLeft+1) + "px");
      else
		stopScrollSlider();		
}
Bonjour,

Je pense que tu devrais déclarer ton intervalSlider en tant que variable globale à tout ton programme.
Une console JS te dirait "intervalSlider is not defined" ! Le problème serait résolu avec ce que je te propose au dessus.

A bientôt
Modifié par JuJu57 (06 Dec 2010 - 21:03)
Merci pour ta réponse JuJu57.
Je n'ai pas d'erreur dans ma console JS, c'est pour ça que je ne comprends pas pourquoi ça tourne en boucle.

J'ai fait ça avant ma fonction :

intervalSlider = "";


mais ça ne change rien.

En fait, dès que je fais un alert dans ma fonction go(), ça tourne en boucle et mon navigateur est bloqué. D'ailleurs à ce propos, y'a-t-il moyen d'arrêter un script qui tourne en boucle sans fermer violemment le navigateur ?

Merci pour ton aide.