Flux rss
Collection CommentCaMarche.net
Rechercher : dans
Par : Pertinence Date Nom d'utilisateur
Statut : Résolu

Javascript et balise map

to-me, le mercredi 20 août 2008 à 14:16:40
Bonjour,

J'ai une page html, avec deux images superposées image1 et image2. image1 au début ne possède pas d'attribut src car je la veut transparente. Suivant le clic sur l'une des petites photos présentes sur image2 je souhaite que image1 apparaisse avec la petite photo. Mais je ne sais pas comment adapter mon code javaScript pour cela.


function ouvreimage() {

// ouvre l'image sur le premier plan de la page à partir du click sur une des photos sur image2

onclick = document.getElementById('zoneimage').innerHTML='<img src="photo1.jpg" />';

}

Les zones de clic sont faits avec les balises <map>

<area id="photo1" shape="rect" coords="100,8,300,20" href="javascript:ouvreimage()">

Merci d'avance pour votre attention...
Configuration: Windows XP
Firefox 2.0.0.16
Répondre à to-me  Signaler ce message aux modérateurs Aller au dernier message

1


  • 1
    Ce message vous semble utile, votez !
  • Ce message ne vous semble pas utile, votez !
  • Signaler ce message aux modérateurs
gaerebut, le mercredi 20 août 2008 à 14:25:23
Salut,

essaye de remplacer le href du <area ... par onclick et d'enlever le onclick de ta fonction et de mettre directement l'instruction document.GetEl....

Donc en gros ça donne ceci:

function ouvre_image() {
document.getElementById('zoneimage').innerHTML='<img src="photo1.jpg" alt="photo"/>';
} 

<area id="photo1" shape="rect" coords="100,8,300,20" onclick="ouvre_image()"> 


A+

Gaerebut Il y a 2 règles d'or pour réussir dans la vie :
-Règle 1:  ne jamais dire tout ce que l'on sait...
-Règle 2: ...
Répondre à gaerebut

2


  • 1
    Ce message vous semble utile, votez !
  • Ce message ne vous semble pas utile, votez !
  • Signaler ce message aux modérateurs
to-me, le mercredi 20 août 2008 à 14:33:34
Re,

Merci pour ton aide et ta réponse rapide.

Maintenant avec ce code je ne peux ouvrir qu'une photo et comme il existe 5photos je suis obligé de créer 5fonctions pour les 5 <area>.

Ne saurais tu pas comment optimiser mon code?

Merci.
Répondre à to-me

3


  • 1
    Ce message vous semble utile, votez !
  • Ce message ne vous semble pas utile, votez !
  • Signaler ce message aux modérateurs
gaerebut, le mercredi 20 août 2008 à 14:51:36
Ok!

heu est-ce que ce sera fixe ou tu pourra dans l'avenir rajouter ou supprimer des photos ?

Sinon, t'a cas essayer ceci :

function ouvre_image(image, photo) {
document.getElementById(image).innerHTML='<img src="'+photo+'" alt="photo"/>';
} 

<area id="photo1" shape="rect" coords="100,8,300,20" onclick="ouvre_image('zoneimage1','photo1.jpg')">
<area id="photo2" shape="rect" coords="200,9,400,30" onclick="ouvre_image('zoneimage2','photo2.jpg')">
<area id="photo3" shape="rect" coords="300,10,500,40" onclick="ouvre_image('zoneimage3','photo3.jpg')">
<area id="photo4" shape="rect" coords="400,11,600,50" onclick="ouvre_image('zoneimage4','photo4.jpg')">
<area id="photo5" shape="rect" coords="500,12,700,60" onclick="ouvre_image('zoneimage5','photo5.jpg')">


Bon, j'ai mis n'importe quoi pour les coordonées, j'ai mis des ID différents et des nom de zone ainsi que des nom d'image en JPG!
A toi d'adapter ton code!

Essayes le et dit moi ;)

A+

