Bonjour,
Après avoir lu différents tuto sur le javascript je n'arrive toujours pas à externaliser les évènements onclick.
Je suis débutant en xhtml et javascript, alors toute remarque est bonne à prendre, pour optimiser le css etc...
Voici ma page d'accueil (index.php):
Voici le code javascript lié (affichage.js):
Et le CSS lié (style.css):
Je voudrais que les liens ayant une id précise soient attachés à un gestionnaire d'évènement onclick:
iinformations -> affiche_informations()
iachat -> affiche_achat()
icommentaires -> affiche_commentaire()
ifermer_informations -> affiche_defaut()
ifermer_achat -> affiche_defaut()
ifermer_commentaires -> affiche_defaut()
Au fait, merci car je me suis beaucoup servi de ce site pour creer cette page.
Modifié par cyrildphotos (14 May 2007 - 14:15)
Après avoir lu différents tuto sur le javascript je n'arrive toujours pas à externaliser les évènements onclick.
Je suis débutant en xhtml et javascript, alors toute remarque est bonne à prendre, pour optimiser le css etc...
Voici ma page d'accueil (index.php):
<!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-FR">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<meta http-equiv="Content-Language" content="fr" />
<meta name="robots" content="all" />
<title>Accueil :: le bonheur d'être simplement là :: Cyril Delacour photographe</title>
<link rel="schema.dc" href="http://purl.org/dc/elements/1.1/" />
<meta name="DC.Identifier.URL" content="http://test.cyrildphotos.com" />
<meta name="DC.Language" content="fr" />
<meta name="DC.Description" content="Accueil du site de Cyril Delacour, artiste photographe." />
<meta name="DC.Keywords" content="photo, photographe, artiste, reportage, portrait, exposition, expo, mariage, Saint-Etienne, Loire, Rhone-Alpes, auteur, noir et blanc, n&b, photos, photographie, photographies, album, galerie, art, naturel, image, images, jpg, jpeg" />
<meta name="DC.Date.Modified" content="2007-05-14T10:27:37+02:00" />
<meta name="DC.Type" content="image" />
<meta name="DC.Format" content="image/jpg" />
<meta name="DC.Creator" content="Cyril Delacour" />
<meta name="DC.Creator.Location" content="France Loire Saint-Étienne" />
<meta name="DC.Rights.URL" content="http://test.cyrildphotos.com/copyright/index.php" />
<link rel="stylesheet" type="text/css" href="http://test.cyrildphotos.com/style.css" media="screen" />
<script src="http://test.cyrildphotos.com/affichage.js" type="text/javascript"></script>
<link rel="shortcut icon" href="http://test.cyrildphotos.com/favicon.ico" />
</head>
<body>
<div class="centre">
<!-- début de l'en-tête -->
<div id="tete">
<div id="hg">
<a href="http://test.cyrildphotos.com/" title="vers l'accueil du site">www.cyrildphotos.com</a>
<br />
<span>Cyril Delacour photographe</span>
</div>
<div id="hd">
<h1>
le bonheur d'être simplement là
</h1>
</div>
<!-- début du formulaire de recherche -->
<div id="bg">
<h4 class="no">
rechercher sur le site www.cyrildphotos.com avec google
</h4>
<!-- Google CSE Search Box Begins -->
<form id="searchbox_013979821689057176575:d4m0xff-qpg" action="http://www.google.com/search">
<pre>
<input type="hidden" name="cx" value="013979821689057176575:d4m0xff-qpg" />
<input type="hidden" name="cof" value="FORID:0" />
<input class="google" name="q" type="text" size="40" value="rechercher sur le site" onfocus="this.oldvalue=this.value;this.value='';" onblur="if (this.value=='') this.value=this.oldvalue;" />
</pre>
</form>
<!-- Google CSE Search Box Ends -->
</div>
<!-- fin du formulaire de recherche -->
<!-- début du menu principal -->
<div id="bd">
<h4 class="no">
liens vers les différentes sections du site
</h4>
<a href="http://test.cyrildphotos.com/navigation/index.php" title="carte du site">navigation</a>
<a href="http://test.cyrildphotos.com/parcours/index.php" title="c.v. parcours, et textes">chemin de vie</a>
<a class="on" href="http://test.cyrildphotos.com/galerie/index.php" title="galeries de photographies organisées par thèmes">galerie</a>
<a href="http://test.cyrildphotos.com/commande/index.php" title="commander une prise de vue, acheter un tirage">commande</a>
<a href="http://test.cyrildphotos.com/projet/index.php" title="projets passés, en cours, et futurs">projet</a>
<a href="http://test.cyrildphotos.com/contact/index.php" title="envoyer un message, adresse et téléphone de Cyril Delacour">contact</a>
<a href="http://test.cyrildphotos.com/lien/index.php" title="page de liens vers d'autres sites">lien</a>
</div>
<!-- fin du menu principal -->
</div>
<!-- fin de l'en-tête -->
<!-- début du corps de la page -->
<div id="page">
<!-- début du contenu -->
<div id="media">
<div class="ch">
</div>
<div class="cc">
<div class="photo">
<img src="img/bonheur.jpg" width="400" height="306" alt="(iView:Keywords)" id="bonheur" />
</div>
</div>
<div class="cb">
</div>
<div id="pied">
<a href="http://test.cyrildphotos.com/copyright/index.php">© 2007 Cyril Delacour, tous droits réservés</a>
</div>
</div>
<!-- fin du contenu -->
<!-- icônes -->
<div id="icones">
<div class="spacer"> </div>
<h4 class="no">icônes de navigation dans la page et pour les pages liées</h4>
<a href="#commentaires" id="icommentaires" title="lire et écrire des commentaires" onclick="javascript:affiche_commentaires()" >
<img src="http://test.cyrildphotos.com/img/c.gif" width="20" height="20" alt="vers les commentaires de la photographie" />
</a>
<a href="#achat" id="iachat" title="acheter un tirage" onclick="javascript:affiche_achat()">
<img src="img/euro.gif" width="20" height="20" alt="vers le formulaire d'achat" />
</a>
<a href="#informations" id="iinformations" title="informations EXIF et IPTC" onclick="javascript:affiche_informations()">
<img src="img/info.gif" width="20" height="20" alt="vers les informations" />
</a>
<div class="spacer"> </div>
</div>
<!-- début du bloc gauche -->
<div id="gauche">
<!-- defaut -->
<div id="defaut">
<div class="nh">
</div>
<div class="nc">
<h4 class="no">
bienvenue
</h4>
<p>
Bienvenue sur ce site réalisé par Cyril Delacour.
</p>
</div>
<div class="nb">
</div>
</div>
<!-- description -->
<div id="description">
<div class="nh">
</div>
<div class="nc">
<h2 class="no">
description de la photographie
</h2>
<p>
Portrait d'enfant en noir et blanc réalisé lors de ma dernière saison de filmage en Vendée. J'aime beaucoup cette photographie qui évoque pour moi le bonheur d'être simplement là.
</p>
</div>
<div class="nb">
</div>
</div>
<!-- informations -->
<div id="informations">
<div class="nh">
</div>
<div class="nc">
<div id="fermer_informations">
<a href="#defaut" id="ifermer_informations" onclick="affiche_defaut()">
<img src="img/x.gif" alt="icone fermer" />
</a>
</div>
<h2>
Informations IPTC
</h2>
<h3>
Titre
</h3>
<p>
le bonheur d'être simplement là
</p>
<h3>
Description
</h3>
<p>
Portrait d'enfant en noir et blanc réalisé lors de ma dernière saison de filmage en Vendée. J'aime beaucoup cette photographie qui évoque pour moi le bonheur d'être simplement là.
</p>
<h3>
Date de l'évènement
</h3>
<p>
été 1998
</p>
<h3>
Ville
</h3>
<p>
Notre Dame de Monts
</p>
<h3>
Département
</h3>
<p>
Vendée
</p>
<h3>
Pays
</h3>
<p>
France
</p>
<h3>
Crédit
</h3>
<p>
Cyril Delacour
</p>
<h3>
Copyright
</h3>
<p>
© 2001 Cyril Delacour, tous droits réservés
</p>
<h3>
Nom du fichier
</h3>
<p>
bonheur.jpg
</p>
</div>
<div class="nb">
</div>
</div>
<!-- achat -->
<div id="achat">
<div class="nh">
</div>
<div class="nc">
<h2 class="no">
acheter un tirage de la photographie
</h2>
<div id="fermer_achat">
<a href="#defaut" id="ifermer_achat" onclick="affiche_defaut()">
<img src="img/x.gif" alt="icone fermer" />
</a>
</div>
<p>
Le tirage de cette photographie n'est pas à vendre, ni une cession de droit afin de la diffuser.
<br />
Si vous voulez des portraits de votre famille ou de vous-même, rendez-vous dans la section "<a href="commande/">commande</a>".
</p>
</div>
<div class="nb">
</div>
</div>
<!-- commentaires -->
<div id="commentaires">
<div class="nh">
</div>
<div class="nc">
<h2 class="no">
commentaires sur la photographie
</h2>
<div id="fermer_commentaires">
<a href="#defaut" id="ifermer_commentaires" onclick="javascript:affiche_defaut()">
<img src="img/x.gif" alt="icone fermer" />
</a>
</div>
<p>
ici le code php pour les 10 derniers commentaires et une icone pour en ecrire et tous les voir (pop-up)
</p>
</div>
<div class="nb">
</div>
</div>
</div>
<!-- fin du bloc gauche -->
</div>
</div>
<!-- fin du corps de page -->
</body>
</html>
Voici le code javascript lié (affichage.js):
window.onload = init;
function init() {
if (document.getElementById) {
document.getElementById("informations").style.display="none";
document.getElementById("commentaires").style.display="none";
document.getElementById("achat").style.display="none";
document.getElementById("defaut").style.display="block";
document.getElementById("description").style.display="block";
} else if (document.all) {
document.all["informations"].style.display="none";
document.all["commentaires"].style.display="none";
document.all["achat"].style.display="none";
document.all["defaut"].style.display="block";
document.all["description"].style.display="block";
} else if (document.layers) {
document.layers["informations"].display="none";
document.layers["commentaires"].display="none";
document.layers["achat"].display="none";
document.layers["defaut"].display="block";
document.layers["description"].display="block";
} }
function affiche_description() {
if (document.getElementById) {
document.getElementById("defaut").style.display="none";
document.getElementById("informations").style.display="none";
document.getElementById("commentaires").style.display="none";
document.getElementById("achat").style.display="none";
document.getElementById("description").style.display="block";
document.getElementById("fermer_description").style.display="block";
} else if (document.all) {
document.all["defaut"].style.display="none";
document.all["informations"].style.display="none";
document.all["commentaires"].style.display="none";
document.all["achat"].style.display="none";
document.all["description"].style.display="block";
document.all["fermer_description"].style.display="block";
} else if (document.layers) {
document.layers["defaut"].display="none";
document.layers["informations"].display="none";
document.layers["commentaires"].display="none";
document.layers["achat"].display="none";
document.layers["description"].display="block";
document.layers["fermer_description"].display="block";
} }
function affiche_informations() {
if (document.getElementById) {
document.getElementById("defaut").style.display="none";
document.getElementById("commentaires").style.display="none";
document.getElementById("achat").style.display="none";
document.getElementById("description").style.display="none";
document.getElementById("informations").style.display="block";
document.getElementById("fermer_informations").style.display="block";
} else if (document.all) {
document.all["defaut"].style.display="none";
document.all["commentaires"].style.display="none";
document.all["achat"].style.display="none";
document.all["description"].style.display="none";
document.all["informations"].style.display="block";
document.all["fermer_informations"].style.display="block";
} else if (document.layers) {
document.layers["defaut"].display="none";
document.layers["commentaires"].display="none";
document.layers["achat"].display="none";
document.layers["description"].display="none";
document.layers["informations"].display="block";
document.layers["fermer_informations"].display="block";
} }
function affiche_commentaires() {
if (document.getElementById) {
document.getElementById("defaut").style.display="none";
document.getElementById("description").style.display="none";
document.getElementById("informations").style.display="none";
document.getElementById("achat").style.display="none";
document.getElementById("commentaires").style.display="block";
document.getElementById("fermer_commentaires").style.display="block";
} else if (document.all) {
document.all["defaut"].style.display="none";
document.all["description"].style.display="none";
document.all["informations"].style.display="none";
document.all["achat"].style.display="none";
document.all["commentaires"].style.display="block";
document.all["fermer_commentaires"].style.display="block";
} else if (document.layers) {
document.layers["defaut"].display="none";
document.layers["description"].display="none";
document.layers["informations"].display="none";
document.layers["achat"].display="none";
document.layers["commentaires"].display="block";
document.layers["fermer_commentaires"].display="block";
} }
function affiche_achat() {
if (document.getElementById) {
document.getElementById("defaut").style.display="none";
document.getElementById("description").style.display="none";
document.getElementById("informations").style.display="none";
document.getElementById("commentaires").style.display="none";
document.getElementById("achat").style.display="block";
document.getElementById("fermer_achat").style.display="block";
} else if (document.all) {
document.all["defaut"].style.display="none";
document.all["description"].style.display="none";
document.all["informations"].style.display="none";
document.all["commentaires"].style.display="none";
document.all["achat"].style.display="block";
document.all["fermer_achat"].style.display="block";
} else if (document.layers) {
document.layers["defaut"].display="none";
document.layers["description"].display="none";
document.layers["informations"].display="none";
document.layers["commentaires"].display="none";
document.layers["achat"].display="block";
document.layers["fermer_achat"].display="block";
} }
function affiche_defaut() {
if (document.getElementById) {
document.getElementById("informations").style.display="none";
document.getElementById("achat").style.display="none";
document.getElementById("commentaires").style.display="none";
document.getElementById("defaut").style.display="block";
document.getElementById("description").style.display="block";
} else if (document.all) {
document.all["informations"].style.display="none";
document.all["achat"].style.display="none";
document.all["commentaires"].style.display="none";
document.all["defaut"].style.display="block";
document.all["description"].style.display="block";
} else if (document.layers) {
document.layers["informations"].display="none";
document.layers["achat"].display="none";
document.layers["commentaires"].display="none";
document.layers["defaut"].display="block";
document.layers["description"].display="block";
} }
Et le CSS lié (style.css):
/* ====================== Page ====================== */
* {margin:0;padding:0;border:0;background:none;}
body {font-family:Verdana, Arial, Helvetica;width:100%;height:100%;background-color:#eaeaea;}
div.centre {position:absolute;top:4px;left:50%;width:760px;margin-left:-380px;}
.no {display:none;}
p {font-size:10px;color:#999;}
a:link {text-decoration:none;color:#aa9999;}
a:visited {text-decoration:none;color:#9999aa;}
a:hover {text-decoration:underline;color:#aa6666;}
a:active {text-decoration:underline;color:#660033;}
a:focus {text-decoration:underline;color:#aa6666;}
/* ====================== En-tête ====================== */
div#tete {display:block;position:absolute;top:5px;width:760px}
div#hg {position:absolute;top:0;left:0;background:url(http://test.cyrildphotos.com/img/hg.gif) no-repeat;width:200px;height:40px;text-align:center;}
div#hg a {font-size:14px;line-height:16px;color:#d0d0d0;}
div#hg span {font-size:9px;line-height:10px;font-style:italic;color:#d0d0d0;}
div#hd {display:block;position:absolute;top:0;left:200px;height:40px;width:560px;background:url(http://test.cyrildphotos.com/img/hd.gif) no-repeat;}
div#hd h1 {text-align:center;font-family:Geneva;font-size:28px;color:#d0d0d0;}
div#bg {position:absolute;top:40px;left:0;background:url(http://test.cyrildphotos.com/img/bg.gif) no-repeat;width:200px;height:20px;}
.google {display:block;position:absolute;top:0px;left:7px;height:13px;width:180px;font-family:Verdana;font-size:10px;color:#999999;border:1px solid #eaeaea;background-color:#f4f4f4;}
div#bd {position:absolute;top:40px;left:200px;width:560px;height:20px;background:url(http://test.cyrildphotos.com/img/bd.gif) no-repeat;}
div#bd a:link {width:80px;height:20px;line-height:18px;font-size:10px;text-decoration:none;text-align:center;color:#666666;float:left;}
div#bd a:visited {width:80px;height:20px;line-height:18px;font-size:10px;text-decoration:none;text-align:center;color:#666666;float:left;}
div#bd a:hover {text-decoration:underline;color:#333333;}
div#bd a.on:link {background:url(http://test.cyrildphotos.com/img/on.gif) no-repeat;}
div#bd a.on:visited {background:url(http://test.cyrildphotos.com/img/on.gif) no-repeat;}
div#bd a.on:hover {text-decoration:underline;}
/* Corps de page */
div#page {position:absolute;top:70px;width:760px;}
/* ====================== Bloc gauche ====================== */
div#gauche {position:absolute;top:25px;left:0;width:195px;}
div#icones {position:absolute;top:0;left:0;width:195px;height:20px;}
div#icones img {border:none;float:left;display:block;margin:0 6px;padding:0;width:20px;height:20px;text-decoration:none;}
.nh {overflow:hidden;width:195px;height:6px;background:url(http://test.cyrildphotos.com/img/nh.gif) no-repeat;}
.nc {width:195px;background:url(http://test.cyrildphotos.com/img/nc.gif) repeat-y;}
.nb {overflow:hidden;width:195px;height:6px;background:url(http://test.cyrildphotos.com/img/nb.gif) no-repeat;}
div#description, div#commentaires, div#achat, div#informations, div#defaut {margin:5px 0;}
div#description {display:block;}
div#commentaires {display:block;}
div#achat {display:block;}
div#defaut {display:block;}
div#informations {display:block;}
div#informations h2 {font-family:Verdane, Arial, Helvetica;font-size:12px;color:#666666;text-align:center;}
div#informations h3 {font-family:Verdane, Arial, Helvetica;font-size:11px;color:#666666;text-indent:8px;margin-top:5px;}
div#gauche p {font-size:9px;text-align:left;padding:0 6px;color:#666666;font-weight:lighter;}
div#fermer_commentaires, div#fermer_achat, div#fermer_informations, div#fermer_description {width:10px;height:10px;display:none;position:absolute;top:2px;left:182px;}
div#fermer_commentaires, div#fermer_achat, div#fermer_informations, div#fermer_description > a {display:block;text-decoration:none;border:0;}
table.blockg {border-spacing:0;empty-cells:show;font-family:Helvetica, Verdana, Arial;margin:0 auto;}
table.blockg td {font-size:9px;color:#999999;text-align:left;border-bottom:1px solid #eaeaea;}
table.blockg th {text-align:center;font-size:10px;color:#666666;}
table#iptc {display:block;}
table#exif {display:block;}
div#ong {width:191px;height:17px;text-align:center;border-bottom:1px solid #d0d0d0;}
a#ong1 {width:60px;border-top:1px solid #d0d0d0;border-right:1px solid #d0d0d0;border-bottom:1px solid #f4f4f4;border-left:1px solid #d0d0d0;background-color:#f4f4f4;font-family:Verdana, Arial, Helvetica;font-size:10px;text-decoration:none;color:#666666;}
a#ong2 {width:60px;border-top:1px solid #d0d0d0;border-right:1px solid #d0d0d0;border-bottom:1px solid #d0d0d0;border-left:1px solid #d0d0d0;background-color:#eaeaea;font-family:Verdana, Arial, Helvetica;font-size:10px;text-decoration:none;color:#666666;}
/* ====================== Contenu principal ====================== */
div#media {display:block;width:550px;position:absolute;top:10px;left:210px;}
div#media .ch {width:550px;height:25px;background:url(http://test.cyrildphotos.com/img/ch.gif) no-repeat;}
div#media .cc {width:550px;background:url(http://test.cyrildphotos.com/img/cc.gif) repeat-y;}
div#media .cb {width:550px;height:25px;background:url(http://test.cyrildphotos.com/img/cb.gif) no-repeat;}
div#media p {display:block;font-size:10px;text-align:left;padding:0 6px;color:#666666;font-weight:lighter;}
div#media .photo {display:block;background-color:#fff;padding:48px;border:1px solid #d0d0d0;margin:0 25px;}
div#media img {display:block;border:1px solid #000;}
div#index .ih {width:550px;height:5px;background:url(http://test.cyrildphotos.com/img/1h.gif) no-repeat;}
div#index .ic {width:550px;background:url(http://test.cyrildphotos.com/img/1c.gif) repeat-y;}
div#index .ib {width:550px;height:5px;background:url(http://test.cyrildphotos.com/img/1b.gif) no-repeat;}
div.spacer {clear:both;line-height:0;}
/* ====================== Pied de page ====================== */
div#pied {display:block;position:relative;top:15px;width:550px;text-align:center;}
div#pied > a {font-family:Verdana, Arial, Helvetica;font-size:9px;color:#d0d0d0;font-weight:lighter;text-decoration:none;}
div#pied > a:hover {color:#999999;text-decoration:underline;}
Je voudrais que les liens ayant une id précise soient attachés à un gestionnaire d'évènement onclick:
iinformations -> affiche_informations()
iachat -> affiche_achat()
icommentaires -> affiche_commentaire()
ifermer_informations -> affiche_defaut()
ifermer_achat -> affiche_defaut()
ifermer_commentaires -> affiche_defaut()
Au fait, merci car je me suis beaucoup servi de ce site pour creer cette page.
Modifié par cyrildphotos (14 May 2007 - 14:15)