[JavaScript] Déplacer un menu - Débutant

Bonjour tout le monde !!

Vous vous appercevrez vite que je suis complètement nul en JavaScript (il faut dire que je n’ai pas beaucoup cherché à apprendre ce language).

J’aimerais mettre un menu (qui est normalement à gauche) en bas de la page ( http://www.web-creation-fr.com/javascript/index.php?id=7 ).

Ce sont les images de bases :
http://pihug12.free.fr/7/menu.gif[/img] http://pihug12.free.fr/7/menub.gif [img]http://pihug12.free.fr/7/top.gif

Et ca se sont les images que j’aimerais mettre dans mon nouveau menu :
http://pihug12.free.fr/8/menu.gif[/img] http://pihug12.free.fr/8/menub.gif [img]http://pihug12.free.fr/8/top.gif

J’ai fais des screenshots pour vous donner une idée si vous ne comprenez pas :

Vous pouvez voir le script à son exécution ici : http://www.web-creation-fr.com/javascript/voir.php?id=7

<style type="text/css">
<!--
#master	{position:absolute; width: 200px; top: 10px; left: -120px; z-index:2; visibility:visible;}
#menu {position:absolute; width: 18px; top: 0px; left: 120px; z-index:5; visibility:visible;}
#top {position:absolute; width: 120px; top: 0px; left: 0px; z-index:5; visibility:visible;}
#liens {position:absolute; width: 120px; top: 6px; left: 0px; z-index:5; visibility:visible;}
.NavJump {font-family: arial; font-size: 10pt; color: #808080; text-decoration: none;}
a:link.NavJump {color : #808080;}
a:visited.NavJump {color : #808080;}
a:active.NavJump {text-decoration: none; color: #C0C0C0;}
a:hover.NavJump {text-decoration: none; color: #C0C0C0;}
-->
</style>
<script language = "javascript">
<!--

/*
Script amélioré, mis à jour pour NS6+ - Mozilla 1+ et commenté par le site WEB Creation.
Non testé pour NS4 mais devrait fonctionner.
D'autres scripts ?
>> http://www.web-creation-fr.com
Merci de laisser ces commentaires.
*/

// On définit 3 variables, selon les propriétés de calques gérées par le navigateur
var ie = document . all ? 1 : 0
var ns = document . layers ? 1 : 0
var ns6 = document.getElementById && !document.all ? 1 : 0

// Position en hauteur une fois le menu ouvert
var topOpen = 10;
// Position en hauteur lorsque le menu est fermé
var topClosed = 10;

var master = new Object("element")
master . curLeft = -120; // Position de départ du calque
master . curTop = 10; // Hauteur de départ du calque
master . gapLeft = 0;
master . gapTop = 0;
master . timer = null;

function moveAlong(layerName, paceLeft, paceTop, fromLeft, fromTop)
{
    clearTimeout(eval(layerName) . timer);

    if (eval(layerName) . curLeft != fromLeft) {
     // Calcul position horizontale
        if ((Math . max(eval(layerName) . curLeft, fromLeft) - Math . min(eval(layerName) . curLeft, fromLeft)) < paceLeft) {
            eval(layerName) . curLeft = fromLeft;
        } else if (eval(layerName) . curLeft < fromLeft) {
            eval(layerName) . curLeft = eval(layerName) . curLeft + paceLeft;
        } else if (eval(layerName) . curLeft > fromLeft) {
            eval(layerName) . curLeft = eval(layerName) . curLeft - paceLeft;
        } 
        // Définition de la position horizontale du menu
        if (ie) {
            document . all[layerName] . style . left = eval(layerName) . curLeft;
        } 
        if (ns) {
            document[layerName] . left = eval(layerName) . curLeft;
        } 
        if (ns6) {
            document . getElementById(layerName) . style . left = eval(layerName) . curLeft;
        } 
    } 
	
    if (eval(layerName) . curTop != fromTop) {
     // Calcul position verticale
        if ((Math . max(eval(layerName) . curTop, fromTop) - Math . min(eval(layerName) . curTop, fromTop)) < paceTop) {
            eval(layerName) . curTop = fromTop;
        } else if (eval(layerName) . curTop < fromTop) {
            eval(layerName) . curTop = eval(layerName) . curTop + paceTop;
        } else if (eval(layerName) . curTop > fromTop) {
            eval(layerName) . curTop = eval(layerName) . curTop - paceTop;
        } 
        // Définition position verticale du menu
        if (ie) {
            document . all[layerName] . style . top = eval(layerName) . curTop;
        } 
        if (ns) {
            document[layerName] . top = eval(layerName) . curTop;
        } 
        if (ns6) {
            document . getElementById(layerName) . style . top = eval(layerName) . curTop;
        } 
    } 
    eval(layerName) . timer = setTimeout('moveAlong("' + layerName + '",' + paceLeft + ',' + paceTop + ',' + fromLeft + ',' + fromTop + ')', 30)

} // Fin function MoveAlong

function setPace(layerName, fromLeft, fromTop, motionSpeed)
{
    eval(layerName) . gapLeft = (Math . max(eval(layerName) . curLeft, fromLeft) - Math . min(eval(layerName) . curLeft, fromLeft)) / motionSpeed;
    eval(layerName) . gapTop = (Math . max(eval(layerName) . curTop, fromTop) - Math . min(eval(layerName) . curTop, fromTop)) / motionSpeed;
    // Ouvre le menu
    moveAlong(layerName, eval(layerName) . gapLeft, eval(layerName) . gapTop, fromLeft, fromTop)
} 

// Définition du menu à "fermé" lors de l'arrivée sur le site
var expandState = 0;

// Fonction Expand ()
function expand()
{
    if (expandState == 0) { // si le menu est fermé
        // Passe les paramètres d'ouverture à la fonction setPace qui contient la fonction d'ouverture "moveAlong()"
        // setPace ("nom du calque", "position par rapport à la gauche", "position en hauteur", "vitesse d'ouverture")
        setPace("master", 0, topOpen, 10); 
        // Modification de l'image "menu" :
        if (ie) {
            document . menutop . src = "7/menub.gif";
        } else if (ns6) {
            document . getElementById("img_menu") . innerHTML = "<img src=\"7/menub.gif\" border=\"0\" width=\"18\" height=\"70\">";
        } 
        expandState = 1; // définition de l'état à "ouvert"
    } else { // Si le menu est ouvert
        setPace("master", -120, topClosed, 10); // Referme le menu
        // Modification de l'image "menu" :
        if (ie) {
            document . menutop . src = "7/menu.gif";
        } else if (ns6) {
            document . getElementById("img_menu") . innerHTML = "<img src=\"7/menu.gif\" border=\"0\" width=\"18\" height=\"70\">";
        } 
        expandState = 0; // définition de l'état à "fermé"
    } 
} 


//-->
</script>
<div id="master">
	<div id="menu">
	<table border="0" width="18" cellspacing="0" cellpadding="0">
  <tr>
  	<td width="100%">
  	<a href="javascript:expand()" onfocus="this.blur()">
  	<div id="img_menu">
  	<img name="menutop" border="0" src="7/menu.gif" width="18" height="70">
  	</div>
  	</a>
  	</td>
  </tr>
	</table>
	</div>

	<div id="top">
	<table border="0" width="120" cellspacing="0" cellpadding="0">
  <tr>
  	<td width="100%"><img border="0" src="7/top.gif" width="120" height="6"></td>
  </tr>
	</table>
	</div>

	<div id="liens">
	<table border="0" width="120" cellspacing="0" cellpadding="5">
  <tr>
  	<td width="100%">
  	<table border="0" width="100%" bgcolor="#808080" cellspacing="0" cellpadding="0">
    <tr>
    	<td width="100%">
    	<table border="0" width="100%" cellspacing="1" cellpadding="5">
      <tr>
      	<td width="100%" bgcolor="#FFFFFF">
      	<a href="#" class="NavJump"><b>Lien 1</b></a><br>
      	<a href="#" class="NavJump"><b>Lien 2</b></a><br>
      	<a href="#" class="NavJump"><b>Lien 3</b></a><br>
      	<a href="#" class="NavJump"><b>Lien 4</b></a><br>
      	</td>
      </tr>
    	</table>
    	</td>
    </tr>
  	</table>
  	</td>
  </tr>
	</table>
	</div>
</div>

<script language = "javascript">
<!--
if (ie) { var sidemenu = document . all . master; }
if (ns) { var sidemenu = document . master; } 
if (ns6) { var sidemenu = document . getElementById("master"); } 

// Fonction pour que le menu reste toujours visible lors du scroll
function FixY()
{
    if (expandState == 0) {
        if (ie || ns6) { sidemenu . style . top = document . body . scrollTop + topClosed; } 
        if (ns) { sidemenu . top = window . pageYOffset + topClosed; } 
    } else {
        if (ie || ns6) { sidemenu . style . top = document . body . scrollTop + topOpen; } 
        if (ns) { sidemenu . top = window . pageYOffset + topOpen; } 
    } 
} 
// Fonction setInterval qui appelle toutes les 100 ms la fonction FixY qui détecte la position du menu et le remet en place s'il y a scroll
setInterval("FixY()", 100);
//-->
</script>

Petite précision : j’aimerais que le menu soit ouvert au démarrage de la page contrairement à l’autre.

Voila tout !
+++
pihug12 :sol:

S’ils vous plait aidez-moi !!

pihug12 :sol:

Tu pourrais mettre le langage dans le titre? Qu’on sache de quoi ça parle (javascript, etc).

Pour ton problème, un petit onload="expand()" devrait faire quelque chose je pense.

Ca y’est, c’est fait !
Je pense que ce problème n’est pas à ma hauteur. Il faut que je trouve quelque chose qui peut remplacer ca sinon j’en ai pour longtemps encore…

pihug12 :sol: