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 :

deplacement de Div


Sujet :

JavaScript

  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Février 2009
    Messages
    17
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2009
    Messages : 17
    Par défaut deplacement de Div
    Bonjour à tous,

    voici mon code dont le but est de déplacer un div, mais celui-ci ne ce déplace pas et je ne sais pas pourquoi.

    dans cette source j'ai mis deux balise div la premier sert de contrôle de la progression du déplacement de la souris qui fonctionne parfaitement

    par contre la deuxième qui devrait bouger ne le fait pas.

    merci pour vos explications

    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
     
     
    <!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>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <title>Document sans nom</title>
     
    <script type="text/javascript">
     
    var x = 0;
    var y = 0;
     
    if (document.getElementById)
    {
       if(navigator.appName.substring(0,3) == "Net")   
        document.captureEvents(Event.MOUSEMOVE);
       document.onmousemove = Pos_Souris;
       window.onload = bouge;
    }
     
    function Pos_Souris(e)
    {
      x = (navigator.appName.substring(0,3) == "Net") ? e.pageX : event.x + document.body.scrollLeft;
      y = (navigator.appName.substring(0,3) == "Net") ? e.pageY : event.y + document.body.scrollTop;
    }
     
    posX = 0;
    posY = 0;
     
    function bouge(){
    	if (document.getElementById) {
    	 posX = posX+(((x-posX)+20)/15);
         posY = posY+(((y-posY)+20)/15);
      	 document.getElementById("coord1").innerHTML = posX;	
    	 document.getElementById("bouge").style.left = posX;
    	 document.getElementById("bouge").style.top = posY;
         tempo = setTimeout("bouge()", 15);
    	}
    }
     
    </script>
     
    </head>
     
    <body>
     
    <div id="coord1">.</div>
    <div id="bouge" style="position:absolute">test</div>
     
    </body>
    </html>

  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 : 54
    Localisation : France, Gironde (Aquitaine)

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

    Informations forums :
    Inscription : Juin 2008
    Messages : 23 647
    Billets dans le blog
    20
    Par défaut
    Première chose :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    if (document.getElementById)
    quels sont les navigateurs qui ne reconnaissent pas getElementById ???
    Ou pour reformuler, tu connais beaucoup de gens qui utilisent encore IE4
    Ensuite, un script limité à IE, c'est un peu limitatif de nos jours !
    Enfin, pour ton soucis, avec IE, event est une propriété de l'objet window, donc
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    function Pos_Souris(event)
    var e = window.event;
    {
      x = (navigator.appName.substring(0,3) == "Net") ? e.pageX : event.x + document.body.scrollLeft;
      y = (navigator.appName.substring(0,3) == "Net") ? e.pageY : event.y + document.body.scrollTop;
    }
    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
    Membre averti
    Profil pro
    Inscrit en
    Février 2009
    Messages
    17
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2009
    Messages : 17
    Par défaut
    Bonjour,

    je prends note de tes remarques, cela dit cela ne fonctionne toujours ni sur ie et autre navigateur, le calque test reste figé. voici le code réécrit.
    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
     
    <script type="text/javascript">
     
    var x = 0;
    var y = 0;
     
    if(navigator.appName.substring(0,3) == "Net") document.captureEvents(Event.MOUSEMOVE);
    document.onmousemove = Pos_Souris;
    window.onload = bouge;
     
     
    function Pos_Souris(e)
    {
      var e = window.event;
      x = (navigator.appName.substring(0,3) == "Net") ? e.pageX : event.x + document.body.scrollLeft;
      y = (navigator.appName.substring(0,3) == "Net") ? e.pageY : event.y + document.body.scrollTop;
    }
     
    posX = 0;
    posY = 0;
     
    function bouge(){
     posX = posX+(((x-posX)+20)/15);
     posY = posY+(((y-posY)+20)/15);
     document.getElementById("coord1").innerHTML = posX;	
     document.getElementById("bouge").style.left = posX;
     document.getElementById("bouge").style.top = posY;
     tempo = setTimeout("bouge()", 15);
    }
     
    </script>

  4. #4
    Rédacteur/Modérateur
    Avatar de andry.aime
    Homme Profil pro
    Inscrit en
    Septembre 2007
    Messages
    8 391
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Ile Maurice

    Informations forums :
    Inscription : Septembre 2007
    Messages : 8 391
    Par défaut
    Salut,
    tempo = setTimeout("bouge()", 15);
    avec 15 ms! ça bouffe de ressource processeur, en plus tu faits une boucle récursive,
    utilise setInterval.

  5. #5
    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 : 54
    Localisation : France, Gironde (Aquitaine)

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

    Informations forums :
    Inscription : Juin 2008
    Messages : 23 647
    Billets dans le blog
    20
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    function Pos_Souris(e)
    {
      var evt = window.event || e;
      x = (navigator.appName.substring(0,3) == "Net") ? evt.pageX : evt.x + document.body.scrollLeft;
      y = (navigator.appName.substring(0,3) == "Net") ? evt.pageY : evt.y + document.body.scrollTop;
    }
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    function bouge(){
     posX = posX+(((x-posX)+20)/15);
     posY = posY+(((y-posY)+20)/15);
     document.getElementById("coord1").innerHTML = posX;	
     document.getElementById("bouge").style.left = posX + 'px';
     document.getElementById("bouge").style.top = posY + 'px';
     tempo = setTimeout("bouge()", 15);
    }
    Pour le setTimeout, prends en compte la remarque d'Andry
    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

  6. #6
    Membre averti
    Profil pro
    Inscrit en
    Février 2009
    Messages
    17
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2009
    Messages : 17
    Par défaut Div en déplacement
    Bonjour,

    Merci pour ta réponse, mon dysfonctionnement est dut au DOCTYPE
    en ajoutant + "px" cela fonctionne parfaitement

    cordialement,
    MP

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Deplacer un div vers la droite
    Par pierre002 dans le forum Général JavaScript
    Réponses: 6
    Dernier message: 10/05/2010, 07h47
  2. [Débutant] Deplacer div vers le bas !
    Par kilian dans le forum Mise en page CSS
    Réponses: 2
    Dernier message: 13/12/2009, 19h42
  3. [CSS 2] deplacement automatique d'une Div
    Par youness_ka dans le forum Mise en page CSS
    Réponses: 1
    Dernier message: 07/04/2009, 16h18
  4. deplacer des div dans une page
    Par reski dans le forum Général JavaScript
    Réponses: 4
    Dernier message: 28/10/2006, 14h04
  5. cumul d'evenement / deplacement de div avec la souris
    Par highman dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 01/04/2006, 11h59

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