OVH Cloud OVH Cloud

xor color on mouseover et mouseout

10 réponses
Avatar
pcouas
Bonjour,

Je souhaite passer en inverse video lorsque j'arrive dans une Cellule,
et retrouver la couleur d'origine a la fin, lors de la sortie de la
cellue.

J'ai essaye sans resultat

<TR>
<TD WIDTH=200 height=200 bgcolor=red
onmouseover="this.bgColor='this.bgColor ^ 0xffffff';return true"
onmouseout="this.bgColor='this.bgColor ^ 0xffffff';return true">
</TD>
</TR>

Ou est mon erreur

Merci de vos réponses
Philippe

10 réponses

Avatar
Saad Saad
Bonjour,

Je souhaite passer en inverse video lorsque j'arrive dans une Cellule,
et retrouver la couleur d'origine a la fin, lors de la sortie de la
cellue.

J'ai essaye sans resultat

<TR>
<TD WIDTH 0 height 0 bgcolor=red
onmouseover="this.bgColor='this.bgColor ^ 0xffffff';return true"
onmouseout="this.bgColor='this.bgColor ^ 0xffffff';return true">
</TD>
</TR>

Ou est mon erreur

Merci de vos réponses
Philippe


moi je fais comme ceci et ca fonctionne très bien:

onMouseOver="this.style.background='red';"
onMouseOut="this.style.background='white';">

Avatar
Bul
bonjour,
style.backgroundColor
et pas red mais #FF0000
<td style="background-color:#FF0000"...
et c'est un string ( #RRGGBB )
donc un truc du genre

fait sur un input text et blanc ou noir
pour les essais

<HTML>
<HEAD>
<TITLE></TITLE>
<script type="text/javascript">
function changer(zone)
{
zone.style.backgroundColor=(
eval("0x"+zone.style.backgroundColor.substring(1)) ^ 0xFFFFFF );
// on peut sûrement faire plus simple !!!!
}
</script>
</HEAD>
<BODY>
<input
style="background-color:#000000"
type="text"
onmouseover="changer(this);"
onmouseout="changer(this);">
</BODY>
</HTML>
Avatar
Cenekemoi
...
function changer(zone)
{
zone.style.backgroundColor=(
eval("0x"+zone.style.backgroundColor.substring(1)) ^ 0xFFFFFF );
// on peut sûrement faire plus simple !!!!
}
</script>
</HEAD>
<BODY>
<input
style="background-color:#000000"
type="text"
onmouseover="changer(this);"
onmouseout="changer(this);">
</BODY>
</HTML>


Joli ! Simple et efficace...Vendu !

--
Cordialement, Thierry ;-)

Avatar
Bul
joli : non, simple : non.
la solution proposée juste avant était meilleure !
mais la question était : pourquoi ça marche pas ?
et non : comment faire ? ( autrement ? )
j'ai supposé que c'était un simplification du
problème réel. @+
Avatar
YD
joli : non, simple : non.


joli : oui, sauf le eval absolument inutile, javascript
s'occupant tout seul du transtypage nécessaire. Ceci
suffit :

zone.style.backgroundColor=0xFFFFFF ^ ("0x"+zone.style.backgroundColor.substring(1))

la solution proposée juste avant était meilleure !
mais la question était : pourquoi ça marche pas ?
et non : comment faire ? ( autrement ? )
j'ai supposé que c'était un simplification du
problème réel.


Malheureusement cette solution ne fonctionne qu'avec
IE ! Firefox transforme tous les attributs de couleur
sous forme "rgb(x,x,x)", le XOR serait à faire avec
chacune des valeurs composant la couleur... Quant à
Opera ??? Pas compris ce qu'il faisait, lui !

--
Y.D.

Avatar
Bul
merci Y.D
zone.style.backgroundColor=0xFFFFFF ^
("0x"+zone.style.backgroundColor.substring(1))


je n'aurai jamais tenté ça ( qu'est-ce qu'il est fort javascript ) ...
Firefox transforme tous les attributs de couleur sous forme "rgb(x,x,x)"
ah, les problèmes de compatibilité...


je n'aurai jamais pensé ça de FireFox...
Quant à Opera ???
je n'aurai jamais essayé avec tous les navigateurs...


Bul @+


Avatar
ASM
Saad Saad wrote:

moi je fais comme ceci et ca fonctionne très bien:

onMouseOver="this.style.background='red';"
onMouseOut="this.style.background='white';">


çà ne marche pas partout
ni pour toutes les couleurs (aux noms + ou - connus)

et ce serait mieux avec :

onmouseover="this.style.backgroundColor='red';"

certains navigateurs pointilleux n'acceptant pas
le terme générique background s'il ne sert qu'à la couleur

(voir mes propositions pour les cellules et rangées)
(déjà citées par ailleurs)
--
Stephane Moriaux et son [moins] vieux Mac

Avatar
ASM
wrote:
Bonjour,

Je souhaite passer en inverse video lorsque j'arrive dans une Cellule,
et retrouver la couleur d'origine a la fin, lors de la sortie de la
cellue.

J'ai essaye sans resultat

<TR>
<TD WIDTH 0 height 0 bgcolor=red
onmouseover="this.bgColor='this.bgColor ^ 0xffffff';return true"
onmouseout="this.bgColor='this.bgColor ^ 0xffffff';return true">
</TD>
</TR>

Ou est mon erreur


j'en sais rien
ne sachant ce qu'est supposé faire ou être :
'this.bgColor ^ 0xffffff'

Merci de vos réponses
Philippe


perso, sans avoir essayé, je ferais plutôt comme ça :

<TD WIDTH 0 height 0 bgcolor=red
onmouseover="c=this.bigColor;this.bgColor='#FFFF00';"
onmouseout="this.bgColor=c">
bla bla
</TD>

Mais je préfère la méthode par css
plus béquille JS pour IE :
http://perso.wanadoo.fr/stephane.moriaux/truc/tables_highlight_cells_fr.htm
http://perso.wanadoo.fr/stephane.moriaux/truc/tables_highlight_rows_fr.htm

--
Stephane Moriaux et son [moins] vieux Mac

Avatar
ASM
YD wrote:

Malheureusement cette solution ne fonctionne qu'avec
IE ! Firefox transforme tous les attributs de couleur
sous forme "rgb(x,x,x)", le XOR serait à faire avec
chacune des valeurs composant la couleur... Quant à
Opera ??? Pas compris ce qu'il faisait, lui !


y a qu'à envoyer la couleur au navigateur
puis à la récupérer (traduite à sa sauce) depuis le navigateur

le truc est perdu qque part là dedant :
http://perso.wanadoo.fr/stephane.moriaux/truc/tables_highlight_rows_fr.htm

Pour Opera la surbrillance (ou le roll-over) par css
donne toutes satisfactions. cf : ci-dessus

--
Stephane Moriaux et son [moins] vieux Mac

Avatar
ASM
ASM wrote:

Pour Opera la surbrillance (ou le roll-over) par css
donne toutes satisfactions. cf : ci-dessous
http://perso.wanadoo.fr/stephane.moriaux/truc/tables_highlight_rows_fr.htm


Un test tout en JavaScript
(avec traduction des couleurs à la sauce du navigateur)
à voir, entre autres, avec Opera :
http://perso.wanadoo.fr/stephane.moriaux/truc/tables_highlight_rows_opera.htm

--
Stephane Moriaux et son [moins] vieux Mac