Désactiver un script à la demande

Signaler
Messages postés
2
Date d'inscription
samedi 18 octobre 2003
Statut
Membre
Dernière intervention
13 juin 2004
-
Messages postés
103
Date d'inscription
lundi 10 mai 2004
Statut
Membre
Dernière intervention
10 mars 2010
-
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

Messages postés
103
Date d'inscription
lundi 10 mai 2004
Statut
Membre
Dernière intervention
10 mars 2010
8
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
Messages postés
103
Date d'inscription
lundi 10 mai 2004
Statut
Membre
Dernière intervention
10 mars 2010
8
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
Messages postés
13616
Date d'inscription
jeudi 13 février 2003
Statut
Membre
Dernière intervention
15 octobre 2013
32
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]]
Messages postés
2
Date d'inscription
samedi 18 octobre 2003
Statut
Membre
Dernière intervention
13 juin 2004

Merci pour les conseils...
Ca marche !
;)

Soho
[http://www.chocoholic.free.fr/ [Site]]
Messages postés
103
Date d'inscription
lundi 10 mai 2004
Statut
Membre
Dernière intervention
10 mars 2010
8
Je le savais, je suis allé voir...

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

bertrouf