Désactiver un script à la demande

soho-choc Messages postés 2 Date d'inscription samedi 18 octobre 2003 Statut Membre Dernière intervention 13 juin 2004 - 2 juin 2004 à 08:31
bertrouf Messages postés 103 Date d'inscription lundi 10 mai 2004 Statut Membre Dernière intervention 10 mars 2010 - 14 juin 2004 à 00:02
Bonjour,

J'ai un script sur une page de mon site qui fait suivre de petites images derrière le curseur de la souris chocoholic

Je souhaite conserver ce script mais permettre aux utilisateurs qui le souhaitent de le désactiver (en cliquant sur un bouton par exemple).

Quelqu'un a-t-il la solution ou sait-il ou je peut la trouver ?

Merci d'avance !

Soho

5 réponses

bertrouf Messages postés 103 Date d'inscription lundi 10 mai 2004 Statut Membre Dernière intervention 10 mars 2010 9
2 juin 2004 à 10:35
Bien sûr, passe donc tes images en Hidden.
Recopie le bouton input sur ta page.
Toute la difficulté consiste à remplacer le mot OUTER par le Id de tes images, en particulier si tes images sont différentes.

Voici un exemple :
<html>
<head>
<SCRIPT LANGUAGE="JavaScript">
<!--//
var msg='Message qui tourne';
var font='Verdana,Arial';
var size=3; // up to seven
var color='000000';
var speed=.3;
var rotation=.2;
var ns=(document.layers);
var ie=(document.all);
var msg=msg.split('');
var n=msg.length;
var a=size*15;
var currStep=0;
var ymouse=0;
var xmouse=0;
var scrll=0;
var props="";

if (ie)
window.pageYOffset=0

// writes the message
if (ns){
for (i=0; i < n; i++)
document.write('<layer name="nsmsg'+i+'" top=0 left=0 height='+a+' width='+a+'><center>'+props+msg[i]+'</center></layer>');
}
if (ie){
document.write('

');
for (i=0; i < n; i++)
document.write('
'+props+msg[i]+'
');
document.write('

');
}
(ns)?window.captureEvents(Event.MOUSEMOVE):0;

function Mouse(evnt){
ymouse = (ns)?evnt.pageY+20-(window.pageYOffset):event.y; // y-position
xmouse = (ns)?evnt.pageX+20:event.x-20; // x-position
}

if (ns||ie)
(ns)?window.onMouseMove=Mouse:document.onmousemove=Mouse;
y=new Array();
x=new Array();
Y=new Array();
X=new Array();
for (i=0; i < n; i++){
y[i]=0;
x[i]=0;
Y[i]=0;
X[i]=0;
}

function makecircle(){ // rotation properties
if (ie) outer.style.top=document.body.scrollTop;
currStep-=rotation;
for (i=0; i < n; i++){ // makes the circle
var d=(ns)?document.layers['nsmsg'+i]:iemsg[i].style;
d.top=y[i]+a*Math.sin((currStep+i*1)/3.8)+window.pageYOffset-15;
d.left=x[i]+a*Math.cos((currStep+i*1)/3.8)*2; // remove *2 for just a plain circle, not oval
}
}

function drag(){ // makes the resistance
scrll=(ns)?window.pageYOffset:0;
y[0]=Math.round(Y[0]+=((ymouse)-Y[0])*speed);
x[0]=Math.round(X[0]+=((xmouse)-X[0])*speed);
for (var i=1; i < n; i++){
y[i]=Math.round(Y[i]+=(y[i-1]-Y[i])*speed);
x[i]=Math.round(X[i]+=(x[i-1]-X[i])*speed);
}
makecircle();
// not rotation speed, leave at zero
setTimeout('drag()',10);
}
if (ns||ie)window.onload=drag;
//-->
</script>

</head>

C'est beau, ça tourne !

</html>

Dans le cas où tes images soient d'ID différentes, alors il faudra faire une fonction.
Cordialement
bertrouf6111@/ /yahoo.fr
0
bertrouf Messages postés 103 Date d'inscription lundi 10 mai 2004 Statut Membre Dernière intervention 10 mars 2010 9
2 juin 2004 à 10:58
Je suis allé voir sur ton site.
Ajoute la fonction arret() avant le </head>

<script language="JavaScript">
function arret(){
document.getElementById('dot0').style.visibility='hidden';
document.getElementById('dot1').style.visibility='hidden';
document.getElementById('dot2').style.visibility='hidden';
document.getElementById('dot3').style.visibility='hidden';
document.getElementById('dot4').style.visibility='hidden';
document.getElementById('dot5').style.visibility='hidden';
document.getElementById('dot6').style.visibility='hidden';
}
</script>

Et comme je te le disais plus haut, un bouton ou un lien qui lance la fonction arret() dans ta page.

Bon appétit
bertrouf
0
cs_bultez Messages postés 13615 Date d'inscription jeudi 13 février 2003 Statut Membre Dernière intervention 15 octobre 2013 30
2 juin 2004 à 13:18
Bonjour,
à mon avis, il faudrait aussi :
soit invalider l'événement,
par exemple si function appelée sur onclick, ou
onmousemove ...
on peut faire élément.onclick=null;
ou élément.onmousemove=null; ...
soit mettre une valeur dans une variable globale
et tester, dans la fonction appelée, cette variable
pour exécuter ou pas.
Cordialement Bul. [Site] [[mailto:marcel.Bultez@Tiscali.fr Mail]]
0
soho-choc Messages postés 2 Date d'inscription samedi 18 octobre 2003 Statut Membre Dernière intervention 13 juin 2004
13 juin 2004 à 23:55
Merci pour les conseils...
Ca marche !
;)

Soho
[http://www.chocoholic.free.fr/ [Site]]
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
bertrouf Messages postés 103 Date d'inscription lundi 10 mai 2004 Statut Membre Dernière intervention 10 mars 2010 9
14 juin 2004 à 00:02
Je le savais, je suis allé voir...

Bonne idée ce site sur le chocolat, et bel effort de mise en page.

bertrouf
0
Rejoignez-nous