onMouseOver / onMouseOut
Forum Programmation : onMouseOver / onMouseOut
Bonjour tout le monde ! Voilà je vous expose le petit soucis auquel je suis confronté... J'ai une fonction onMouseOver / onMouseOut avec "image.jpg" et "image-over.jpg". Jusque là pas d'ennui. Seulement je cherche à faire en sorte que "l'image-over.jpg" chargée au passage de la souris reste visible après que le visiteur ai cliqué dessus. Comment faire ? ...
Merci de votre écoute :-D
Pourquoi ne faittu pas cela en CSS ? c'est tout de même plus simple. Bon oki pour que ca passe bien sous IE il faut qu'il y ai un lien mais bon c'est bien plus simple que du javascript.
onclick="la meme fonction que t'as mis pour onmouseover"
nan ?
Tu penses que l'on peux combiner les deux fonctions ? Je vais essayer ca semble pas bête ... Pour ce qui est de la css, je m'en tient aux couleurs, style de texte, scrool barre et voilà mais si tu peux m'en dire un peut plus pourquoi pas ? si le résultat est le même !
En tout cas merci pour vos idées : ca m'éclaire déja un peu plus !! Je vous tient au courant !
Nan, la faut faire un peu d'algo.
-au chargement tu créé une variable globale que tu fou à false
-onclick, tu passe la variable à true par ex, ce qui veut dire que tu a cliqué.
-onmouseover, tu change ton image
-onmouseout, tu vérifie si la variable globale est à true (si onclick a été fait), sinon tu change l'image.
en js, les globales c'est :
this.maVariable.
Capté ?
Pas tout a fait ... Un exemple serait le bienvenue : je suis visuel ^^
J'avais pas vu le fonctionnement de nebuli, mais ouais, c'est peut-être comme ça qu'il veut sa réponse.
Quand tu cliques sur l'image, tu veux que ça fasse quoi ? que ça la laisse tout le temps à l'image "on mouse over" ??
Voilà tout a fait !
au début de ton script
juste apres ta balise <script ...>
tu mets
this.clique = false;
apres tu devra avoir les fonction qui seront éxécutés en fonction des action.
3 normalement
1 fonction que tu va executer au mouseover
1 au mouse out
1 au onclick
tu a deja les deux premieres normalement
tu rajoute une fonction que tu lancera au onclick
dans celle ci tu mets
this.clique = true;
dans la fonction qui corresponds au mouse out
tu rajoute une condition
if ( this.clique == false ) {
//ton code que tu avais deja pour changer l'image au mouse out
}
c'est pas compliqué, tu a 3 lignes à rajouter au code que tu a deja
desole je te fais pas la fonction entiere car je vais me coucher.
Essaie de comprendre par toi meme, sinon poste ton script js, je le modifirai demain si personne d'autre n'aura volé à ton secours....
lol oki merci pour toute l'aide =) Demain boulot =/ alors je vais faire comme toi : je teste juste ce que tu m'as donné ! Un grand mercii encore !! et bonne nuit ;_)
L'attention accordée au projet hier etait trop faible cause de la fatigue =/ Donc apres le boulot j'ai tenté de suivre tes indications le plus justement possible : sans réel succès à mon grand regrès ...
Je te fais donc parvenir le script ainsi que la balise onMouseOver / onMouseOut . Si le temps te le permet, essaye de donner quelques frappes de clavier dessus : carte blanche ... du moment que ca fonctionne mais j'ai entièrement confiance ;-)
<script language="JavaScript" type="text/JavaScript">
<!--
function MM_swapImgRestore() { //v3.0
var i,x,a=document.MM_sr; for(i=0;a&&i<a.length&&(x=a[i])&&x.oSrc;i++) x.src=x.oSrc;
}
function MM_preloadImages() { //v3.0
var d=document; if(d.images){ if(!d.MM_p) d.MM_p=new Array();
var i,j=d.MM_p.length,a=MM_preloadImages.arguments; for(i=0; i<a.length; i++)
if (a[i].indexOf("#" )!=0){ d.MM_p[j]=new Image; d.MM_p[j++].src=a[i];}}
}
function MM_findObj(n, d) { //v4.01
var p,i,x; if(!d) d=document; if((p=n.indexOf("?" ))>0&&parent.frames.length) {
d=parent.frames[n.substring(p+1)].document; n=n.substring(0,p);}
if(!(x=d[n])&&d.all) x=d.all[n]; for (i=0;!x&&i<d.forms.length;i++) x=d.forms[i][n];
for(i=0;!x&&d.layers&&i<d.layers.length;i++) x=MM_findObj(n,d.layers[i].document);
if(!x && d.getElementById) x=d.getElementById(n); return x;
}
function MM_swapImage() { //v3.0
var i,j=0,x,a=MM_swapImage.arguments; document.MM_sr=new Array; for(i=0;i<(a.length-2);i+=3)
if ((x=MM_findObj(a[i]))!=null){document.MM_sr[j++]=x; if(!x.oSrc) x.oSrc=x.src; x.src=a[i+2];}
}
//-->
</script>
Pour le script s'en est fini fiouu (vive la syntaxe)
Et maintenant voilà une des balises onMouseOver/Out :
<a href="#" onMouseOut="MM_swapImgRestore()" onMouseOver="MM_swapImage('photos','','images/psd/boutton-photos-over.jpg',1)"><img src="images/psd/boutton-photos.jpg" name="photos" width="90" height="39" border="0"></a>
Si jamais il te manque quelque chose : la page et disponible sur le site que je fournis sur le forum (ici aussi)
Un grand merci d'avance !
Gaggagag... j'aime pas dreamweaver... Enfin juste les comportements, c'est utile mais ca te ponds un code pourri mais qui fonctionne partout. A part ca dream est tres bien...
Je t'en ponds un nouveau bien plus compréhensible pour toi.
Maintenant je comprends pourquoi tu avait du mal à comprendre...
Laise moi 20 min...
Ohhh Mercii !! Je n'en attendais pas autant ... C'est super sympa de ta part !
Et pour ce qui est de dreamweaver c'est vrai qu'il est simple à utiliser ce qui explique mon choix pour ce logiciel. Je suis tout a fait d'accord avec toi au sujet de la génération d'un code disons "flou" ^^
Encore un grand merci !!
Code :
|
Voili voilou le script pour une seule image.
Code :
|
Et voila le code si tu comptes l'utiliser sur plusieurs images.
J'espere que j'ai assez commenté.
Un tres tres grand merci !! (k) (l) ^^ Si un jour besoins d'un service sur photoshop tu sais ou me trouver ...
Merci encore !! (je me répète)
Ca marche au moins ?
Au fait pour photoshop j'ai pas besoin d'aide ;-) Mais merci quand meme...
Petit bémol, ce script ne respecte que les navigateurs qui sont compatible dom, cad firefox, ie6&7, opera, safari etc...
Il y a 235 utilisateurs connus et inconnus. Pour voir la liste des connectés connus, cliquez ici.
