Zone réactive de lien d'une image : hors de l'image - HTML/CSS - Programmation
Marsh Posté le 10-07-2006 à 11:46:02
Tu fais un spacer (images transparente en .gif) du coup tu peux mettre ta zone réactive dessus. Enfin moi c'est ce que je ferais
Marsh Posté le 10-07-2006 à 11:49:28
Jcrois que j'ai dis une connerie j'avais pas vu ta page, t'es allez voir du coté du javascript ?
Marsh Posté le 10-07-2006 à 12:08:34
c'est ta fonction javascript qui merdouille ( tu aurais pu la donner aussi ça m'aurait evité de chercher )
Le handler est sur onmousemove sur document et tu n'actives le popup que quand la zone survolée contient un href="#???" ce qui n'est pas le cas de ton image.
En plus tes liens servent un peu à rien autour des images...
Perso j'aurais fait un truc comme ça:
1- tu vires les liens autour des images
2- tu écris les images comme ça:
Code :
|
3- tu fais un fonction init dans le onload:
Code :
|
Un truc dans le genre ... mais j'ai rien testé
par contre ça va te faire un warning à la validation sur l'attribut pop!
Si ça t'ennuye vraiment garde ton idée avec les A et adapte le code pour qu'au lieu de mettre le handler sur le noeud A(qui contient le href) tu le mettes sur l'un de ses fils qui est une image ( en gros tu fais un tonNoeudA.getElementsByTagName('A') et tu parcours les resultats pour mettre le handler au bon endroit).
Marsh Posté le 10-07-2006 à 12:50:30
/me vient de regarder la page et vient de comprendre
pkoi tu décales pas simplement ton div vers le bas ?
Marsh Posté le 10-07-2006 à 13:34:19
Arjuna a écrit : /me vient de regarder la page et vient de comprendre |
c'est pas le div qui gène, c'est son handler d'event qu'est mal placé
Il est juste sur le node A et pas sur l'image
Marsh Posté le 10-07-2006 à 13:34:27
Citation : pkoi tu décales pas simplement ton div vers le bas ? |
Bah je ne vois pas de div Arjuna ! J'utilise img et a, c'est tout. Le seul div c'est pour contenir ça et le texte.
Désolé anapajari, je ne m'attendais pas à ce que ce soit le js qu'il faille adapter.
Merci de ta suggestion mais comme tu l'as deviné je souhaite avoir une page valide.
Je t'avouerai ensuite que je ne comprends pas comment adapter le code javascript pour corriger tout ça.
Je vous demande encore un peu d'aide !
Citation : gk=window.Event?1:0; // navigateurs Gecko ou IE |
Marsh Posté le 10-07-2006 à 13:52:50
t'es pas très débrouillard
Bon je t'écris un truc comme ça sans vérifier en reprenant des bouts de ton truc; il y aura surement des trucs à corriger:
Code :
|
Dis moi si ça marche du premier coup que je joue au loto ce soir
Marsh Posté le 10-07-2006 à 13:54:35
sinon tu peux jeter un oeil sur ce script, qui fait a peu près ce que tu veux et que je trouve très bien fait:
http://lab.arc90.com/2006/05/unobt [...] notes.php$
démo ici:
http://lab.arc90.com/tools/sidenote/
Marsh Posté le 10-07-2006 à 14:44:06
ultratoonz a écrit :
|
Bon, à priori, on n'a pas le même rendu.
Sous IE7, la dernière image du menu se trouve sur une seconde ligne, et le texte de description des menus passe donc dessus.
Pour moi c'est ça le problème, et c'est pour ça que je dis de décaller le div vers le bas.
Pour le reste, ça marche très bien : quand on passe la souris sur un menu, ça affiche bien son texte.
Marsh Posté le 10-07-2006 à 14:47:00
Arjuna a écrit : Pour le reste, ça marche très bien : quand on passe la souris sur un menu, ça affiche bien son texte. |
Tu sors
Tu regardes pas au bon endroit
C'est la petite image paumé dans le 1er paragraphe qui merdouille, quand tu basses sur le bord orange qui l'entoure ça affiche un texte sur la PAO. Mais quand tu passes sur l'image ça marche pas!
Marsh Posté le 10-07-2006 à 15:10:29
Citation : t'es pas très débrouillard |
Désolé, j'ai sans doute oublié de dire que je n'ai jamais appris le javascript.
Citation : Tu sors |
Cool anapajari, Arjuna cherche juste à me filer un petit coup de main, même si sur ce coup là ce n'est effectivement pas très réussi.
Bref, merci d'avoir pris le temps de me refiler ton code mais une chose est sûre.... le loto c'est pas pour ce soir.
A moins que
Citation : <a href="#pop1" class="pop"><img src="images/def.gif" alt="Définition" width="11" height="8" class="def" /></a> |
n'était plus d'actualité.
Marsh Posté le 10-07-2006 à 15:23:31
anapajari a écrit : C'est la petite image paumé dans le 1er paragraphe qui merdouille, quand tu basses sur le bord orange qui l'entoure ça affiche un texte sur la PAO. Mais quand tu passes sur l'image ça marche pas! |
Fallait la trouver
Bon, ok, j'ai vu le truc.
Bon, je te laisse te débrouiller pour l'aider, j'aime pas ces trucs, je préfère résoudre les problème de Sylvain
Marsh Posté le 10-07-2006 à 15:41:16
ultratoonz a écrit :
|
pas grave hein !!!
ultratoonz a écrit :
|
Je pense que Arjuna a très bien compris que je plaisantais ... le smiley est très important
ultratoonz a écrit : Bref, merci d'avoir pris le temps de me refiler ton code mais une chose est sûre.... le loto c'est pas pour ce soir. |
En fait j'étais pas si loin
Deux trois problèmes de scope de variable et un ou deux replace trop violent...
ultratoonz a écrit : A moins que
n'était plus d'actualité. |
Nan ça tu touches pas!!!
Donc la fonction ça donne:
Code :
|
Et tu vires tout le js qu'il y avait avant pour éviter les conflits!
Arjuna a écrit : Fallait la trouver |
Moi j'ai fini ...
Marsh Posté le 10-07-2006 à 21:47:57
Merci anapajari, ça marche du tonnerre ... sur Firefox ! lol
Comme je ne voudrai pas mettre de côté la moitié de mes visiteurs (plus de la moitié surfe sur Firefox et Safari !), comprenez ceux qui utilisent IE je me permets de vous demander s'il est possible de mettre quelque chose en place pour que cela fonctionne aussi sous Internet Explorer ?
Encore merci !
Marsh Posté le 10-07-2006 à 22:35:05
Hello,
En attendant un truc qui devrait fonctionne sur tous les navigateurs avec ton ancien script (mais bon anaparaji va peut-être te faire une petite modif du script pour IE si besoin)
Puisque l'image pose problème en étant "devant" le lien, tu peux feinter de cette manière:
- tu mets l'image en visibility:hidden pour conserver la bonne taille
- tu mets l'image en background du lien
ça donne ça à rajouter dans ton CSS:
Code :
|
Marsh Posté le 10-07-2006 à 22:45:13
Salut Pitsy,
Merci ça fonctionne parfaitement.
Si anapajari souhaite poster son script (très utile) il est évidemment le bienvenu. J'ai bien aimé le fait de devoir repasser sur l'image pour faire disparaître la div.
Je trouve cela plus accessible (possibilité de sélectionner le texte par exemple), mais ta suggestion me satisfait Pitsy, merci beaucoup !
Je passerai le topic en réglé quand notre ami anapajari nous dira s'il souhaite ou non adapter son code pour IE.
Marsh Posté le 11-07-2006 à 09:31:42
ah ouais ça marche pas sous IE, sorry
Bon en fait il y a quasiment rien à corriger, c'est juste un problème d'attribut href.
Pour FF, le href de tes balises A c'est : #popX
Pour IE, c'est: http://www.tonsite.com/tonRep/tapage.html#pop1
donc tous les tests sur le href merdouillent
Il suffit de changer:
Code :
|
par
Code :
|
et
Code :
|
par
Code :
|
et ça résoud les problèmes.
Voici donc la "dernière" version, y'a pas de commentaires ( un peu la flemme) mais si quelqu'un a une question qu'il hésite po:
Code :
|
Marsh Posté le 11-07-2006 à 09:48:16
ReplyMarsh Posté le 11-07-2006 à 10:03:53
ultratoonz a écrit : Thanks again mais ça marche pô. |
Si ça marche ce coup ci j'ai vérifié sur IE & FF
T'es sur que tu as bien copié?
Marsh Posté le 11-07-2006 à 12:54:00
anapajari a écrit : Si ça marche ce coup ci j'ai vérifié sur IE & FF |
Ben copié c'est pourtant ma spécialité ! lol
Ca ça n'a pas bougé.
Citation : <a href="#pop1" class="pop"><img src="images/def.gif" alt="Définition" width="6" height="6" class="def" /></a> |
Et voilà la js que je viens de mettre en ligne quand même :
Citation : var gk=window.Event?1:0; // navigateurs Gecko ou IE |
PS : dans la section M#quettiste et sous Firefox je rencontre un problème que je ne rencontre dans aucune autre rubrique (pourtant j'utilise les mêmes classes) avec l'image class="def" qui se comporte comme si il y avait un margin-right important / alors que tout s'affiche correctement ailleurs donc.
Si vous avez une idée pour ça aussi, je suis client !
Marsh Posté le 11-07-2006 à 13:25:37
tiens voila la page que j'ai utilisée pour tester
Code :
|
Tu pourras vérifier que ça marche bien
Est ce que chez toi tu pourrais rajouter
Code :
|
juste en dessous de
Code :
|
Et me dire si ça fait pouet!
Et le 2eme pb on verra ensuite!
Marsh Posté le 11-07-2006 à 13:37:48
Euh ouais ça sent pas très bon. lol Une fenêtre s'ouvre et ça fait bien pouet!
Mais dans la page que tu me donnes je survole le lien mais en vain : toujours pas d'affichage de la div.
Marsh Posté le 11-07-2006 à 13:45:16
ReplyMarsh Posté le 11-07-2006 à 14:00:21
Bon, je récapétète :
Citation : <a href="#pop1" class="pop"><img src="images/def.gif" alt="Définition" width="6" height="6" class="def" /></a> |
Citation : div#gauche a.pop { } |
Et le javascript est texto ce qui est donné. Je l'ai mis en ligne pour que tu puisses le vérifier.
Marsh Posté le 11-07-2006 à 14:01:23
Bon, je récapétète :
Citation : <a href="#pop1" class="pop"><img src="images/def.gif" alt="Définition" width="6" height="6" class="def" /></a> |
Citation : div#gauche a.pop { } |
Et le javascript est texto ce qui est donné. Je l'ai mis en ligne pour que tu puisses le vérifier mais c'est du copier-coller garanti.
Marsh Posté le 11-07-2006 à 14:24:20
pour rire défini tes styles
Code :
|
Directement dans la page html au lieu de les mettres dans un import ...
Et dis moi ce qu'il se passe!
Marsh Posté le 12-07-2006 à 10:33:13
Bah alors juste pour rire, hein ? lol
La page se trouve à la racine de mon site : index-cssdanspage.php C'était pas plus cher alors j'ai mis tous les styles dedans.
Marsh Posté le 10-07-2006 à 11:34:57
Bonjour,
Une div doit apparaître lorsque l'internaute survole une image (insérée dans le corps de texte).
Malheureusement la zone qui permet à la div de s'afficher est située juste dessous et juste au dessus de l'image !
Comment faire en sorte que lorsque l'image est survolée la div s'affiche ?
Vous pouvez voir ce problème dans le premier paragraphe de ma homepage (cf signature), l'image est sur la troisième ligne de texte.
<a href="#pop1" class="pop"><img src="images/def.gif" alt="Définition" width="11" height="8" class="def" /></a>
div#gauche img.def { color:#FF9100; width:11px; height:8px;
}
#pop1 {
position:absolute;
top:50px;
display:none;
width: 18em;
border:2px double black;
background: #FF9100;
z-index: 1500;
font-size: 100%;
margin-left:0px;
margin-right:0px;
margin-top:30px;
}
---------------
Consultant SEO