Afficher à un endroit précis un texte (ou une image) en fonction du lien cliqué (layers)


present.gif (1424 octets)

Ce script affiche dans la même page du texte (ou des images) différent suivant le lien cliqué, ici une image map. Plus connu sous le nom de techniques des layers (calques)


exemple.gif (1055 octets)

cliquez sur les points rouges

BRUXELLES

 

BELGIQUE

PARIS

 

FRANCE

GENEVE

 

SUISSE















script.gif (838 octets)

NB: les textes en rouge sont des commentaires à supprimer dans le code html

<script language="JavaScript"> <!-- debut du script
on définit les variables

var totalLayersInLoop=4; on définit le nombre de calques, ici le nombre de textes différents
var layerNumShowing=1; on définit le numéro du premier calque montré au chargement de la page

function init(){ on initie les variables d'affichage en fonction du navigateur (qui doit être une version supérieure à 3) aprés le chargement de la page
if (navigator.appName == "Netscape") {
layerStyleRef="layer.";
layerRef="document.layers";
styleSwitch=""; }
else{ car Internet explorer ne gére pas les calques (du moins dans la version 4)
layerStyleRef="layer.style.";
layerRef="document.all";
styleSwitch=".style"; } }

function showLayerNumber(number){ la fonction appelée lors d'un clic sur les points rouges
var layerNumToShow=number; on attribue à la variable le numéro du calque à afficher
hideLayer(eval('"layer' + layerNumShowing+'"')); appel de la fonction qui cache le calque précédent
showLayer(eval('"layer' + layerNumToShow+'"')); appel de la fonction qui affiche le nouveau calque
layerNumShowing=layerNumToShow; } on change le numéro de la variable du calque affiché

function showLayer(layerName){ la fonction qui affiche le nouveau calque
eval(layerRef+'["'+layerName+'"]'+styleSwitch+'.visibility="visible"'); }

function hideLayer(layerName){ la fonction qui cache le calque précédent
eval(layerRef+'["'+layerName+'"]'+styleSwitch+'.visibility="hidden"'); }

</SCRIPT>

<STYLE TYPE="text/css"> la feuille de style qui détermine la position de l'affichage des différents calques, cette position est déterminé par rapport au bord droit de la page et au sommet de la page et est exprimée en pixels
#layer1 {position: absolute; z-index: 10; visibility: visible; left: 415px; top: 120px;}position du calque n°1
#layer2 {position: absolute; z-index: 20; visibility: hidden; left: 415px; top:120px;} du n°2, etc...
#layer3 {position: absolute; z-index: 30; visibility: hidden; left: 415px; top: 120px;}
#layer4 {position: absolute; z-index: 30; visibility: hidden; left: 415px; top: 120px;}

#loopControls {position: absolute; z-index: 40; visibility: visible; left: 50px; top: 70px;} position de la carte qui controle les appels
</STYLE>

</HEAD>

<BODY BGCOLOR="#ffffff" onLoad="init()" aprés le chargement de la page, appel de la fonction init>

<!--layer 1-->

<div id="layer1" > cliquez sur les points rouges </div>

<!--layer 2-->
<div id="layer2" > <H2><CENTER>BRUXELLES</CENTER></H2>
<P><CENTER>&nbsp;</CENTER></P>
<P><CENTER>BELGIQUE</CENTER></P>

</div> <!--layer 3-->
<div id="layer3" ><H2><CENTER>PARIS</CENTER></H2>
<P><CENTER>&nbsp;</CENTER></P>
<P><CENTER>FRANCE</CENTER></P>

</div><!--layer 4--> <div id="layer4" >
<H2><CENTER>GENEVE</CENTER></H2>
<P><CENTER>&nbsp;</CENTER></P>
<P><CENTER>SUISSE</CENTER></P>

</div>

<div id="loopControls" >
<MAP NAME="mapeuro"> l'image map
<AREA SHAPE="CIRCLE" COORDS="141,12,6" HREF="javascript:showLayerNumber(2)">Lien vers la fonction d'affichage des calques
<AREA SHAPE="CIRCLE" COORDS="115,56,7" HREF="javascript:showLayerNumber(3)"> Attention de respecter leur numéro
<AREA SHAPE="CIRCLE" COORDS="175,113,7" HREF="javascript:showLayerNumber(4)"> </MAP>
<IMG SRC="map.gif" WIDTH="209" HEIGHT="212" BORDER="0" USEMAP="#mapeuro"> </div>

<BR><BR><BR><BR>autant de retour à la ligne que nécessaire si les calques ne doivent pas se superposer au reste de la page


live.gif (1590 octets)

Si vous utilisez ce script, donnez l'adresse de votre page et elle apparaitra ici

sur Intermedic (images)

sur MMT (texte)


ramses.gif (3062 octets)

Téléchargez le script

ramses2.gif (3094 octets)

Retour