Gaerebut Il y a 2 règles d'or pour réussir dans la vie :
-Règle 1:  ne jamais dire tout ce que l'on sait...
-Règle 2: ...
Répondre à gaerebut

4


  • 1
    Ce message vous semble utile, votez !
  • Ce message ne vous semble pas utile, votez !
  • Signaler ce message aux modérateurs
to-me, le mercredi 20 août 2008 à 19:14:36
MERCI!

Je ne pourrais tester le code que demain car je ne suis pas sur mon lieu de travail. Promis je te tiens au courant
Dsl d'en demander tant mais entre temps j'ai essayé de caché image1 tant qu'on a pas cliqué sur une photo(ce qui complique la chose c'est que les photos ne sont pas des liens <a> mais des <area>)

Voici le code javascript

function visibilite(thingId)
{
var targetElement;
targetElement = document.getElementById(thingId) ;
if (targetElement.style.display == "none")
{
targetElement.style.display = "" ;
} else {
targetElement.style.display = "none" ;
}
}

voici la partie html

<div id="id_div_1" style="display:none;">

<img id="zoneimage" src="" style="display:block; position:absolute; left:220px; top:99px; width:500px; height:300px; z-index:1; " width="137" height="132" onclick="javascript:visibilite('id_div'_1); return false;">

</div>

mais ça ne fonctionne pas. image1 est invisible mais un clic sur une photo ne le rend pas visible.
Ensuite j'essaie de faire l'opération inverse, au début image 1 est visible et un click sur lui même doit le rendre invisible.

J'ai cherché partout mais les autres utillisent des liens pour conditions du genre

<a href="javascript:cacheId('contenu');">Fermer</a>

mais ça ne correspond pas à mon travail.

S.O.S

Merci
Répondre à to-me

5


  • 1
    Ce message vous semble utile, votez !
  • Ce message ne vous semble pas utile, votez !
  • Signaler ce message aux modérateurs
gaerebut, le jeudi 21 août 2008 à 09:34:22
Bonjour,

t'inquiète, tonton Gaetan est encore là ! (^_^)'

Essaye cela:

function visibilite(thingId)
{
var targetElement = document.getElementById(thingId).style.display ;
if (targetElement == "none")
targetElement = "" ;
else 
targetElemen = "none" ;
}

<div id="id_div_1" style="display:none;">CE TEXTE EST INVISIBLE AU DEPART</div>

<img id="zoneimage" src="" style="display:block; position:absolute; left:220px; top:99px; width:500px; height:300px; z-index:1; cursor: pointer " width="137" height="132" onclick="visibilite('id_div_1')" />


Une fois de plus, je ne peux pas te garantir que ça marchera car je test pas les codes que je te donne ... ^^

Bon, j'ai modifié quelques trucs:

- Dans ta fonction, j'ai allégé pas mal
- Ton div contenais l'image mais tu le mettais invisible et tu mettais l'image visible à l'intérieur, c'est pas terrible ... donc j'ai fermer le div avant de mettre l'image donc en gros, l'image n'est plus dans le div.
- J'ai mis une main sur l'image POUR QUE L'ON CROIT que ce soit un lien (j'insiste bien sur le fait que s'en est pas un ! ^^)
- Heu j'ai retiré le 'javascript:' sur l'événement onclick car il sert juste qu'on on met du code javascript et là on appelle juste une fonction. J'ai aussi retiré le 'return false' (test avec et test sans si ça ne marche pas)
- Tu passais à ta fonction l'id en paramètre MAIS tu fermais les simple quote avant la fin du nom
Tu mettais ça ==> 'id_div'_1
au lieu de ça ==> 'id_div_1'

Donc ça ne pouvait pas marcher ...

Test et redis moi ;)

A+

Gaerebut Il y a 2 règles d'or pour réussir dans la vie :
-Règle 1:  ne jamais dire tout ce que l'on sait...
-Règle 2: ...
Répondre à gaerebut

6


  • 1
    Ce message vous semble utile, votez !
  • Ce message ne vous semble pas utile, votez !
  • Signaler ce message aux modérateurs
to-me, le jeudi 21 août 2008 à 12:04:02
Bonjour!

Franchement, chapeau! J'aurais pas mieux fait pour optimiser mon code avec celle que tu m'as donné soit:

function ouvre_image() {
document.getElementById('zoneimage').innerHTML='<img src="photo1.jpg" alt="photo"/>';
}

<area id="photo1" shape="rect" coords="100,8,300,20" onclick="ouvre_image()">

Elle marche du tonnerre. En ce qui concerne la visibilité de la div j'ai du abandonner l'idée, une fois l'image ouverte, en cliquant dessus on la rend invisible mais si l'usager veut revoir les photos, cela devient impossible car on ne peut agir sur un objet non visible.
Alors j'ai changé voilà ce que j'ai fais, j'ai utilisé une image transparente. Finalement ça fonctionne sauf sous ie, aucun onclick ne répond :-(

Voici la partie html:

-de la photo qui est le lien pour changer transparent.gif en image1.jpg dans image1

<img id="image1" src="./image1.jpg" title="image 1" style="width:93px; height:69px;" onclick="ouvreimage1();return false;">

- de l'image1, le onclick remet l'image transparente si l'utilisateur ne veut plus voir les images en grand:

<img id="zoneimage" src=" " style="display:block; position:absolute; left:220px; top:121px; width:500px; height:300px; z-index:1; " onclick="javascript:transparent()">

Je crois que j'ai tout essayé sans succés.

Est-ce que c'est moi qui ne voit pas l'erreur?
Répondre à to-me

7


  • 1
    Ce message vous semble utile, votez !
  • Ce message ne vous semble pas utile, votez !
  • Signaler ce message aux modérateurs
gaerebut, le jeudi 21 août 2008 à 12:26:33
Si c'est possible regarde ici (clique sur le menu de droite "Mon compte" pour voir que ça marche), le div est invisible et se réaffiche:

==> http://socializebeta.ithink.fr/_v1/

Sinon, essaye ce code là plutôt.

Peut-être que ça marchera.

function visibilite(thingId)
{
var targetElement = document.getElementById(thingId).style.display ;
if (targetElement == "none")
targetElement = "block" ;
else 
targetElement = "none" ;
}

<div id="id_div_1" style="display:none;">CE TEXTE EST INVISIBLE AU DEPART</div>

<img id="zoneimage" src="" style="display:block; position:absolute; left:220px; top:99px; width:500px; height:300px; z-index:1; cursor: pointer " width="137" height="132" onclick="visibilite('id_div_1')" />


Redis moi

A+

Gaerebut

Il y a 2 règles d'or pour réussir dans la vie :
-Règle 1:  ne jamais dire tout ce que l'on sait...
-Règle 2: ...
Répondre à gaerebut

8


  • 1
    Ce message vous semble utile, votez !
  • Ce message ne vous semble pas utile, votez !
  • Signaler ce message aux modérateurs
to-me, le jeudi 21 août 2008 à 12:52:45
Merci Gaerebut! t'es un As, ça marche je viens de le tester mais ça ne correspond pas à la demande "d'en haut".
Merci encore tout de même j'ai quand même appris. De mon côté, j'ai localisé le pb le onclick dans mes balises images ne sont pas compatibles avec IE mais je ne trouve pas de solutions...

A+
Répondre à to-me

9


  • 1
    Ce message vous semble utile, votez !
  • Ce message ne vous semble pas utile, votez !
  • Signaler ce message aux modérateurs
gaerebut, le jeudi 21 août 2008 à 14:02:22
Re,

bon, apriori j'ai trouvé ce qui marche pas!
Essaye ce code et dit moi :

function visibilite(thingId)
{
var targetElement = document.getElementById(thingId);
if (targetElement.style.display == "none")
targetElement.style.display = "block" ;
else 
targetElement.style.display = "none" ;
}

<div id="id_div_1" style="display:none;">CE TEXTE EST INVISIBLE AU DEPART</div>

<img id="zoneimage" src="" style="display:block; position:absolute; left:220px; top:99px; width:500px; height:300px; z-index:1; cursor: pointer " width="137" height="132" onclick="visibilite('id_div_1')" />



Si ça ne marche pas, c'est peut-être que sous ie, tu bloque le Javascript ! lol

A+

Gaerebut Il y a 2 règles d'or pour réussir dans la vie :
-Règle 1:  ne jamais dire tout ce que l'on sait...
-Règle 2: ...
Répondre à gaerebut

10


  • 1
    Ce message vous semble utile, votez !
  • Ce message ne vous semble pas utile, votez !
  • Signaler ce message aux modérateurs
 to-me, le vendredi 22 août 2008 à 09:22:38
Bonjour gaerebut,

voici une solution: il faut mettre une balise <div> à la place de <img> et dans le code javascript définir une balise <img> qui contient l'image agrandie.Ainsi, Le onclick fonctionne sous IE.

Merci encore pour tes conseils, corrigés et remarques.
C'est sympa!

A+
Répondre à to-me

Résultats pour javascript et balise map

Probléme map, firefox >> IE (Résolu) Bonjour, alors voila mon probléme, Donc jai un code html avec javascript pour faire un :hover et une #map sur 4 images, sa marche trés bien sous firefox(comme d'habitude généralement) et sous IE, tadaaa sa marche pas >_ www.commentcamarche.net/forum/affich-2764186-probleme-map-firefox-ie
Javascript - Implantation du code A quel emplacement insérer le Javascript dans votre page HTML Il existe plusieurs façons d'inclure du JavaScript dans une page HTML : Grâce à la balise En mettant le code dans un fichier Grâce aux événements Dans la balise... www.commentcamarche.net/contents/javascript/jsimplant.php3
[javascript] insérer balises (Résolu) Bonjour, Je cherche à comprendre ce code car je voudrais le réutiliser pour mon bbcode. J'aimerais que lorsque l'on clique sur le bouton ou ici le lien , on affiche les balise dans le textarea. Malhereusement je comprends pas ce code qui... www.commentcamarche.net/forum/affich-5393553-javascript-inserer-balises

Résultats pour javascript et balise map

[Javascript] Interdire le clic droit de la sourisIl est possible d'empêcher que votre visiteur effectue un clic droit sur votre page. Ceci permet une protection relative de vote code source et de vos photos. Placez ce script entre les balises et de votre code HTML : www.commentcamarche.net/faq/sujet-1980-javascript-interdire-le-clic-droit-de-la-souris
[Javascript] Date de dernière modification de la pageIl est possible, en langage Javascript, d'afficher la date de dernière modification de la page Web grâce à la propriété lastModified de l'objet document : www.commentcamarche.net/faq/sujet-883-javascript-date-de-derniere-modification-de-la-page
Javascript - Modifier la hauteur (height) d'un élément HTMLPour modifier la hauteur d'un élément HTML en javascript, il suffit d'utiliser sa propriété de style "height". Pour cela vous pouvez y faire référence de la manière suivante : Si vous souhaitez connaître la hauteur (height) d'un bloc HTML, il... www.commentcamarche.net/faq/sujet-11740-javascript-modifier-la-hauteur-height-d-un-element-html

Résultats pour javascript et balise map

Javascript et balise select (Résolu)Bonjour, je voudrai recuperer la valeur d'une balise select pour l'utiliser dans une autre balise select se trouvant dans la même page et dans le même formulaire, je voulais donc savoir si une tel tâche est possible et si oui comment,... www.commentcamarche.net/forum/affich-7318848-javascript-et-balise-select
[style] Changement de couleur des liens (Résolu)Salut a tous!! J'ai trouvé une fonction qui permet de changer la couleur du lien en blanc quand la souris passe dessus : a:hover{color:white; } Mais le problème c'est que cela ne s'applique qu'aux liens textes...... www.commentcamarche.net/forum/affich-1410225-style-changement-de-couleur-des-liens
Un "post-it" sur une page web (Résolu)Bonjour, J'aimerais mettre un "post-it" (ou une image du style post-it) en avant plan sur une de mes pages web. Cette page est un formulaire et j'aimerais signaler, aux internautes, que je ne peux y répondre pour le moment. Est-ce possible ?... www.commentcamarche.net/forum/affich-4240206-un-post-it-sur-une-page-web

Résultats pour javascript et balise map

Télécharger JavaScript ObfuscatorJasob JavaScript Obfuscator est un logiciel de protection de code Javascript. Il intègre une interface simple. Il vous permet de convertir votre code Javascript en un code incompréhensible pour l’homme mais lisible pour le navigateur. Le logiciel... www.commentcamarche.net/telecharger/telecharger-34056889-javascript-obfuscator

Résultats pour javascript et balise map

Clarion MAP680 FranceMAP 680,GPS de voiture,Info trafic TMC,Mémoire:1024 Mo,Base de données ou carte incluses,Couleurs de l'écran:Couleur,Carte mémoire:SD/MMC,Antenne:Integrated,Taille de l'écran LCD (pouces):4.3,Taille de l'écran:10.92... www.commentcamarche.net/guide-achat/clarion-map680-france-1125908-fiche-technique
Clarion MAP680 EuropeMAP 680,GPS de voiture,Info trafic TMC,Type d'alimentation:lithium ion,Base de données ou carte incluses,Couleurs de l'écran:Couleur,Carte mémoire:SD/MMC,Taille de l'écran LCD (pouces):4.3,Taille de l'écran:10.92... www.commentcamarche.net/guide-achat/clarion-map680-europe-1109843-fiche-technique
Clarion MAP780 EuropeMAP 780,GPS de voiture,Info trafic TMC,Page web du produit:Anglais,Base de données ou carte incluses,Type d'alimentation:lithium ion,Divers:Guarantee manufacturer: 1 year,Hauteur:9.05 cm,Largeur:13.2 cm,Profondeur:2.2 cm,Taille de l'écran:10.92... www.commentcamarche.net/guide-achat/clarion-map780-europe-1109830-fiche-technique

Résultats pour javascript et balise map

MySpace, eBay, MSN et Google Maps disponibles sur les mobiles SFR(Paris - Relaxnews) - Les sites MySpace, eBay, et Google Maps, ainsi que le service de messagerie instantanée Windows Live Messenger (ex-MSN), seront disponibles gratuitement (hors coûts de communication) chez SFR dès la fin juin, a déclaré... www.commentcamarche.net/actualites/myspace-ebay-msn-et-google-maps-disponibles-sur-les-mobiles-sfr-3075396-actualite.php3

Résultats pour javascript et balise map

Javascript - Introduction au langage JavascriptQu'est-ce que le Javascript? Le Javascript est un langage de script incorporé dans un document HTML. Historiquement il s'agit même du premier langage de script pour le Web. Ce langage est un langage de programmation qui permet d'apporter des... www.commentcamarche.net/contents/javascript/jsintro.php3
Javascript - Les événementsQu'appelle-t-on un événement? Les événements sont des actions de l'utilisateur, qui vont pouvoir donner lieu à une interactivité. L'événement par excellence est le clic de souris, car c'est le seul que le HTML gère. Grâce au Javascript il est... www.commentcamarche.net/contents/javascript/jsevent.php3
Les balises HTMLHTML, un langage à balises Le HTML n'est pas un langage de programmation. Il s'agit d'un langage permettant de décrire la mise en page et la forme d'un contenu rédigé en texte simple. Une page HTML est ainsi un simple fichier texte contenant des... www.commentcamarche.net/contents/html/htmlbalise.php3