Pages :
Bonjour,

J'essaye d'adapter le tuto ici: http://css.alsacreations.com/Tutoriels-JavaScript/Faire-apparaitre-des-popups-sans-nouvelle-fenetre

sur mon site... à l'adresse suivante: http://www.princessedunjour.com

Et j'ai bon nombre de problèmes Smiley bawling

1/ quand on arrive sur la page, tout s'affiche y compris la popup et quand la page a terminé de se charger, la pop disparait
=> comment faire pour que la pop ne s'affiche pas lors du téléchargement de la page ?

2/ quand on clique sur le petit visuel du collier (celui le plus en bas de page), le pop s'affiche bien mais:
- je n'arrive pas à le positionner où je le souhaite
- je n'arrive pas à lui donner une taille précise (le lien "fermer la boite en cliquant dessus prend toute la largeur de la page, alors qu'il devrait faire 200px de long...)
- sur ff, le fait de cliquer sur le petit visuel du collier décale la page entière de qq pixels sur la gauche.

Voici mon XHTML

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr" lang="fr">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<meta name="robots" content="noindex, nofollow" />
<link rel="stylesheet" type="text/css" href="fiche-produit.css" />
<link rel="shortcut icon" type="image/x-icon" href="images/favicon.ico" />
<script type="text/javascript" src="popup.js"></script>
<style type="text/css">
</style>
</head>
<body>
<div id="page">
      		<div id="header">
        	<a href="index.htm" id="Logo"> <img src="images/Logo.gif" alt="Logo Princesse d'un Jour" width="274" height="58" title="Aller à l'accueil"/></a>
        	<h1><img src="images/h1.gif" alt="Bijoux et accessoires pour le mariage"/></h1>
	    	<p id="langue">Langue</p>
			<ul id="menu_langue">
	    	<li><a id="english" title="English version" href="http://www.english.princessedunjour.com">EN</a></li>
	    	<li><a id="français" title="version française" href="index.htm">FR</a></li>
	    	</ul>
      			</div>
      		<div id="haut">
        	<ul id="menuhaut">
            <li><a id="menu1" title="Aller à l'accueil" href="index.htm">ACCUEIL</a></li>
	        <li><a id="menu2" title="Nos collections de bijoux pour le mariage" href="collections-page1.htm">COLLECTIONS</a></li>
	        <li><a id="menu3" title="Trouver un point de vente" href="points-de-vente.htm">POINTS DE VENTE</a></li>
	        <li><a id="menu4" title="Nos secrets de fabrication" href="atelier-de-creation.htm">ATELIER DE CREATION</a></li>
	        <li><a id="menu5" title="Tout savoir sur Princesse d'un Jour" href="a-propos.htm">A PROPOS</a></li>
	        <li><a id="menu6" title="Contacter la créatrice" href="contact.htm">CONTACT</a></li>
            </ul>
      			</div>
      <div id="gauche">
         <ul id="menugauche">
					<li><a id="menua" title="Découvrir toute la collection" href="collections-page1.htm">TOUTE LA COLLECTION</a></li>
	             	<li><a id="menub" title="Les modèles en perles de rocaille" href="perles-de-rocaille.htm">PERLES DE ROCAILLE</a></li>
	             	<li><a id="menuc" title="Les modèles en perles nacrées" href="perles-nacrees.htm">PERLES NACREES</a></li>
	             	<li><a id="menud" title="Les modèles en cristal Swarovski" href="cristal-swarovski.htm">CRISTAL SWAROVSKI</a></li>
	             	<li><a id="menue" title="Les modèles en fleurs de soie" href="fleurs-de-soie.htm">FLEURS DE SOIE</a></li>
	             	<li><a id="menuf" title="Les modèles en guipure brodée" href="guipure-brodee.htm">GUIPURE BRODEE</a></li>
        </ul>
      </div>
      <div id="centre">
       <div id="zone_haut">
	    <p class="breadcrumb">Vous êtes ici: <a href="index.htm">Accueil</a>    |<a id="coll" href="collections-page1.htm">Collection</a>    |<a id="page1" href="collections-page1.htm">Page 1</a>    |<a id="modele" href="parure-camelia.htm">Parure Camélia</a></p>
		<div id="acces_pages">
	 	<a href="parure-estella.htm">Modèle suivant</a> >
		</div>
		<div id="produit1"><a href="#"><img src="images/camelia-fp.jpg" alt="La Parure Camélia" width="180" height="225" /><span>Agrandir</span></a></div>
		<div id="descriptif">
		<h2>Camélia</h2>
		<h3>"Toute la finesse et la délicatesse de la fleur de Camélia"</h3>
		<p id="composition">- Composition: Perles de rocaille à facettes et perles de verre nacrées. Fermoirs et anneaux en argent massif 925</p>
		<p id="coloris">- Coloris: crème</p>
		<p id="autres_coloris">- Coloris également disponibles: blanc ou autres coloris sur mesure</p>
		<p id="tarifs">- Tarifs: contactez nos boutiques partenaires>> </p>
		<p id="compo">- Parure composée de: Collier | Bracelet | Pics à cheveux | Boucles d'oreilles</p>
		</div>
<div id="element1"><a href="#pop1" class="pop"><img src="images/camelia-fp-collier2.jpg" alt="Collier Camélia" width="90" height="90" title="cliquer pour agrandir" /><span>Collier</span></a></div>

