Le CSS de blocListe : { blablabla... background-image:url(images/taquetBlanc.jpg); background-repeat:repeat-y; background-position:left; }
La fonction Javascript sur le onmouseover/onmouseout :
function taquet(idObj){
if (!document.getElementById) return;
var o = document.getElementById(idObj).style;
var imgOn = "url(images/taquetRouge.jpg)";
var imgOff = "url(images/taquetBlanc.jpg)"; o.backgroundImage (o.backgroundImage imgOn) ? imgOff : imgOn;
}
Lorsque je survol ma DIV (class="blocListe") une barre verticale rouge, de la hauteur de mon bloc, apparaît calée à gauche.
Mon soucis est que tout fonctionne sur Firefox et IE,
mais sous Safari, la barre passe en rouge lors du survol,
mais ne redevient pas blanche lors du onmouseout... !?!
<?= a éviter c'est grave déprécié, ne marche que si short_open_tags est actif sur le serveur et n'existera bientot plus...
<?php echo 'bloc'.$i; ?>
après faut voir... ton élément se déclenche... tu as mis un alert() dans ta fonction pour voir s'il te renvoyais quelque chose avec ton getElement... perso je pense que o doit valloir null à vérifier... essaye avec
Oui, j'ai déjà vérifier avec alert();.
(sous Safari) Au départ, lors du premier survol,
l'image change normalement
("url(images/taquetBlanc.jpg)" -> "url(images/taquetRouge.jpg)").
Ensuite, backgroundImage reste bloqué et l'alert renvoie toujours "url(images/taquetRouge.jpg)".
J'ai viré les <?= et remplacé par <? echo
Mais le soucis ne venait pas de là (ceci dit bon à savoir, merci)
J'ai modifié ma fonction Javascript comme cela :
function taquet(obj,over){
if (!document.getElementById) return;
var o = document.getElementById(obj).style;
Et là ça fonctionne sous Safari, si je n'utilise pas le this dans : onmouseover="taquet(this, true)" !
Mais : onmouseover="taquet('<?php echo 'bloc'.$i ?>', true)"
Je vois pas bien la différence ?! Si ce n'est le "over"...
Que j'utilise this + obj.style.backgroundImage
OU <?php echo 'bloc'.$i ?> + document.getElementById(obj).style.backgroundImage
Cela est la même chose. non ?
Par contre, le soucis semble plus venir du système avec le modulo :obj.style.backgroundImage (obj.style.backgroundImage imgOn) ? imgOff : imgOn;OU o.backgroundImage (o.backgroundImage imgOn) ? imgOff : imgOn;
Là dans les deux cas, ça ne fonctionne pas sous Safari.