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 :

Déplacement de div


Sujet :

JavaScript

  1. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Novembre 2010
    Messages
    226
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2010
    Messages : 226
    Points : 39
    Points
    39
    Par défaut Déplacement de div
    Bonjour,
    depuis plusieur jour j'ai un soucis

    je voudrai pouvoir pouvoir deplacer deux div (j'ai donc utiliser le javascript)
    j'arrive a deplacer mes divs sans aucun soucis sur mon jsfiddle

    http://jsfiddle.net/raKqs/

    j'ai donc fais une page html :

    voila ma page html

    Code html : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    <html>
    <head>
    	<meta charset="utf-8" />
    	<title> essaie mouvenemnt canvas </title>
    	<link rel="stylesheet" href="style.css" type="text/css" media="screen" />
    	<script type="text/javascript" src="move.js"></script>
    </head>
    <body>
    <div id="back"></div>
    <div class="draggable" style="background-color: green;"></div>
    <div class="draggable" style="top: 125px;"></div>
    </body>
    </html>

    voila ma page 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
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    var maxHeight = window.innerHeight;
    var midDragWidth = 20; //half width of draggable
    var midDragHeight = 40; //half height of draggable
     
    var draggables = document.getElementsByClassName("draggable");
    var drags = Array.prototype.slice.call(draggables);
    console.log(drags);
    for (var key in drags) {
        var drag = draggables[key];
        drag.onmousedown = function () {
            var tmpDrag = this;
            document.onmousemove = function (e) {
                x = e.clientX;
                y = e.clientY;
                if (maxHeight - midDragHeight < y) {
                    y = maxHeight - midDragHeight;
                } else if (0 > y - midDragHeight) {
                    y = midDragHeight;
                }
                if (maxWidth - midDragWidth < x) {
                    x = maxWidth - midDragWidth;
                } else if (0 > x - midDragWidth) {
                    x = midDragWidth;
                }
                tmpDrag.style.top = (y - midDragHeight) + "px";
                tmpDrag.style.left = (x - midDragWidth) + "px";
            };
        };
     
        drag.onmouseup = function () {
            document.onmousemove = null;
        }
    }
    cette page est inclue dans le head (move.js)

    et la impossible de bouger les div

    pouvez vous m'aider ?

  2. #2
    Rédacteur

    Avatar de Bovino
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juin 2008
    Messages
    23 647
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2008
    Messages : 23 647
    Points : 91 418
    Points
    91 418
    Billets dans le blog
    20
    Par défaut
    Au moment où tu inclues ton script, le DOM n'existe pas, donc document.getElementsByClassName("draggable"); ne contient aucun élément.
    Pas de question technique par MP !
    Tout le monde peut participer à developpez.com, vous avez une idée, contactez-moi !
    Mes formations video2brain : La formation complète sur JavaScriptJavaScript et le DOM par la pratiquePHP 5 et MySQL : les fondamentaux
    Mon livre sur jQuery
    Module Firefox / Chrome d'intégration de JSFiddle et CodePen sur le forum

  3. #3
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Novembre 2010
    Messages
    226
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2010
    Messages : 226
    Points : 39
    Points
    39
    Par défaut
    comment dois-je faire donc ?

    j'ai deplacer comme ceci :

    index.html
    Code html : 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
    <html>
    <head>
    	<meta charset="utf-8" />
    	<title> essaie mouvenemnt canvas </title>
    	<link rel="stylesheet" href="style.css" type="text/css" media="screen" />
    </head>
    <body>
     
     
    <div id="back"></div>
    <div class="draggable" style="background-color: green;"></div>
    <div class="draggable" style="top: 125px;"></div>
    <script>
    var maxHeight = window.innerHeight;
    var midDragWidth = 20; //half width of draggable
    var midDragHeight = 40; //half height of draggable
     
    var draggables = document.getElementsByClassName("draggable");
    var drags = Array.prototype.slice.call(draggables);
    console.log(drags);
    for (var key in drags) {
        var drag = draggables[key];
        drag.onmousedown = function () {
            var tmpDrag = this;
            document.onmousemove = function (e) {
                x = e.clientX;
                y = e.clientY;
                if (maxHeight - midDragHeight < y) {
                    y = maxHeight - midDragHeight;
                } else if (0 > y - midDragHeight) {
                    y = midDragHeight;
                }
                if (maxWidth - midDragWidth < x) {
                    x = maxWidth - midDragWidth;
                } else if (0 > x - midDragWidth) {
                    x = midDragWidth;
                }
                tmpDrag.style.top = (y - midDragHeight) + "px";
                tmpDrag.style.left = (x - midDragWidth) + "px";
            };
        };
     
        drag.onmouseup = function () {
            document.onmousemove = null;
        }
    }
    </script>
    </body>
    </html>

    cela ne change rien

  4. #4
    Modérateur

    Avatar de NoSmoking
    Homme Profil pro
    Inscrit en
    Janvier 2011
    Messages
    16 959
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations forums :
    Inscription : Janvier 2011
    Messages : 16 959
    Points : 44 122
    Points
    44 122
    Par défaut
    Bonjour,
    je commencerais par mettre un DOCTYPE, cela peut aider, mais surtout il semblerait que tu ais oublié de renseigner la variable maxWidth.

Discussions similaires

  1. Déplacement de DIV
    Par brazilia28 dans le forum Général JavaScript
    Réponses: 8
    Dernier message: 28/06/2007, 16h49
  2. [POO] POO, méthode et déplacement de DIV
    Par philippe.z dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 19/06/2007, 15h55
  3. [Javascript] déplacement de div suivant souris
    Par LE NEINDRE dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 20/06/2006, 16h45
  4. CSS déplacement de div
    Par Taz_8626 dans le forum Mise en page CSS
    Réponses: 3
    Dernier message: 21/04/2006, 16h11
  5. Déplacement de div
    Par glloq8 dans le forum Général JavaScript
    Réponses: 15
    Dernier message: 07/11/2005, 14h22

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