<div id="acces_pagesbas">
	 				 	<a href="parure-estella.htm">Modèle suivant</a> >
		 </div>
      </div>
	  </div>
      <div id="pied">
        <p id="mentions">Copyright © 2006 Princesse d'un Jour. Tous droits réservés. Princesse d'un Jour® est une marque déposée.</p>
		<p id="partenaires">Sites partenaires : <a href="http://www.noces-provencales.com">Organisation de mariage en provence</a> avec Noces-Provencales.com | <a href="http://www.notremariage.net/decouvrir.htm">NotreMariage.net</a></p>
      </div>
	  <!-- Les boîtes popup sont placées tout en bas du document -->

 </div>
<div id="pop1">
<img src="images/camelia-fp.jpg" alt="La Parure Camélia" width="180" height="225" />
<div class="fermer">fermer la boite en cliquant dessus</div>
</div>


</body>
</html>


et ma CSS

*{margin:0;padding:0;}
body{background:url(images/background2.gif) repeat-y center top;font:11px/16px Geneva, Arial, Tahoma, sans-serif;margin:0;padding:0;}
img{border-style:none;border-width:0;}

#page{text-align:left;width:743px;background-color:#FFF;border:1px solid #6C3089;margin:5px auto;}

#header{height:67px;}
h1{display:inline;margin-left:15px;}
p#langue{position:absolute;display:inline;color:#666;padding-top:28px;padding-left:40px;}
#menu_langue{position:absolute;display:inline;list-style-type:none;width:40px;padding-top:30px;padding-left:80px;}
#menu_langue li{float:left;}
#menu_langue a{float:left;text-align:center;line-height:12px;color:#666;text-decoration:none;}
#menu_langue a:hover{color:#6C3089;text-decoration:underline;}
#english{width:20px;border-right:1px solid #666;}
#français{padding-left:3px;width:15px;}
#menu_langue a:focus,#menu_langue a:active{text-decoration:underline;color:#999;}

#haut{float:left;width:743px;border-top:1px solid #6C3089;border-bottom:1px solid #6C3089;margin:2px 0 0;}
ul#menuhaut{clear:both;width:100%;letter-spacing:3px;list-style-type:none;font-size:9px;text-align:center;}
#menuhaut li{float:left;}
#menuhaut a{display:block;color:#FFF;text-decoration:none;text-align:center;line-height:20px;}
#menu1{width:90px;background-color:#8E6784;color:#000;}
a#menu2{color:#6C3089;}
#menu2{width:122px;background:#FFF;}
#menu3{width:160px;background:#8E6784;}
#menu4{width:190px;background:#8E6784;}
#menu5{width:90px;background:#8E6784;}
#menu6{width:91px;background:#8E6784;}

#gauche{float:left;width:150px;list-style-type:none;text-decoration:none;line-height:35px;padding-left:5px;margin-top:25px;color:#6C3089;}
#menugauche a{text-decoration:none;color:#666;}
ul#menugauche{list-style-type:none; letter-spacing: 0.5px;font-size:10px;}
li#menugauche{float:left; margin-left:10px;padding-left:0px;}
a#menua{color:#6C3089;font-weight:900;}

#centre{float:left;height:400px;padding-top:5px;width:588px;color:#666;}
#zone_haut{position:relative;}
p.breadcrumb{position:relative;top:5px;font-size:11px;color:#666;width:150px;display:inline;}
p.breadcrumb a{color:#666;text-decoration:none;}
p.breadcrumb a:hover{text-decoration:underline;color:#6C3089;}
a#coll{padding-left: 3px;}
a#page1{padding-left: 3px;}
a#modele{padding-left: 3px;}
a#produit:hover{text-decoration:none;color:#666;}
#acces_pages{position:absolute;top:10px;right:35px;line-height:20px;}
#pages{list-style-type:none;width:100%;line-height:20px;}
#pages li{float:right;}
#pages a{float:left;text-align:center;line-height:12px;width:10px;color:#666;text-decoration:none;}
#pages a:hover{text-decoration:underline; color:#6C3089;}
a.lastpage{letter-spacing:-1px;padding-left:3px;}
#pages a.selected{font-weight:700;color:#6C3089;text-decoration:none;}
#pages a.selected:hover{text-decoration:none;}
a.firstpage{letter-spacing:-1px;padding-right:4px;}

#pages a:focus,#pages a:active,p.breadcrumb a:focus,p.breadcrumb a:active{text-decoration:underline;color:#999;}

#produit1{position:relative;display:block;top:15px;width:120px;text-decoration:none;}
#element1{position:absolute; top:290px;left:0px;}
#element2{position:absolute; top:290px;left:150px;}
#element3{position:absolute; top:290px;left:300px;}
#element4{position:absolute; top:290px;left:450px;}
#element5{position:absolute; top:290px;left:600px;}
#descriptif{position:absolute;top:31px;left:200px;}
h2{color:#6C3089;font-weight:bold; font-size: 14px;}
h3{padding-top:10px;font-weight:bold; font-size: 13px;}
p#composition{padding-top:10px;}
p#coloris{padding-top:5px;}
p#autres_coloris{padding-top:5px;}
p#tarifs{padding-top:5px;}
p#compo{padding-top:5px;}
#produit1 a,#element1 a,#element2 a,#element3 a,#element4 a,#element5 a{text-decoration:none;color:#666;display:table-cell;text-align:center;display:inline-block;}
#produit1 img,#element1 img,#element2 img,#element3 img,#element4 img, #element5 img{display:block;border-style:none;border-width:0;}

#acces_pagesbas{position:absolute;top:400px;right:35px;line-height:20px;}
#pagesbas{list-style-type:none;width:100%;line-height:20px;}
#pagesbas li{float:right;}
#pagesbas a{float:left;text-align:center;line-height:12px;width:10px;color:#666;text-decoration:none;}
#pagesbas a:hover{text-decoration:underline; color:#6C3089;}
#pagesbas a.selected{font-weight:700;color:#6C3089;text-decoration:none;}
#pagesbas a.selected:hover{text-decoration:none;}

#pied{clear:both;height:30px;text-align:center;padding-bottom:5px;}
#pied a{text-decoration:none;color:#666;}
partenaires a{color:#666;}
p#mentions,p#partenaires{color:#666;font-size:9px;}


#pop {
display: none;
position: absolute;
width: 300px;
background: #f5f5dc;
z-index: 500;
cursor: pointer;
font-size: 80%;
}
.fermer {
margin: 0.5em 0 0 0;
border-top: 1px solid black;
color: black;
text-align: center;
}


Le .JS est exactement le même que celui du tuto...

Si vous avez des idées ?

Merci à tous
Modifié par pp51 (03 May 2007 - 14:00)
Modérateur
Salut pp51, Smiley smile

Pour que la popup n'apparaisse pas au lancement de la page, il faut que tu finisses ta page html en ajoutant un bout de script comme ceci :

...
<div id="pop1">
	<img src="images/camelia-fp.jpg" alt="La Parure Camélia" width="180" height="225" />
	<p class="fermer">fermer la boite en cliquant dessus</p>
</div>
<script type="text/javascript">
<!--
var oPop = document.getElementById('pop1');
oPop.style.display = 'none';
//-->
</script>
</body>
</html>


Ensuite, pour ton image qui s'affiche dans la popup, tu dois la laisser aux dimensions indiquées dans le code html... Si tu veux qu'elle soit plus grande, agrandit donc l'image dans ton éditeur graphique mais ne cherche pas à la redimensionner via le code.

Pour ce qui est de la mise en page de ta popup, j'ajoute ci-dessous la classe 'pops' à ta div en plus de l'id pop1... Tu devras donc définir cette classe dans ton CSS...

Je te refile déjà le code JS :

function pop()
{
    var myAs = document.getElementsByTagName('a');
    for (var a = 0; a < myAs.length; ++a) {
	// Si le lien a une classe de type pop
        if (myAs[a].className == 'pop') {
	// on extrait l'id de la popup à partir du href
            var pop = document.getElementById(myAs[a].href.substring(myAs[a].href.lastIndexOf('#') + 1));
	// si la popup existe on l'affiche (display block)
            if (pop) {       
                pop.style.display = 'none';
                myAs[a].onclick = function() {
                    var thisPopup = document.getElementById(this.href.substring(this.href.lastIndexOf('#') + 1))
                    thisPopup.style.display = (thisPopup.style.display == 'none') ? 'block' : 'none';
                    thisPopup.setAttribute('class','pops');
                    return false;
                };
		// on efface la popup en cliquant dessus
                pop.onclick = function()
                {
                    this.style.display = 'none';
                };
            }
        }
    }
}
 
window.onload = pop;


Ensuite, voici un exemple de ce que tu pourrais mettre pour le fichier CSS pour contrôler la popup...

.pops { position: relative; top: -400px; margin: 0 auto; width: 180px; }


Sinon, ben je n'ai pas constaté de décalage de ta page en cliquant sur le collier...

++ Smiley cligne
Modifié par koala64 (26 Jul 2006 - 03:49)
Bonjour koala64 Smiley cligne

Tout d'abord merci Smiley biggrin

Etape 1: j'ai ajouté le bout de script que tu m'as donné, et la pop up ne s'affiche plus au chargement de la page. C'est déjà ça Smiley lol

Revoici donc mon xhtml


<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr" lang="fr">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<meta name="robots" content="noindex, nofollow" />
<link rel="stylesheet" type="text/css" href="fiche-produit.css" />
<link rel="shortcut icon" type="image/x-icon" href="images/favicon.ico" />
<script type="text/javascript" src="popup.js"></script>
<style type="text/css">
</style>
</head>

<body>

<div id="page">
      	<div id="header">
       	<a href="index.htm" id="Logo"> <img src="images/Logo.gif" alt="Logo Princesse d'un Jour" width="274" height="58" title="Aller à l'accueil"/></a>
       	<h1><img src="images/h1.gif" alt="Bijoux et accessoires pour le mariage"/></h1>
    	<p id="langue">Langue</p>
	<ul id="menu_langue">
        <li><a id="english" title="English version" href="http://www.english.princessedunjour.com">EN</a></li>
        <li><a id="français" title="version française" href="index.htm">FR</a></li>
	  </ul>
         </div>

      		<div id="haut">
        	<ul id="menuhaut">
               <li><a id="menu1" title="Aller à l'accueil" href="index.htm">ACCUEIL</a></li>
               <li><a id="menu2" title="Nos collections de bijoux pour le mariage" href="collections-page1.htm">COLLECTIONS</a></li>
	       <li><a id="menu3" title="Trouver un point de vente" href="points-de-vente.htm">POINTS DE VENTE</a></li>
	      <li><a id="menu4" title="Nos secrets de fabrication" href="atelier-de-creation.htm">ATELIER DE CREATION</a></li>
	      <li><a id="menu5" title="Tout savoir sur Princesse d'un Jour" href="a-propos.htm">A PROPOS</a></li>
             <li><a id="menu6" title="Contacter la créatrice" href="contact.htm">CONTACT</a></li>
             </ul>
             </div>

      <div id="gauche">

         <ul id="menugauche">

	<li><a id="menua" title="Découvrir toute la collection" href="collections-page1.htm">TOUTE LA COLLECTION</a></li>

	 <li><a id="menub" title="Les modèles en perles de rocaille" href="perles-de-rocaille.htm">PERLES DE ROCAILLE</a></li>

	  <li><a id="menuc" title="Les modèles en perles nacrées" href="perles-nacrees.htm">PERLES NACREES</a></li>

	  <li><a id="menud" title="Les modèles en cristal Swarovski" href="cristal-swarovski.htm">CRISTAL SWAROVSKI</a></li>

	  <li><a id="menue" title="Les modèles en fleurs de soie" href="fleurs-de-soie.htm">FLEURS DE SOIE</a></li>

	   <li><a id="menuf" title="Les modèles en guipure brodée" href="guipure-brodee.htm">GUIPURE BRODEE</a></li>

        </ul>

      </div>

      <div id="centre">

       <div id="zone_haut">

	    <p class="breadcrumb">Vous êtes ici: <a href="index.htm">Accueil</a>    |<a id="coll" href="collections-page1.htm">Collection</a>    |<a id="page1" href="collections-page1.htm">Page 1</a>    |<a id="modele" href="parure-camelia.htm">Parure Camélia</a></p>

		<div id="acces_pages">

	 	<a href="parure-estella.htm">Modèle suivant</a> >

		</div>

		<div id="produit1"><a href="#"><img src="images/orchidee-fp.jpg" alt="La Parure Camélia" width="180" height="225" /><span>Agrandir</span></a></div>

		<div id="descriptif">

		<h2>Camélia</h2>

		<h3>"Toute la finesse et la délicatesse de la fleur de Camélia"</h3>

		<p id="composition">- Composition: Perles de rocaille à facettes et perles de verre nacrées. Fermoirs et anneaux en argent massif 925</p>

		<p id="coloris">- Coloris: crème</p>

		<p id="autres_coloris">- Coloris également disponibles: blanc ou autres coloris sur mesure</p>

		<p id="tarifs">- Tarifs: contactez nos boutiques partenaires>> </p>

		<p id="compo">- Parure composée de: Collier | Bracelet | Pics à cheveux | Boucles d'oreilles</p>

		</div>

<div id="element1"><a href="#pop1" class="pop"><img src="images/orchidee-fp-collier.jpg" alt="Collier Camélia" width="90" height="90" title="cliquer pour agrandir" /><span>Collier</span></a></div>



<div id="acces_pagesbas">

	 				 	<a href="parure-estella.htm">Modèle suivant</a> >
		 </div>
      </div>
	  </div>

      <div id="pied">
        <p id="mentions">Copyright © 2006 Princesse d'un Jour. Tous droits réservés. Princesse d'un Jour® est une marque déposée.</p>
		<p id="partenaires">Sites partenaires : <a href="http://www.noces-provencales.com">Organisation de mariage en provence</a> avec Noces-Provencales.com | <a href="http://www.notremariage.net/decouvrir.htm">NotreMariage.net</a></p>
      </div>

	  
 </div>
<!-- Les boîtes popup sont placées tout en bas du document -->
<div id="pop1">

	<img src="images/camelia-fp.jpg" alt="La Parure Camélia" width="180" height="225" />

	<p class="fermer">fermer la boite en cliquant dessus</p>

</div>

<script type="text/javascript">

<!--

var oPop = document.getElementById('pop1');

oPop.style.display = 'none';

//-->

</script>

</body>

</html>


Etape 2: j'ai recrée mon fichier popup.js avec ton code

Etape3:
a écrit :

our ce qui est de la mise en page de ta popup, j'ajoute ci-dessous la classe 'pops' à ta div en plus de l'id pop1... Tu devras donc définir cette classe dans ton CSS...


j'ai donc mis
<div id="pop1" class="pops">


Etape 4: je teste Smiley langue
Résultat: la pop ne s'affiche plus en cliquant sur le lien Smiley bawling

Voici la partie de ma CSS pour le pop

#pop {
display: none;
position: absolute;
width: 300px;
background: #f5f5dc;
z-index: 500;
cursor: pointer;
font-size: 80%;
}
.pops
{ position: relative; top: -400px; margin: 0 auto; width: 180px; }

.fermer {
margin: 0.5em 0 0 0;
border-top: 1px solid black;
color: black;
text-align: center;
}


Merci pour ton aide Smiley biggrin
Modérateur
ah mais non ! Smiley lol

La classe s'ajoute automatiquement (lorsque tu lances l'ouverture de la popup) à partir du script via cette ligne :

thisPopup.setAttribute('class','pops');

Tu n'as pas à la rajouter dans la partie html donc laisse simplement:

<div id="pop1">...</div>

et çà se fera tout seul... Smiley cligne
Modifié par koala64 (26 Jul 2006 - 12:05)
ah bon Smiley biggol

Je l'ai donc retiré du code Html, mais cela ne change rien, pas d'affichage du pop lors d'un clic sur la vignette.

Je ne vois donc pas ce qui cloche.

J'ai bien un fichier que j'ai appelé popup.js et une CSS de mise en page...
cela peut-il venir de ce bout de code ?


#pop {
display: none;
position: absolute;
width: 300px;
background: #f5f5dc;
z-index: 500;
cursor: pointer;
font-size: 80%;

}


Merci encore Smiley cligne
Re bonjour,

Bon finalement, j'ai repris tout depuis le début du tuto.... j'arrive au bout de mes peines, enfin presque...

Voir ici, la pop up ne s'affiche plus lors du chargement de la page, ce qui est ok !

upload/3889-exemplepage.gif

Maintenant, voici ce que j'obtiens en cliquant sur la petite vignette du collier:
upload/3889-pageavecpop.gif

Voici les problèmes que je n'arrive pas à résoudre:

1/ je n'arrive pas à placer la pop où je le souhaite (j'ai essayé avec les absolute et relative, mais rien n'y fait, cette pop ne veut pas bouger...)

2/ Bizarrement, j'ai l'impression que la pop prend toute la largeur disponible sur ma page, alors que j'ai bien spécifié un width de 200px

mon xhtml

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr" lang="fr">
<head>
<title>Une popup accessible</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-15" />
<link rel="stylesheet" type="text/css" href="fiche-produit.css" />
<link rel="shortcut icon" type="image/x-icon" href="images/favicon.ico" />
<script type="text/javascript" src="popup.js"></script>
</head>
<body>
<div id="page">
      		<div id="header">
        	<a href="index.htm" id="Logo"> <img src="images/Logo.gif" alt="Logo Princesse d'un Jour" width="274" height="58" title="Aller à l'accueil"/></a>
        	<h1><img src="images/h1.gif" alt="Bijoux et accessoires pour le mariage"/></h1>
	    	<p id="langue">Langue</p>
			<ul id="menu_langue">
	    	<li><a id="english" title="English version" href="http://www.english.princessedunjour.com">EN</a></li>
	    	<li><a id="français" title="version française" href="index.htm">FR</a></li>
	    	</ul>
  </div>
      		<div id="haut">
        	<ul id="menuhaut">
            <li><a id="menu1" title="Aller à l'accueil" href="index.htm">ACCUEIL</a></li>
	        <li><a id="menu2" title="Nos collections de bijoux pour le mariage" href="collections-page1.htm">COLLECTIONS</a></li>
	        <li><a id="menu3" title="Trouver un point de vente" href="points-de-vente.htm">POINTS DE VENTE</a></li>
	        <li><a id="menu4" title="Nos secrets de fabrication" href="atelier-de-creation.htm">ATELIER DE CREATION</a></li>
	        <li><a id="menu5" title="Tout savoir sur Princesse d'un Jour" href="a-propos.htm">A PROPOS</a></li>
	        <li><a id="menu6" title="Contacter la créatrice" href="contact.htm">CONTACT</a></li>
            </ul>
  </div>

      <div id="gauche">
         <ul id="menugauche">
					<li><a id="menua" title="Découvrir toute la collection" href="collections-page1.htm">TOUTE LA COLLECTION</a></li>
	             	<li><a id="menub" title="Les modèles en perles de rocaille" href="perles-de-rocaille.htm">PERLES DE ROCAILLE</a></li>
	             	<li><a id="menuc" title="Les modèles en perles nacrées" href="perles-nacrees.htm">PERLES NACREES</a></li>
	             	<li><a id="menud" title="Les modèles en cristal Swarovski" href="cristal-swarovski.htm">CRISTAL SWAROVSKI</a></li>
	             	<li><a id="menue" title="Les modèles en fleurs de soie" href="fleurs-de-soie.htm">FLEURS DE SOIE</a></li>
	             	<li><a id="menuf" title="Les modèles en guipure brodée" href="guipure-brodee.htm">GUIPURE BRODEE</a></li>
        </ul>
      </div>

      <div id="centre">
       <div id="zone_haut">
	    <p class="breadcrumb">Vous êtes ici: <a href="index.htm">Accueil</a>    |<a id="coll" href="collections-page1.htm">Collection</a>    |<a id="page1" href="collections-page1.htm">Page 1</a>    |<a id="modele" href="parure-camelia.htm">Parure Camélia</a></p>
		<div id="acces_pages">
	 	<a href="parure-estella.htm">Modèle suivant</a> >
		</div>

		<div id="produit1"><a href="#"><img src="images/orchidee-fp.jpg" alt="La Parure Camélia" width="180" height="225" /><span>Agrandir</span></a></div>

		<div id="descriptif">

		<h2>Camélia</h2>

		<h3>"Toute la finesse et la délicatesse de la fleur de Camélia"</h3>

		<p id="composition">- Composition: Perles de rocaille à facettes et perles de verre nacrées. Fermoirs et anneaux en argent massif 925</p>

		<p id="coloris">- Coloris: crème</p>

		<p id="autres_coloris">- Coloris également disponibles: blanc ou autres coloris sur mesure</p>

		<p id="tarifs">- Tarifs: contactez nos boutiques partenaires>> </p>

		<p id="compo">- Parure composée de: Collier | Bracelet | Pics à cheveux | Boucles d'oreilles</p>

		</div>

<div id="element1">
<a href="#pop1" class="pop"> <img src="images/orchidee-fp-collier.jpg" width="90" height="90" alt="photo" /><span>Cliquer pour agrandir</span></a></div>
<!-- Les boîtes popup sont placées tout en bas du document -->
<div id="pop1">
<p>collier Orchidée</p>
<img src="images/parure_orchidee.jpg" alt="La Parure Camélia" />
<div class="fermer">fermer la boite en cliquant dessus</div>
</div>


<div id="acces_pagesbas">

	 				 	<a href="parure-estella.htm">Modèle suivant</a> >

		 </div>

      </div>

	  </div>

      <div id="pied">

        <p id="mentions">Copyright © 2006 Princesse d'un Jour. Tous droits réservés. Princesse d'un Jour® est une marque déposée.</p>

		<p id="partenaires">Sites partenaires : <a href="http://www.noces-provencales.com">Organisation de mariage en provence</a> avec Noces-Provencales.com | <a href="http://www.notremariage.net/decouvrir.htm">NotreMariage.net</a></p>
      </div>
</div>
</body>
</html>


et ma CSS

*{margin:0;padding:0;}

body{background:url(images/background2.gif) repeat-y center top;font:11px/16px Geneva, Arial, Tahoma, sans-serif;margin:0;padding:0;}
img{border-style:none;border-width:0;}
#page{text-align:left;width:743px;background-color:#FFF;border:1px solid #6C3089;margin:5px auto;}

#header{height:67px;}
h1{display:inline;margin-left:15px;}
p#langue{position:absolute;display:inline;color:#666;padding-top:28px;padding-left:40px;}
#menu_langue{position:absolute;display:inline;list-style-type:none;width:40px;padding-top:30px;padding-left:80px;}
#menu_langue li{float:left;}
#menu_langue a{float:left;text-align:center;line-height:12px;color:#666;text-decoration:none;}
#menu_langue a:hover{color:#6C3089;text-decoration:underline;}
#english{width:20px;border-right:1px solid #666;}
#français{padding-left:3px;width:15px;}
#menu_langue a:focus,#menu_langue a:active{text-decoration:underline;color:#999;}

#haut{float:left;width:743px;border-top:1px solid #6C3089;border-bottom:1px solid #6C3089;margin:2px 0 0;}
ul#menuhaut{clear:both;width:100%;letter-spacing:3px;list-style-type:none;font-size:9px;text-align:center;}
#menuhaut li{float:left;}
#menuhaut a{display:block;color:#FFF;text-decoration:none;text-align:center;line-height:20px;}
#menu1{width:90px;background-color:#8E6784;color:#000;}
a#menu2{color:#6C3089;}
#menu2{width:122px;background:#FFF;}
#menu3{width:160px;background:#8E6784;}
#menu4{width:190px;background:#8E6784;}
#menu5{width:90px;background:#8E6784;}
#menu6{width:91px;background:#8E6784;}

#gauche{float:left;width:150px;list-style-type:none;text-decoration:none;line-height:35px;padding-left:5px;margin-top:25px;color:#6C3089;}

#menugauche a{text-decoration:none;color:#666;}
ul#menugauche{list-style-type:none; letter-spacing: 0.5px;font-size:10px;}
li#menugauche{float:left; margin-left:10px;padding-left:0px;}
a#menua{color:#6C3089;font-weight:900;}

#centre{float:left;height:400px;padding-top:5px;width:588px;color:#666;}
#zone_haut{position:relative;}
p.breadcrumb{position:relative;top:5px;font-size:11px;color:#666;width:150px;display:inline;}
p.breadcrumb a{color:#666;text-decoration:none;}
p.breadcrumb a:hover{text-decoration:underline;color:#6C3089;}

a#coll{padding-left: 3px;}
a#page1{padding-left: 3px;}
a#modele{padding-left: 3px;}
a#produit:hover{text-decoration:none;color:#666;}
#acces_pages{position:absolute;top:10px;right:35px;line-height:20px;}
#pages{list-style-type:none;width:100%;line-height:20px;}
#pages li{float:right;}
#pages a{float:left;text-align:center;line-height:12px;width:10px;color:#666;text-decoration:none;}
#pages a:hover{text-decoration:underline; color:#6C3089;}
a.lastpage{letter-spacing:-1px;padding-left:3px;}
#pages a.selected{font-weight:700;color:#6C3089;text-decoration:none;}
#pages a.selected:hover{text-decoration:none;}
a.firstpage{letter-spacing:-1px;padding-right:4px;}



#pages a:focus,#pages a:active,p.breadcrumb a:focus,p.breadcrumb a:active{text-decoration:underline;color:#999;}



#produit1{position:relative;display:block;top:15px;width:120px;text-decoration:none;}
#element1{position:absolute; top:290px;left:0px;}
#element2{position:absolute; top:290px;left:150px;}
#element3{position:absolute; top:290px;left:300px;}
#element4{position:absolute; top:290px;left:450px;}
#element5{position:absolute; top:290px;left:600px;}
#descriptif{position:absolute;top:31px;left:200px;}
h2{color:#6C3089;font-weight:bold; font-size: 14px;}
h3{padding-top:10px;font-weight:bold; font-size: 13px;}
p#composition{padding-top:10px;}
p#coloris{padding-top:5px;}
p#autres_coloris{padding-top:5px;}
p#tarifs{padding-top:5px;}
p#compo{padding-top:5px;}

#produit1 a,#element1 a,#element2 a,#element3 a,#element4 a,#element5 a{text-decoration:none;color:#666;display:table-cell;text-align:center;display:inline-block;}

#produit1 img,#element1 img,#element2 img,#element3 img,#element4 img, #element5 img{display:block;border-style:none;border-width:0;}

#pop {
position: absolute;
display:none;
width: 120px;
border: 3px double black;
background: #f5f5dc;
z-index: 500;
font-size: 80%;
}
.fermer {
margin: 0.5em 0 0 0;
border-top: 1px solid black;
background: white url(images/bottom.gif) left top repeat-x;
color: black;
text-align: left;
}
#pop p {
font-size: 110%;
margin: 0 0 0.5em 0;
border-bottom: 1px solid black;
background: white url(top.gif) left top repeat-x;
color: black;
text-align: center;
}


#acces_pagesbas{position:absolute;top:400px;right:35px;line-height:20px;}

#pagesbas{list-style-type:none;width:100%;line-height:20px;}

#pagesbas li{float:right;}

#pagesbas a{float:left;text-align:center;line-height:12px;width:10px;color:#666;text-decoration:none;}

#pagesbas a:hover{text-decoration:underline; color:#6C3089;}

#pagesbas a.selected{font-weight:700;color:#6C3089;text-decoration:none;}

#pagesbas a.selected:hover{text-decoration:none;}



#pied{clear:both;height:30px;text-align:center;padding-bottom:5px;}

#pied a{text-decoration:none;color:#666;}

partenaires a{color:#666;}

p#mentions,p#partenaires{color:#666;font-size:9px;}




PS: mon div "element1" (la petite vignette du collier) est positionné en absolute

Merci.
Modifié par pp51 (26 Jul 2006 - 14:20)
Modérateur
euh... où se trouve le bout de script à rajouter dans le code html ? Je ne le vois pas...
et la classe pops ? où est-elle dans le CSS ? ... parce que c'est elle qui place et dimensionne ta popup...

Je t'ai bien dit de supprimer la classe dans le code html mais pas dans le CSS vu que le script attache cette fameuse classe pops au moment où tu cliques sur le collier... Smiley cligne
Re,

En fait, je suis reparti du début du tuto, avec les mêmes codes.

Et ça fonctionne, presque ...

a écrit :

Voici les problèmes que je n'arrive pas à résoudre:

1/ je n'arrive pas à placer la pop où je le souhaite (j'ai essayé avec les absolute et relative, mais rien n'y fait, cette pop ne veut pas bouger...)

2/ Bizarrement, j'ai l'impression que la pop prend toute la largeur disponible sur ma page, alors que j'ai bien spécifié un width de 200px


Sais-tu comment faire pour résoudre ces 2 problèmes, sachant que maintenant la pop s'ouvre et se ferme bien quand on clique dessus ?

Merci Smiley confused
Modérateur
mmh... peux-tu mettre tes pages en ligne pour que je vois le résultat ? Cà me donnerait plus de facilité pour repérer tes erreurs Smiley cligne
Bonjour,

J'ai mis en ligne l'ensemble ici: http://www.princessedunjour.com

Au chargement de la page la pop s'affiche qq secondes puis disparait (ça ne le faisait pas en local pourtant...)

Cela permet aussi de voir mes 2 autres problèmes mentionnés dans mon post précédent.

Merci
Modifié par pp51 (03 May 2007 - 14:02)
Modérateur
Rebonjour.

pile poil à l'heure ! Smiley lol

Je viens de regarder ton code... ben on se retrouve à zéro... Smiley sweatdrop

Bon, reprenons...

étape 1

Ajoute ceci dans ton code html juste sous la div pop1

<script type="text/javascript">
<!--
var oPop = document.getElementById('pop1');
oPop.style.display = 'none';
//-->
</script>


étape 2

Remplace tout le code contenu dans le fichier popup.js par ceci :

function pop()
{
    var myAs = document.getElementsByTagName('a');
    for (var a = 0; a < myAs.length; ++a) {
	// Si le lien a une classe de type pop
        if (myAs[a].className == 'pop') {
	// on extrait l'id de la popup à partir du href
            var pop = document.getElementById(myAs[a].href.substring(myAs[a].href.lastIndexOf('#') + 1));
	// si la popup existe on l'affiche (display block)
            if (pop) {       
                pop.style.display = 'none';
                myAs[a].onclick = function() {
                    var thisPopup = document.getElementById(this.href.substring(this.href.lastIndexOf('#') + 1))
                    thisPopup.style.display = (thisPopup.style.display == 'none') ? 'block' : 'none';
                    thisPopup.setAttribute('class','pops');
                    return false;
                };
		// on efface la popup en cliquant dessus
                pop.onclick = function()
                {
                    this.style.display = 'none';
                };
            }
        }
    }
}
window.onload = pop;


étape 3

Ajoute ceci dans ton fichier css

.pops
{
    position: relative;
    top: -250px;
    margin: 0 auto;
    width: 250px;
    background-color: white;
}


étape 4

Remet tout en ligne... Smiley smile
Hello koala64,

Etape 1, 2 et 3 : OK !

Etape 4: voir ici http://www.princessedunjour.com

Bon alors sous ff, ça semble marcher Smiley biggrin

A part un petit soucis de mise en page (la page est trop longue, elle devrait s'arrêter au trait violet), je vois pas pourquoi ça s'allonge !

Sous ie, c'est une autre histoire Smiley decu je te laisse découvrir ça ...

Voilà ....

Etape 5 ?
Smiley cligne
Modifié par pp51 (03 May 2007 - 14:03)
Modérateur
ok... étapes suivantes Smiley ravi

étape 5

Dans ton fichier html, place le code de la popup juste avant la fermeture du body... Rien ne doit être derrière...

...
<!-- Les boîtes popup sont placées tout en bas du document -->
<div class="pops" style="display: none;" id="pop1">
<p>collier Orchidée</p>
<img src="tester2_fichiers/parure_orchidee.jpg" alt="La Parure Camélia">
<p class="fermer">fermer la boite en cliquant dessus</p>
</div>
<script type="text/javascript">
<!--
var oPop = document.getElementById('pop1');
oPop.style.display = 'none';
//-->
</script>
</body></html>


étape 6

Remplace de nouveau le script par celui-ci :

function pop()
{
    var myAs = document.getElementsByTagName('a'),
		sUserAgent = navigator.userAgent,
		isOpera = sUserAgent.indexOf('Opera') > - 1,
		isIE = sUserAgent.indexOf('compatible') > -1 &&
			   sUserAgent.indexOf('MSIE') > -1 &&
			   !isOpera;
    for (var a = 0; a < myAs.length; ++a) {
	// Si le lien a une classe de type pop
        if (myAs[a].className == 'pop') {
	// on extrait l'id de la popup à partir du href
            var pop = document.getElementById(myAs[a].href.substring(myAs[a].href.lastIndexOf('#') + 1));
	// si la popup existe on l'affiche (display block)
            if (pop) {       
                pop.style.display = 'none';
                myAs[a].onclick = function() {
                    var thisPopup = document.getElementById(this.href.substring(this.href.lastIndexOf('#') + 1))
                    thisPopup.style.display = (thisPopup.style.display == 'none') ? 'block' : 'none';

					// Controle du positionnement sur la largeur (Gecko)
					if( !isIE ) thisPopup.style.left = window.innerWidth/2 - 25 + 'px';
					// Controle du positionnement sur la largeur (IE)
					else thisPopup.style.left = screen.availWidth/2 - 190 + 'px';


                    thisPopup.setAttribute('class','pops');
                    return false;
                };
		// on efface la popup en cliquant dessus
                pop.onclick = function()
                {
                    this.style.display = 'none';
                };
            }
        }
    }
}
window.onload = pop;


étape 7

Remplace le code .pops contenu dans le CSS par ceci :

.pops
{
    position: absolute;
    top: 134px;
    height: 320px;
    width: 290px;
    border:1px solid #6C3089;
    background-color: white;
}
.pops p
{
    padding: 5px 20px;
}
.pops img
{
    padding: 0 20px 10px;
    display: block;
}


étape 8

On remet en ligne et on visualise... Smiley cligne
Modifié par koala64 (26 Jul 2006 - 22:03)
Salut Koala Smiley biggrin

Etape 5,6 et 7 OK !

Etape 8: rendez-vous ce soir à 19h, comme d'hab ! Smiley nuts

A première vue, en local, il y a du mieux Smiley langue

A tout à l'heure !
Modérateur
ok Smiley cligne

Tiens d'ailleurs... Hier soir, j'avais un problème pour placer la popup de la même manière sur la largeur (entre Fx et IE)... En fait, cette partie de la mise en page n'est pas gérée dans le CSS mais dans le script à l'endroit suivant :

// Controle du positionnement sur la largeur (Gecko)
if( !isIE ) thisPopup.style.left = window.innerWidth/2 - 25 + 'px';
// Controle du positionnement sur la largeur (IE)
else thisPopup.style.left = screen.availWidth/2 - 190 + 'px';

La propriété window.innerWidth, qui définit la largeur interne de la fenêtre (sans les barres d'outils, de scroll et autres), n'est pas interprétée par IE... C'est pourquoi, pour IE, j'ai remplacé cette propriété par screen.availWidth qui représente la place disponible de l'écran utilisateur.

Le soucis, c'est que quand tu changes de résolution, la popup se place plus ou moins bien sur IE... (Regarde la différence de comportement entre Fx et IE lorsque tu diminues la largeur de la fenêtre, sur Fx, çà ne bouge pas par rapport à ton document alors que sur IE, si Smiley cligne )

En faisant quelques recherches, je viens de voir que l'équivalent de window.innerWidth pour IE était document.body.clientWidth donc ben... remplace screen.availWidth par document.body.clientWidth pour obtenir une référence commune entre Fx et IE... Après, tu devras peut-être jouer le - 190 qui se trouve juste derrière pour ajuster...

Je te laisse faire ces changements mais encore une fois, même si tu n'obtiens pas le résultat voulu, met donc ton code en ligne... tel quel... Smiley smile
Modifié par koala64 (27 Jul 2006 - 16:24)
19h04 Smiley cligne

Un peu de retard mais rien de bien méchant hein !

Voila ce que ça donne: http://www.princessedunjour.com

C'est presque tip top Smiley lol reste plus que le positionnement et c'est koalnet !

Je n'avais pas vu ton dernier post, je vais essayer de bidouiller le .JS... et je reviens Smiley cligne

A tout à l'heure !
Modifié par pp51 (03 May 2007 - 14:03)
Me revoilà Smiley cligne

J'ai donc mis dans le .JS le code


// Controle du positionnement sur la largeur (Gecko)
if( !isIE ) thisPopup.style.left = window.innerWidth/2 - 25 + 'px';

// Controle du positionnement sur la largeur (IE)
else thisPopup.style.left = document.body.clientWidth/2 - 25 + 'px';

thisPopup.setAttribute('class','pops');
return false;
};


C'est en ligne sur la même page de test.

Et heu, je suis ému Smiley confused mais ça marche même sur ie, le pop se positionne là où je voulais !

Tout est presque reglé !
Après c'est vrai que sous ie et ff, quand tu redimensionnes la fenêtre globale, le pop se décalle "à fond sur la droite" et casse un peu la mise en page.

Si tu sais comment faire pour que le pop reste là où il doit être, malgré un resize de la fenêtre, je suis preneur, comme toujours Smiley lol
Modérateur
euh... ben je veux bien chercher mais bon, je ne sais pas si tu as vu mais si tu redimensionnes la fenêtre et que tu fais disparaître puis réapparaître la popup, elle est bien placée, que ce soit Fx ou IE... Smiley cligne Ce que tu demandes, çà a vraiment peu de chance d'arriver et je suis pas sûr que ce soit vraiment d'une grande utilité en fait... Smiley rolleyes
Pages :