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

JavaScript Discussion :

Manipuler la propriété top d'un div


Sujet :

JavaScript

  1. #1
    Candidat au Club
    Profil pro
    Inscrit en
    Septembre 2010
    Messages
    2
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2010
    Messages : 2
    Points : 2
    Points
    2
    Par défaut Manipuler la propriété top d'un div
    Salut tous,

    Voilà j'aimerai modifier dynamiquement la coordonnée y d'un div pour le centrer verticalement sur l'écran.

    Mon html:
    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
     
     
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head>
    <title>ma page</title>
    <script type='text/javascript' src='script.js'></script> 
    </head>
     
     
    <body>
    <div id="monDiv" style="position: absolute;"><img src="arrow.gif"/></div>
    </body>
     
    </html>

    Mon fichier script.js:

    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
     
    function getWindowHeight() {
        var h = 0;
        if (typeof(window.innerHeight) == 'number') { // Netscape
            h = window.innerHeight;
        } else if (document.documentElement && document.documentElement.clientHeight) {
            h = document.documentElement.clientHeight;
        } else if (document.body && document.body.offsetHeight) { //client
            h = document.body.offsetHeight;
        }
        return h;
    }
     
     
    var postop = getWindowHeight()/2;
     
     
    document.getElementById('monDiv').style.top = postop+"px";

    Evidemment, cela ne fonctionne pas!

    Même en faisant fi de la fonction getWindowHeight() et en assignant
    juste un chiffre quelconque à postop, rien ne passe.


    Si quelqu'un peut m'aider, ce serait chouette!


    Manak.

  2. #2
    Membre actif
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    224
    Détails du profil
    Informations personnelles :
    Âge : 34
    Localisation : France

    Informations forums :
    Inscription : Mai 2005
    Messages : 224
    Points : 201
    Points
    201
    Par défaut
    Bonjour,

    votre code est en fait correct, par contre le javascript s'exécute trop tôt!

    En effet celui ci est sûrement exécuté alors que le div n'a pas été pris en compte par votre navigateur,
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    document.getElementById('monDiv')
    doit probablement être null.

    Vous pouvez contourner ce problème de cette manière :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    function initDivPos()
    {
        document.getElementById('monDiv').style.top = (getWindowHeight() / 2) + "px";
    }
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <body onload="initDivPos()">

Discussions similaires

  1. propriété top qui ne marche pas sur DIV relative
    Par comode dans le forum Mise en page CSS
    Réponses: 7
    Dernier message: 26/07/2013, 09h00
  2. propriété TOP dans un Etat
    Par guigui5931 dans le forum IHM
    Réponses: 6
    Dernier message: 02/09/2006, 17h20
  3. utilisation de la propriété "top" dans un état
    Par Tierisa dans le forum Access
    Réponses: 12
    Dernier message: 13/04/2006, 13h45
  4. Changer une propriété css d'un div en cliquant sur un lien
    Par Le Mage Noir dans le forum Mise en page CSS
    Réponses: 5
    Dernier message: 26/01/2006, 15h13
  5. [CSS] propriété resizable pour une div ?
    Par 10-nice dans le forum Mise en page CSS
    Réponses: 1
    Dernier message: 22/09/2005, 10h12

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