IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

HTML Discussion :

Menu qui chevauche le texte


Sujet :

HTML

  1. #1
    Futur Membre du Club
    Inscrit en
    Juin 2005
    Messages
    24
    Détails du profil
    Informations forums :
    Inscription : Juin 2005
    Messages : 24
    Points : 8
    Points
    8
    Par défaut Menu qui chevauche le texte
    Bonjour tout le monde !!

    Ce post est un peu la suite de celui-ci.

    J'ai installé ce menu avec succés mais le menu déborde sur le texte :


    Est-ce qu'en modifiant la première partie du script je pourrais arranger ça ??
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    <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>
    Merci de votre aide !!
    pihug12 8)

  2. #2
    Membre régulier Avatar de ThitoO
    Profil pro
    Inscrit en
    Décembre 2004
    Messages
    134
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Décembre 2004
    Messages : 134
    Points : 81
    Points
    81
    Par défaut
    Envoi tout le code source de ton menu, pas seulement la CSS. On peut pas voir a koi correspond les diferents ID de ton css.
    Merci

    ThitoO

  3. #3
    Futur Membre du Club
    Inscrit en
    Juin 2005
    Messages
    24
    Détails du profil
    Informations forums :
    Inscription : Juin 2005
    Messages : 24
    Points : 8
    Points
    8
    Par défaut
    Bonjour ThitoO !

    Pour voir le script complet il fallait cliqué sur le lien juste au-dessus du screenshot

    Mais je poste tout quand même :
    * Entre <head> et </head>
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    129
    130
    <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>
    * Entre <body> et </body>
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    <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>
    Ca fait un peu long je trouve quand même

    +++
    pihug12 8)

  4. #4
    Futur Membre du Club
    Inscrit en
    Juin 2005
    Messages
    24
    Détails du profil
    Informations forums :
    Inscription : Juin 2005
    Messages : 24
    Points : 8
    Points
    8
    Par défaut
    S'ils vous plait !!
    Aidez-moi !!

    C'est si difficile que ça ??

    pihug12 8)

  5. #5
    Membre actif
    Homme Profil pro
    PDG
    Inscrit en
    Septembre 2005
    Messages
    101
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 63
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : PDG
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Septembre 2005
    Messages : 101
    Points : 225
    Points
    225
    Par défaut
    En fait, si ton menu gauche reste fixe quand on scroll, il faut que tu définisses une marge gauche d'au moins la largeur de l'onglet qui dépasse en permanence pour tout ton site. Ainsi ce menu ne passera par-dessus le contenu de ton site que lorsqu'il sera déployé, ce qui est normal.

    Le plus simple est peut-être que tu définisse un div global en lui donnant un padding-left de la largeur de ton onglet plus un ou deux pixels.

  6. #6
    Futur Membre du Club
    Inscrit en
    Juin 2005
    Messages
    24
    Détails du profil
    Informations forums :
    Inscription : Juin 2005
    Messages : 24
    Points : 8
    Points
    8
    Par défaut
    Salut !

    Citation Envoyé par dasdeb
    Le plus simple est peut-être que tu définisse un div global en lui donnant un padding-left de la largeur de ton onglet plus un ou deux pixels.

    Euh... peut-être... oui !!
    Tu peux pas me donner une ligne de code parce que la je me sens tout largué. Si je comprend bien cette ligne est à mettre dans la partie "style" (CSS) du script ??

    Merci de ton aide précieuse !
    pihug12 8)

  7. #7
    Futur Membre du Club
    Inscrit en
    Juin 2005
    Messages
    24
    Détails du profil
    Informations forums :
    Inscription : Juin 2005
    Messages : 24
    Points : 8
    Points
    8
    Par défaut
    J'ai cherché un peu sur Google, mais c'est compliqué et je ne comprend pas tout.
    Je suis sur que ca se fait en deux lignes.
    Personne peut me dire comment on fait ??

    _______________________________________________
    EDIT :
    Il faut que je mette ca :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    .conteneur {
      padding-top: 200px;
    }
    dans un CSS et ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    <div class="conteneur">
     
       texte bla bla bla
       ....
    </div>
    dans le HTML ??
    Comment faire pour que ca s'applique à tout le document ??
    _______________________________________________

    Merci !
    pihug12 8)

  8. #8
    Membre actif
    Homme Profil pro
    PDG
    Inscrit en
    Septembre 2005
    Messages
    101
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 63
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : PDG
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Septembre 2005
    Messages : 101
    Points : 225
    Points
    225
    Par défaut
    Je suppose que le contenu principal de ton site vient après
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    // 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>
    Donc ton
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    <div class="conteneur">
     
       texte bla bla bla
       ....
    </div>
    vient après et entoure tout le reste de ton site.
    Et dans le CSS, tu ajoute
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    .conteneur {
      padding-left: 20px;
    }
    Essaye déjà ça et dis-nous ce que ça donne.

  9. #9
    Futur Membre du Club
    Inscrit en
    Juin 2005
    Messages
    24
    Détails du profil
    Informations forums :
    Inscription : Juin 2005
    Messages : 24
    Points : 8
    Points
    8
    Par défaut
    Bonjour tout le monde !!

    Le résultat est la :


    Je trouve que c'est plutot pas mal (je pense que je vais mettre 18 à la place de 20 pixels qaund même ).
    Le seul truc "un peu pénible", c'est ca :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    <div class="conteneur">   
       texte bla bla bla 
    </div>
    Il n'y a pas un moyen pour que ce style soit appliqué à tout le reste du document ??

    +++
    pihug12 8)

Discussions similaires

  1. Image qui chevauche un texte
    Par Hilary dans le forum Mise en page CSS
    Réponses: 2
    Dernier message: 12/04/2010, 15h47
  2. menu javascript qui chevauche des inputs et listes
    Par jiojioforever dans le forum Balisage (X)HTML et validation W3C
    Réponses: 1
    Dernier message: 09/11/2006, 10h09
  3. [CSS] menu deroulant qui deplace le texte
    Par titor dans le forum Mise en page CSS
    Réponses: 3
    Dernier message: 05/02/2006, 17h52
  4. Menu déroulant qui modifie du texte
    Par oxa dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 18/11/2005, 09h20
  5. menu qui passe au dessus du texte
    Par peck dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 24/12/2004, 15h03

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo