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 :

Affilier le nouveau parent après déplacement dynamique d'un div


Sujet :

JavaScript

  1. #1
    Inactif  

    Homme Profil pro
    cuisiniste
    Inscrit en
    Avril 2009
    Messages
    15 379
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : cuisiniste
    Secteur : Bâtiment

    Informations forums :
    Inscription : Avril 2009
    Messages : 15 379
    Points : 12 075
    Points
    12 075
    Billets dans le blog
    8
    Par défaut Affilier le nouveau parent après déplacement dynamique d'un div
    Bonjour a tous

    je cherche a affilier le parent a un div après son déplacement dynamique avec la souris
    un peu comme avec ondrag/ondrop seulement je ne peut pas utiliser ces deux fonctions car le div déplacé est juste en dessous le curseur donc le drop ne peut pas fonctionner

    donc je déplace mes divs a volonté et des que le div en déplacement (left et top )correspondent a un endroit a l'intérieur d'un autre div
    le div déplacé doit devenir l'enfant de celui ci et cela a volonté

    de la même manière si je déplace un div qui est déjà enfant d'un autre en le déplaçant il doit devenir l'enfant de celui a qui correspond la condition left et top
    c'est sur ce point que je bloque
    en effet dans l'exemple ci dessous on place le bleu dans le rouge ,le vert dans le bleu ca fonctionne , quand on déplace le rouge après tout les divs bouge avec
    par contre c'est des que je sort le bleu du rouge ou le vert du bleu ca déraille

    si vous avez une idée je suis preneur
    merci d'avance
    voila le code actuel
    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
    <!DOCTYPE HTML>
    <html>
      <head>
       <title>patrick WYSIWYG html </title>
       <meta http-equiv="Content-type" content="text/html; charset=utf-8" />
    <meta http-equiv="X-UA-Compatible" content="IE=10"> 
    <style>
    </style>
    <script  type= "text/javascript">
    var Ed=document.getElementById("editeur");
    var DX,DY,oX,oY;
    var dragged;
    var bordure;
    typeof window.addEventListener == 'undefined' ? document.attachEvent("onmousemove",WhereMouse) : document.addEventListener('mousemove',WhereMouse,false);
    typeof window.addEventListener == 'undefined' ? document.attachEvent("onmouseup",drag_onmouseup) : document.addEventListener('mouseup',drag_onmouseup,false);
    function drag_onmouseup(ev) {
    if (dragged!=null){ 
    dragged.style.border=bordure;
    X= event.clientX + (document.documentElement.scrollLeft + document.body.scrollLeft);Y = event.clientY + (document.documentElement.scrollTop + document.body.scrollTop);
    var obj=document.elementFromPoint(oX,oY);     //oX et oY sont calculés dans le mousemove 
    var par=dragged.parentElement;
     
    if (par.id!=obj.id){
    obj.appendChild(dragged);
    if(obj.id!="editeur"){dragged.style.left="30px";dragged.style.top="30px";obj.style.left=obj.offsetLeft+1+"px";}
    if (obj.id=="editeur"){dragged.style.left=X-DX+"px";dragged.style.top=Y-DY+"px";}
     
    }
    if (obj.id=="editeur"){dragged.style.left=X-DX+"px";dragged.style.top=Y-DY+"px";}
    }
    dragged=null
     
    }  //On arrête le drag}
     
    function dragstart(ev) {
     
    dragged=ev.target; bordure= dragged.style.border;
    dragged.style.border="2px dotted #8258FA";
    X= event.clientX + (document.documentElement.scrollLeft + document.body.scrollLeft);Y = event.clientY + (document.documentElement.scrollTop + document.body.scrollTop);
    DX=0;DY=0; DX=X-dragged.offsetLeft; DY=Y-dragged.offsetTop;event.returnValue = false; if( event.preventDefault ) event.preventDefault();
    }
     
    function WhereMouse( ){
    if(dragged!=null){
    Mouse_X= event.clientX + (document.documentElement.scrollLeft + document.body.scrollLeft);Mouse_Y = event.clientY + (document.documentElement.scrollTop + document.body.scrollTop);
    Mouse_X-= DX;Mouse_Y-= DY;   dragged.style.left = Mouse_X  + 'px';    dragged.style.top = Mouse_Y + 'px';    dragged.style.position="absolute"; oX=Mouse_X-10; oY=Mouse_Y+5;  }
    }
     
    </script>
    <body>
     <button  onclick="insertdiv()"> ajouter un div </button>
     <div  id="editeur"contenteditable="true" style="height: 90%; min-height:600px;width: 90%;border:1px solid black;">
     <p> du texte dans l'editeur</p>
     
         <div  id="red" class="divint" ondragstart="dragstart(event)"  style="width:250px;height:250px;border:1px solid red;" ><p> du texte dans mon div </p></div>
     
    <div  id="blue" class="divint" ondragstart="dragstart(event)"style="width:200px;height:200px;border:1px solid blue;" ><p>du texte dans celui ci </p></div>
                <div  id="green" class="divint" ondragstart="dragstart(event)"style="width:100px;height:100px;border:1px solid green;" ><p>celui la aussi   </p></div>
     
     
     
    </div>
    </body>
    mes fichiers dans les contributions:
    mail avec CDO en vba et mail avec CDO en vbs dans un HTA
    survol des bouton dans userform
    prendre un cliché d'un range

    si ton problème est résolu n'oublie pas de pointer : : ça peut servir aux autres
    et n'oublie pas de voter

  2. #2
    Expert éminent
    Avatar de Watilin
    Homme Profil pro
    En recherche d'emploi
    Inscrit en
    Juin 2010
    Messages
    3 093
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : En recherche d'emploi

    Informations forums :
    Inscription : Juin 2010
    Messages : 3 093
    Points : 6 754
    Points
    6 754
    Par défaut
    Salut,

    sous Firefox 48, quand je teste ta page, je ne peux pas déplacer les divs. Du fait de l’attribut contenteditable, quand j’esquisse un glisser-déposer, ça sélectionne du texte, quelle que soit la position du curseur. Et si je fais glisser du texte sélectionné, la console me dit « dragged.style is undefined », ce qui s’explique par le fait que l’objet déplacé est un nœud #text, qui n’a donc pas de propriété style.

    J’attire ton attention sur l’âge de la fonction attachEvent : elle n’est nécessaire que jusqu’à IE8. À toi de juger si ça vaut le coup de compliquer son code pour supporter des navigateurs obsolètes. De plus, tu as une balise meta indiquant que ta page est censée être compatible avec IE10.

    Je me suis permis de modifier un peu ta page et de passer ton script en mode strict. Attention, tu as des variables non déclarées. Utilise la console F12.

    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
    <!DOCTYPE html>
    <html lang="fr">
    <head>
      <title>Patrick WYSIWYG html</title>
      <meta charset="utf-8">
      <meta http-equiv="X-UA-Compatible" content="IE=10">
      <style>
     
    #editeur {
      height: 90%;
      min-height: 600px;
      width: 90%;
      border: 1px solid black;
    }
    #red   { width: 250px; height: 250px; border: 1px solid red;   }
    #blue  { width: 200px; height: 200px; border: 1px solid blue;  }
    #green { width: 100px; height: 100px; border: 1px solid green; }
     
      </style>
      <script type="text/javascript">
     
    'use strict';
     
    var Ed = document.getElementById('editeur');
    var DX, DY, oX, oY;
    var dragged;
    var bordure;
     
    document.addEventListener('mousemove', WhereMouse);
    document.addEventListener('mouseup', drag_onmouseup);
     
    function drag_onmouseup(ev) {
      if (dragged) {
        dragged.style.border = bordure;
        X = ev.clientX + (document.documentElement.scrollLeft + document.body.scrollLeft);
        Y = ev.clientY + (document.documentElement.scrollTop + document.body.scrollTop);
        var obj = document.elementFromPoint(oX, oY); //oX et oY sont calculés dans le mousemove
        var par = dragged.parentElement;
        if (par.id !== obj.id) {
          obj.appendChild(dragged);
          if (obj.id !== 'editeur') {
            dragged.style.left = '30px';
            dragged.style.top  = '30px';
            obj.style.left = (obj.offsetLeft + 1) + 'px';
          } else {
            dragged.style.left = (X - DX) + 'px';
            dragged.style.top  = (Y - DY) + 'px';
          }
        }
        if ('editeur' === obj.id) {
          dragged.style.left = (X - DX) + 'px';
          dragged.style.top  = (Y - DY) + 'px';
        }
      }
      dragged = null;
    } //On arrête le drag
     
    function dragstart(ev) {
      ev.preventDefault();
      dragged = ev.target;
      bordure = dragged.style.border;
      dragged.style.border = '2px dotted #8258FA';
      X = ev.clientX + (document.documentElement.scrollLeft + document.body.scrollLeft);
      Y = ev.clientY + (document.documentElement.scrollTop + document.body.scrollTop);
      DX = X - dragged.offsetLeft;
      DY = Y - dragged.offsetTop;
    }
     
    function WhereMouse(ev) {
      if (dragged != null) {
        Mouse_X = ev.clientX + (document.documentElement.scrollLeft + document.body.scrollLeft);
        Mouse_Y = ev.clientY + (document.documentElement.scrollTop + document.body.scrollTop);
        Mouse_X -= DX;
        Mouse_Y -= DY;
        dragged.style.left = Mouse_X + 'px';
        dragged.style.top =  Mouse_Y + 'px';
        dragged.style.position = 'absolute';
        oX = Mouse_X - 10;
        oY = Mouse_Y + 5;
      }
    }
     
      </script>
    </head>
    <body>
      <button>Ajouter un div</button>
     
      <div id="editeur" contenteditable="true">
        <p>Du texte dans l’éditeur</p>
        <div id="red" class="divint"><p>Du texte dans mon div</p></div>
        <div id="blue" class="divint"><p>Du texte dans celui-ci</p></div>
        <div id="green" class="divint"><p>Celui-là aussi</p></div>
      </div>
     
      <script type="text/javascript">
     
      'use strict';
     
      document.getElementById('red'  ).addEventListener('dragstart', dragstart);
      document.getElementById('blue' ).addEventListener('dragstart', dragstart);
      document.getElementById('green').addEventListener('dragstart', dragstart);
      document.querySelector('button').addEventListener('click', insertdiv);
     
      </script>
    </body>
    </html>
    La FAQ JavaScript – Les cours JavaScript
    Touche F12 = la console → l’outil indispensable pour développer en JavaScript !

  3. #3
    Inactif  

    Homme Profil pro
    cuisiniste
    Inscrit en
    Avril 2009
    Messages
    15 379
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : cuisiniste
    Secteur : Bâtiment

    Informations forums :
    Inscription : Avril 2009
    Messages : 15 379
    Points : 12 075
    Points
    12 075
    Billets dans le blog
    8
    Par défaut re
    Bonjour Watilin et merci pour ce retour
    J’attire ton attention sur l’âge de la fonction attachEvent : elle n’est nécessaire que jusqu’à IE8. À toi de juger si ça vaut le coup de compliquer son code pour supporter des navigateurs obsolètes. De plus, tu as une balise meta indiquant que ta page est censée être compatible avec IE10.
    oui alors :
    j'ai oublié de preciser comme dans mes derniers post a se sujet que le WYSIWYG va etre implanter dans le document d'un control OCX(Webbrowser) dans un userform en vba excel

    malheureusement ce control n'a pas évolué d'un yota depuis Excel 2003 ce qui implique que tout ce qui ne fonctionne pas avec IE 8/9 ne fonctionnera pas avec le webbrowser

    la balise meta m'aide a faire accepter certaines chose mais pas tout après oui attachevent n'est pas nécessaire j'en convient

    mais avant tout le wysiwyg est destiné pour un document coder pour IE 9/10 car se sont les seules possibilité que j'ai

    je vais tester ton code pour me faire une idée

    merci pour le retours

    EDIT:

    apres test c'est bien ce que je pensais dans un fichier html local ca ne fonctionne pas avec IE11 ca fonctionnera encore moins avec mon webbrowser

    fait le test de ton code avec IE tu verra
    mes fichiers dans les contributions:
    mail avec CDO en vba et mail avec CDO en vbs dans un HTA
    survol des bouton dans userform
    prendre un cliché d'un range

    si ton problème est résolu n'oublie pas de pointer : : ça peut servir aux autres
    et n'oublie pas de voter

  4. #4
    Expert éminent
    Avatar de Watilin
    Homme Profil pro
    En recherche d'emploi
    Inscrit en
    Juin 2010
    Messages
    3 093
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : En recherche d'emploi

    Informations forums :
    Inscription : Juin 2010
    Messages : 3 093
    Points : 6 754
    Points
    6 754
    Par défaut
    Au moins tu connais l’environnement cible, c’est à moitié une bonne nouvelle. Du coup ça te permet d’utiliser systématiquement attachEvent et d’oublier addEventListener, non ?

    J’ai IE11 sous la main, je vais faire quelques tests.
    La FAQ JavaScript – Les cours JavaScript
    Touche F12 = la console → l’outil indispensable pour développer en JavaScript !

  5. #5
    Inactif  

    Homme Profil pro
    cuisiniste
    Inscrit en
    Avril 2009
    Messages
    15 379
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : cuisiniste
    Secteur : Bâtiment

    Informations forums :
    Inscription : Avril 2009
    Messages : 15 379
    Points : 12 075
    Points
    12 075
    Billets dans le blog
    8
    Par défaut re
    re
    Au moins tu connais l’environnement cible, c’est à moitié une bonne nouvelle. Du coup ça te permet d’utiliser systématiquement attachEvent et d’oublier addEventListener, non ?
    et oui mais non le webbrowser(OCX) selon les version de excel va répondre comme IE9 ou 10 ou 11

    pourquoi?:

    et bien parce que le webbrowser est une photocopie de l'explorateur IE9 plus ou moins

    seulement certaine fonctions DOM sont absente alors on manipule le document!!!!! de l'object avec les librairie de IE installée (présentes dans le pc) selon le choix de l'utilisateur

    donc si l'utilisateur a IE 11 il a tout donc avec la balise meta compatible je monte jusqu'à edge ce qui me donne pratiquement tout de IE10 et un peu IE11

    par contre si l'utilisateur comme beaucoup n'ont que IE 9 d'installé je serais limité

    je n'ai pas eu de retour encore avec le webbroser et IE 09 d'installé je ne sais pas si je peut abandonner attachEvent

    j'ai comparé ton code au mien il n'est pas très différents du mien si ce n'est qu'il est certainement plus propre

    les expression de comparaison diffèrent un peu ca vient de la peut etre ???? !== chez toi != chez moi
    mes fichiers dans les contributions:
    mail avec CDO en vba et mail avec CDO en vbs dans un HTA
    survol des bouton dans userform
    prendre un cliché d'un range

    si ton problème est résolu n'oublie pas de pointer : : ça peut servir aux autres
    et n'oublie pas de voter

  6. #6
    Inactif  

    Homme Profil pro
    cuisiniste
    Inscrit en
    Avril 2009
    Messages
    15 379
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : cuisiniste
    Secteur : Bâtiment

    Informations forums :
    Inscription : Avril 2009
    Messages : 15 379
    Points : 12 075
    Points
    12 075
    Billets dans le blog
    8
    Par défaut re fonctionne sans use strict!!!
    re
    bon j'ai tout essayé et ton code fonctionne sans le "use strict" mais ca ne résout toujours pas mon problème de sortie d'un div fils d'un div class"divint" vers le div id=éditeur

    visiblement atachEvent ou addEventlistener fonctionnent de la même manière donc ca n'est pas trop le soucis

    et même au pire je le ferait en DOM1 "element.ondragstart=function(){blablabla}
    mes fichiers dans les contributions:
    mail avec CDO en vba et mail avec CDO en vbs dans un HTA
    survol des bouton dans userform
    prendre un cliché d'un range

    si ton problème est résolu n'oublie pas de pointer : : ça peut servir aux autres
    et n'oublie pas de voter

  7. #7
    Membre expérimenté
    Homme Profil pro
    chomeur
    Inscrit en
    Avril 2015
    Messages
    710
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 79
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations professionnelles :
    Activité : chomeur
    Secteur : Distribution

    Informations forums :
    Inscription : Avril 2015
    Messages : 710
    Points : 1 585
    Points
    1 585
    Par défaut
    jour

    pour deplacer un element de sont parent vers un autre parent il suffit d'utiliser appendChild en prenant comme reference l'element cible
    Plus vite encore plus vite toujours plus vite.

  8. #8
    Inactif  

    Homme Profil pro
    cuisiniste
    Inscrit en
    Avril 2009
    Messages
    15 379
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : cuisiniste
    Secteur : Bâtiment

    Informations forums :
    Inscription : Avril 2009
    Messages : 15 379
    Points : 12 075
    Points
    12 075
    Billets dans le blog
    8
    Par défaut
    re
    Bonjour Melka One
    oui c'est ce que je fait ca fonctionne de editeur a divint mais pas l'inverse

    des que je sort un div enfant d'un div class divint il reste coller a ma souris ce pot de colle même sans le bouton appuyé
    mes fichiers dans les contributions:
    mail avec CDO en vba et mail avec CDO en vbs dans un HTA
    survol des bouton dans userform
    prendre un cliché d'un range

    si ton problème est résolu n'oublie pas de pointer : : ça peut servir aux autres
    et n'oublie pas de voter

  9. #9
    Membre averti
    Profil pro
    Inscrit en
    Décembre 2007
    Messages
    197
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2007
    Messages : 197
    Points : 300
    Points
    300
    Par défaut
    Bonjour,

    Apparemment, lorsque j'essaie sous IE, j'ai de temps en temps une erreur sur la ligne :
    de la fonction "drag_onmouseup".

    Cette erreur survient parce que à ce moment là, la variable "obj" est à null et qu'il n'arrive pas à accéder à la propriété "id".
    Lorsque je relance le débogueur pour continuer le programme, c'est à ce moment là que la div reste collée à la souris.
    A mon avis, tu dois avoir, dans certains cas de figure, un petit souci de calcul des propriétés ox et oy que tu embarques depuis la fonction "WhereMouse" puisque j'ai remarqué que "oX" est négatif lorsque le problème survient et que donc la méthode "elementFromPoint" fait du coup chou-blanc.

    Espérant que c'est une piste.

  10. #10
    Inactif  

    Homme Profil pro
    cuisiniste
    Inscrit en
    Avril 2009
    Messages
    15 379
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : cuisiniste
    Secteur : Bâtiment

    Informations forums :
    Inscription : Avril 2009
    Messages : 15 379
    Points : 12 075
    Points
    12 075
    Billets dans le blog
    8
    Par défaut re
    re
    ah!! oui cela en est une de piste

    effectivement j'ai pas testé mais c'est logique puisque ox est calculé avec la position X -le offsetleft et encore - 10 donc forcement négatif

    je vais faire des testes voir si c'est avéré

    je vais recalculer sa position dans le mouse up
    merci pour le retour
    mes fichiers dans les contributions:
    mail avec CDO en vba et mail avec CDO en vbs dans un HTA
    survol des bouton dans userform
    prendre un cliché d'un range

    si ton problème est résolu n'oublie pas de pointer : : ça peut servir aux autres
    et n'oublie pas de voter

  11. #11
    Inactif  

    Homme Profil pro
    cuisiniste
    Inscrit en
    Avril 2009
    Messages
    15 379
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : cuisiniste
    Secteur : Bâtiment

    Informations forums :
    Inscription : Avril 2009
    Messages : 15 379
    Points : 12 075
    Points
    12 075
    Billets dans le blog
    8
    Par défaut rer
    bon voila maintenant je determine bien l'ancien et le nouveau parent
    des que j'ai affilier le div a son nouveau parent et que je drag ce nouveau parent le nouvel enfant est carrément supprimé, j'ai bien vérifié dans l'inspecteur


    ce truc m'épuise gravement
    c'est incroyable de désespérer autant pour faire quelque chose d'aussi simple
    celui qui a inventé le JavaScript il devait "tortiller du C..pour C..... droit" comme on dit chez nous
    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
    <!DOCTYPE HTML>
    <html>
      <head>
       <title>patrick WYSIWYG html </title>
       <meta http-equiv="Content-type" content="text/html; charset=utf-8" />
    <meta http-equiv="X-UA-Compatible" content="IE=10"> 
    <style>
    </style>
    <script  type= "text/javascript">
    var Ed=document.getElementById("editeur");
    var DX,DY,oX,oY;
    var newparent;
    var oldparent;
    var dragged;
    var bordure;
    //typeof window.addEventListener == 'undefined' ? document.attachEvent("onmousemove",WhereMouse) : document.addEventListener('mousemove',WhereMouse,false);
    //typeof window.addEventListener == 'undefined' ? document.attachEvent("onmouseup",drag_onmouseup) : document.addEventListener('mouseup',drag_onmouseup,false);
     document.addEventListener('mousemove',WhereMouse,false);
    document.addEventListener('mouseup',drag_onmouseup,false);
    function drag_onmouseup(ev) {
    Mouse_X= event.clientX + (document.documentElement.scrollLeft + document.body.scrollLeft);Mouse_Y = event.clientY + (document.documentElement.scrollTop + document.body.scrollTop);
    if (dragged!=null){ 
    dragged.style.border=bordure;
     
    if(oldparent.id!=newparent.id){
    newparent.appendChild(dragged);}
    if (newparent.className=="divint"){dragged.style.left="30px";dragged.style.top="30px";}
     
    }
    oldparent=null;
    newparent=null;
    dragged=null;
     
    }  //On arrête le drag}
     
    function dragstart(ev) {
     
    dragged=ev.target; bordure= dragged.style.border;
    oldparent=dragged.parentElement;
    dragged.innerHTML=oldparent.id;
    dragged.style.border="2px dotted #8258FA";
    X= event.clientX + (document.documentElement.scrollLeft + document.body.scrollLeft);Y = event.clientY + (document.documentElement.scrollTop + document.body.scrollTop);
    DX=0;DY=0; DX=X-dragged.offsetLeft; DY=Y-dragged.offsetTop;event.returnValue = false; if( event.preventDefault ) event.preventDefault();
    }
     
    function WhereMouse( ){
    if(dragged!=null){
    Mouse_X= event.clientX + (document.documentElement.scrollLeft + document.body.scrollLeft);Mouse_Y = event.clientY + (document.documentElement.scrollTop + document.body.scrollTop);
    Mouse_X-= DX;Mouse_Y-= DY;   dragged.style.left = Mouse_X  + 'px';    dragged.style.top = Mouse_Y + 'px';    dragged.style.position="absolute";
    var rect = dragged.getBoundingClientRect ();oX=rect.left-10;oY=rect.top;
    newparent=document.elementFromPoint(oX,oY);             
    dragged.innerHTML ="oldparent = " + oldparent.id +"<br>nouveau parent = " +newparent.id;
    }
     }
    </script>
    <body>
     <button  onclick="insertdiv()"> ajouter un div </button>
     <div  id="editeur"contenteditable="true" style="height: 90%; min-height:600px;width: 90%;border:1px solid black;">
     <p> du texte dans l'editeur</p>
     
         <div  id="red" class="divint" ondragstart="dragstart(event)"  style="width:250px;height:250px;border:1px solid red;" ><p> du texte dans mon div </p></div>
     
    <div  id="blue" class="divint" ondragstart="dragstart(event)"style="width:200px;height:200px;border:1px solid blue;" ><p>du texte dans celui ci </p></div>
                <div  id="green" class="divint" ondragstart="dragstart(event)"style="width:100px;height:100px;border:1px solid green;" ><p>celui la aussi   </p></div>
     
     
     
    </div>
    </body>
    alors comment fait on une bonne fois pour toute ?????
    mes fichiers dans les contributions:
    mail avec CDO en vba et mail avec CDO en vbs dans un HTA
    survol des bouton dans userform
    prendre un cliché d'un range

    si ton problème est résolu n'oublie pas de pointer : : ça peut servir aux autres
    et n'oublie pas de voter

  12. #12
    Membre averti
    Profil pro
    Inscrit en
    Décembre 2007
    Messages
    197
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2007
    Messages : 197
    Points : 300
    Points
    300
    Par défaut
    Bonjour Patrick

    Il ne faut pas désespérer hihi

    Dans ton code, ce qui est certain c'est que quand tu écris quelque chose comme :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
         dragged.innerHTML = oldparent.id; (Dans la méthode dragstart)
    ou
         dragged.innerHTML = "oldparent = " + oldparent.id + "<br>nouveau parent = " + newparent.id; (dans la méthode WhereMouse)
    Si l'objet "dragged" contient un enfant, celui-ci va bel et bien disparaitre du DOM...

    J'ai commenté les deux lignes et ça fonctionne plutôt pas mal, sauf quand tu replaces une div dans la div "editeur" où l'on a toujours un oX négatif et donc la div déplacée, présente dans le DOM, devient invisible car hors périmètre d'affichage.

    Allez, courage ! Tu n'es pas loin

    PS : Tu devrais adopter un peu plus de rigueur et maintenir un code plus lisible, c'est pas facile de le voir mais tu as quelques problèmes dans la structure de ton HTML.
    (il manque la balise de fin de <head> et celle de <html>, par exemple.

    Tiens, c'est cadeau :
    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
     
    <!DOCTYPE HTML>
    <html>
    	<head>
    		<title>patrick WYSIWYG html</title>
    		<meta http-equiv="Content-type" content="text/html; charset=utf-8" />
    		<meta http-equiv="X-UA-Compatible" content="IE=10"> 
    		<style>
    		</style>
    		<script  type= "text/javascript">
    			var Ed=document.getElementById("editeur");
    			var DX,DY,oX,oY;
    			var newparent;
    			var oldparent;
    			var dragged;
    			var bordure;
     
    			document.addEventListener('mousemove',WhereMouse,false);
    			document.addEventListener('mouseup',drag_onmouseup,false);
     
    			function drag_onmouseup(ev) 
    			{
    				Mouse_X = event.clientX + (document.documentElement.scrollLeft + document.body.scrollLeft);
    				Mouse_Y = event.clientY + (document.documentElement.scrollTop + document.body.scrollTop);
    				if (dragged != null)
    				{ 
    					dragged.style.border = bordure;
    					if (oldparent.id != newparent.id)
    					{
    						newparent.appendChild(dragged);
    					}
    					if (newparent.className == "divint")
    					{
    						dragged.style.left = "30px";
    						dragged.style.top = "30px";
    					}
    				}
    				oldparent = null;
    				newparent = null;
    				dragged = null;
    			}  //On arrête le drag}
     
    			function dragstart(ev)
    			{
    				dragged = ev.target;
    				bordure = dragged.style.border;
    				oldparent = dragged.parentElement;
    				//dragged.innerHTML = oldparent.id;
    				dragged.style.border = "2px dotted #8258FA";
    				X = event.clientX + (document.documentElement.scrollLeft + document.body.scrollLeft);
    				Y = event.clientY + (document.documentElement.scrollTop + document.body.scrollTop);
    				DX = 0;
    				DY = 0; 
    				DX = X - dragged.offsetLeft;
    				DY = Y - dragged.offsetTop;
    				event.returnValue = false;
    				if (event.preventDefault) event.preventDefault();
    			}
     
    			function WhereMouse ()
    			{
    				if (dragged != null)
    				{
    					Mouse_X = event.clientX + (document.documentElement.scrollLeft + document.body.scrollLeft);
    					Mouse_Y = event.clientY + (document.documentElement.scrollTop + document.body.scrollTop);
    					Mouse_X -= DX;
    					Mouse_Y -= DY;
    					dragged.style.left = Mouse_X + 'px';
    					dragged.style.top = Mouse_Y + 'px';
    					dragged.style.position="absolute";
    					var rect = dragged.getBoundingClientRect();
    					oX = rect.left - 10;
    					oY = rect.top;
    					newparent = document.elementFromPoint(oX, oY);
    					//dragged.innerHTML = "oldparent = " + oldparent.id + "<br>nouveau parent = " + newparent.id;
    				}
    			 }
    		</script>
    	</head>
    	<body>
    		<button  onclick="insertdiv()"> ajouter un div </button>
    		<div  id="editeur" contenteditable="true" style="height: 90%; min-height:600px; width: 90%; border:1px solid black;">
    			<p> du texte dans l'editeur</p>
    			<div  id="red" class="divint" ondragstart="dragstart(event)" style="width:250px;height:250px;border:1px solid red;">
    				<p> du texte dans mon div </p>
    			</div>
    			<div  id="blue" class="divint" ondragstart="dragstart(event)" style="width:200px;height:200px;border:1px solid blue;">
    				<p>du texte dans celui ci</p>
    			</div>
    			<div  id="green" class="divint" ondragstart="dragstart(event)" style="width:100px;height:100px;border:1px solid green;">
    				<p>celui la aussi</p>
    			</div>
    		</div>
    	</body>
    </html>
    C'est un peu plus facile à lire comme ça non ?

  13. #13
    Inactif  

    Homme Profil pro
    cuisiniste
    Inscrit en
    Avril 2009
    Messages
    15 379
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : cuisiniste
    Secteur : Bâtiment

    Informations forums :
    Inscription : Avril 2009
    Messages : 15 379
    Points : 12 075
    Points
    12 075
    Billets dans le blog
    8
    Par défaut re
    Bonjour EddiGordo

    oui j'avais compris mon erreur après coup hier soir !!! ca me met tellement les boules ce truc que je vois plus rien
    maintenant j'en suis au replacement avec les bonnes coordonnées

    les balises non fermées ca c'a m'étonne par contre je vais vérifier sur mon fichier

    je vais tester ton code et reviens
    merci du retour
    mes fichiers dans les contributions:
    mail avec CDO en vba et mail avec CDO en vbs dans un HTA
    survol des bouton dans userform
    prendre un cliché d'un range

    si ton problème est résolu n'oublie pas de pointer : : ça peut servir aux autres
    et n'oublie pas de voter

  14. #14
    Inactif  

    Homme Profil pro
    cuisiniste
    Inscrit en
    Avril 2009
    Messages
    15 379
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : cuisiniste
    Secteur : Bâtiment

    Informations forums :
    Inscription : Avril 2009
    Messages : 15 379
    Points : 12 075
    Points
    12 075
    Billets dans le blog
    8
    Par défaut RE
    re
    tu avais raison j'avais pas fermer les balises
    bon j'ai regarder ton fichier il fonctionne mais toujours pas la sortie d'un "divint"
    entre temps hier soir moi j'ai avancé
    j'ai maintenant la postions exacte quand je met un div dans un autre
    mais c'est quand je le sort pour être dans le div éditeur que ca déraille ca me le met -nnn px

    je pense pas avoir la bonne formule
    voila mon code j'ai essayé de faire une indentation correcte
    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
     
    <!DOCTYPE HTML>
    <html>
      <head>
       <title>patrick WYSIWYG html </title>
       <meta http-equiv="Content-type" content="text/html; charset=utf-8" />
    <meta http-equiv="X-UA-Compatible" content="IE=10"> 
    <style>
    </style>
    <script  type= "text/javascript">
    var Ed=document.getElementById("editeur");
    var DX,DY,oX,oY;
    var newparent;
    var oldparent;
    var dragged;
    var bordure;
    var code;
    //typeof window.addEventListener == 'undefined' ? document.attachEvent("onmousemove",WhereMouse) : document.addEventListener('mousemove',WhereMouse,false);
    //typeof window.addEventListener == 'undefined' ? document.attachEvent("onmouseup",drag_onmouseup) : document.addEventListener('mouseup',drag_onmouseup,false);
     document.addEventListener('mousemove',WhereMouse,false);
    document.addEventListener('mouseup',drag_onmouseup,false);
    /////////////////////////////////////////////////////////////////////////////FONCTION QUI ARRETE LE DEPLACEMENT ET AJUSTE LA POSTION //////////////////////////////////////////////////
    function drag_onmouseup(ev) {
            X= event.clientX + (document.documentElement.scrollLeft + document.body.scrollLeft);
            Y = event.clientY + (document.documentElement.scrollTop + document.body.scrollTop);
               if (dragged!=null){ 
                    dragged.style.border=bordure;
                          if(newparent!=null && oldparent.id!=newparent.id ){
                               newparent.appendChild(dragged);
                               var rect = newparent.getBoundingClientRect ();
                                if (newparent!=null && newparent.id!="editeur"){
                                     dragged.style.left= X-DX -rect.left +"px";
                                     dragged.style.top= Y-DY -rect.top +"px";}
                               if (newparent!=null && newparent.id=="editeur"){
                                     dragged.style.left= X-DX+"px"; 
                                     dragged.style.top= Y-DY +"px";  }
                dragged.style.border=bordure;
              }
    }
    oldparent=null;
    newparent=null;
    dragged=null;
    bordure=null;
    }  //On arrête le drag}
     
    ////////////////////////////////////////////////////////////////////////////FONCTION QUI DEMARRE LE DRAG //////////////////////////////////////////////////////////
    function dragstart(ev) {
       dragged=ev.target;
       bordure= ev.target.style.border;
       oldparent=dragged.parentElement;
       dragged.style.border="2px dotted #8258FA";
       X= event.clientX + (document.documentElement.scrollLeft + document.body.scrollLeft);
       Y = event.clientY + (document.documentElement.scrollTop + document.body.scrollTop);
       DX=0;
       DY=0; 
       DX=X-dragged.offsetLeft;
       DY=Y-dragged.offsetTop;
       event.returnValue = false;
        if( event.preventDefault ) event.preventDefault();
    }
    ///////////////////////////////////////////////////////////////////FONCTION QUI DEPLACE LE DIV //////////////////////////////////////////////////////////////
    function WhereMouse( ){
    if(dragged!=null){
    Mouse_X= event.clientX + (document.documentElement.scrollLeft + document.body.scrollLeft);Mouse_Y = event.clientY + (document.documentElement.scrollTop + document.body.scrollTop);
    Mouse_X-= DX;Mouse_Y-= DY;   dragged.style.left = Mouse_X  + 'px';    dragged.style.top = Mouse_Y + 'px';    dragged.style.position="absolute";
    var rect = dragged.getBoundingClientRect ();oX=rect.left-10;oY=rect.top;
    newparent=document.elementFromPoint(oX,oY);             
    }
     }
    /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    </script>
    </head>
    <body>
     <button  onclick="insertdiv()"> ajouter un div </button>
     <div  id="editeur"contenteditable="true" style="height: 90%; min-height:600px;width: 90%;border:1px solid black;">
     <p> du texte dans l'editeur</p>
     
         <div  id="red" class="divint" ondragstart="dragstart(event)"  style="width:250px;height:250px;border:1px solid red;" ><p> du texte dans mon div </p></div>
     
    <div  id="blue" class="divint" ondragstart="dragstart(event)"style="width:200px;height:200px;border:1px solid blue;" ><p>du texte dans celui ci </p></div>
                <div  id="green" class="divint" ondragstart="dragstart(event)"style="width:100px;height:100px;border:1px solid green;" ><p>celui la aussi   </p></div>
     
     
     
    </div>
    </body>
    </html>
    mes fichiers dans les contributions:
    mail avec CDO en vba et mail avec CDO en vbs dans un HTA
    survol des bouton dans userform
    prendre un cliché d'un range

    si ton problème est résolu n'oublie pas de pointer : : ça peut servir aux autres
    et n'oublie pas de voter

  15. #15
    Membre averti
    Profil pro
    Inscrit en
    Décembre 2007
    Messages
    197
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2007
    Messages : 197
    Points : 300
    Points
    300
    Par défaut
    Re-Bonjour Patrick,

    Tu t'es un peu compliqué la vie en voulant toujours calculer les coordonnées par rapport au coordonnées de la page (clientX et clientY).
    J'ai essayé de simplifier un peu le process en prenant en compte, aux moments adéquats, le système de coordonnées locales (offsetX et offsetY).
    Ca facilite un peu la méthode de calcul.

    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
     
    <!DOCTYPE HTML>
    <html>
    	<head>
    		<title>patrick WYSIWYG html </title>
    		<meta http-equiv="Content-type" content="text/html; charset=utf-8" />
    		<meta http-equiv="X-UA-Compatible" content="IE=10"> 
    		<style>
    		</style>
    		<script  type= "text/javascript">
    			var Ed = document.getElementById("editeur");
    			var DX,DY,oX,oY, fX, fY;
    			var newparent;
    			var oldparent;
    			var dragged;
    			var bordure;
    			var code;
    			//typeof window.addEventListener == 'undefined' ? document.attachEvent("onmousemove",WhereMouse) : document.addEventListener('mousemove',WhereMouse,false);
    			//typeof window.addEventListener == 'undefined' ? document.attachEvent("onmouseup",drag_onmouseup) : document.addEventListener('mouseup',drag_onmouseup,false);
    			document.addEventListener('mousemove',WhereMouse,false);
    			document.addEventListener('mouseup',drag_onmouseup,false);
    			/////////////////////////////////////////////////////////////////////////////FONCTION QUI ARRETE LE DEPLACEMENT ET AJUSTE LA POSTION //////////////////////////////////////////////////
    			function drag_onmouseup(ev)
    			{
    				if (dragged != null)
    				{ 
    				    dragged.style.border = bordure;
    					var rect = dragged.getBoundingClientRect();
    					oX = rect.left - 10;
    					oY = rect.top;
    					newparent = document.elementFromPoint(oX, oY);
    					if (newparent != null && oldparent.id != newparent.id)
    					{
    						newparent.appendChild(dragged);
     
    						var rP = newparent.getBoundingClientRect();
    						var rX = ev.clientX - rP.left;
    						var rY = ev.clientY - rP.top;
     
    						dragged.style.left = rX - fX + "px";
    						dragged.style.top = rY - fY + "px";
     
    						oldparent = null;
    						newparent = null;
    					}
    					dragged = null;
    				}
    			}  //On arrête le drag}
     
    			////////////////////////////////////////////////////////////////////////////FONCTION QUI DEMARRE LE DRAG //////////////////////////////////////////////////////////
    			function dragstart(ev)
    			{
    				dragged = ev.target;
    				bordure = ev.target.style.border;
    				oldparent = dragged.parentElement;
    				dragged.style.border = "2px dotted #8258FA";
    				fX = ev.offsetX;
    				fY = ev.offsetY;
    				X = ev.clientX + (document.documentElement.scrollLeft + document.body.scrollLeft);
    				Y = ev.clientY + (document.documentElement.scrollTop + document.body.scrollTop);
    				DX = 0;
    				DY = 0; 
    				DX = X - dragged.offsetLeft;
    				DY = Y - dragged.offsetTop;
    				event.returnValue = false;
    				if (ev.preventDefault) ev.preventDefault();
    			}
     
    			///////////////////////////////////////////////////////////////////FONCTION QUI DEPLACE LE DIV //////////////////////////////////////////////////////////////
    			function WhereMouse(ev)
    			{
    				if (dragged != null)
    				{
    					Mouse_X = ev.clientX + (document.documentElement.scrollLeft + document.body.scrollLeft);
    					Mouse_Y = ev.clientY + (document.documentElement.scrollTop + document.body.scrollTop);
    					Mouse_X -= DX;
    					Mouse_Y -= DY;
    					dragged.style.left = Mouse_X + 'px';
    					dragged.style.top = Mouse_Y + 'px';
    					dragged.style.position = "absolute";
    				}
    			}
    			/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    		</script>
    	</head>
    	<body>
    		<button onclick="insertdiv()"> ajouter un div </button>
    		<div id="editeur" contenteditable="true" style="height: 90%; min-height:600px;width: 90%;border:1px solid black;">
    			<p> du texte dans l'editeur</p>
    			<div  id="red" class="divint" ondragstart="dragstart(event)" style="width:250px;height:250px;border:1px solid red;">
    				<p>du texte dans mon div</p>
    			</div>
    			<div id="blue" class="divint" ondragstart="dragstart(event)" style="width:200px;height:200px;border:1px solid blue;">
    				<p>du texte dans celui ci</p>
    			</div>
    	        <div  id="green" class="divint" ondragstart="dragstart(event)" style="width:100px;height:100px;border:1px solid green;">
    	        	<p>celui la aussi</p>
    	        </div>
    		</div>
    	</body>
    </html>
    Espérant que ça t'aide

  16. #16
    Inactif  

    Homme Profil pro
    cuisiniste
    Inscrit en
    Avril 2009
    Messages
    15 379
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : cuisiniste
    Secteur : Bâtiment

    Informations forums :
    Inscription : Avril 2009
    Messages : 15 379
    Points : 12 075
    Points
    12 075
    Billets dans le blog
    8
    Par défaut re
    oh!! que oui!! ca m'aide

    j'ai pas très bien compris il y a deux variable supplémentaires mais je vais potasser

    par contre on a un soucis avec le retour de la bordure initiale

    merci pour ton aide
    mes fichiers dans les contributions:
    mail avec CDO en vba et mail avec CDO en vbs dans un HTA
    survol des bouton dans userform
    prendre un cliché d'un range

    si ton problème est résolu n'oublie pas de pointer : : ça peut servir aux autres
    et n'oublie pas de voter

  17. #17
    Membre averti
    Profil pro
    Inscrit en
    Décembre 2007
    Messages
    197
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2007
    Messages : 197
    Points : 300
    Points
    300
    Par défaut
    Oups, je n'avais pas remarqué

    Lorsque tu as un div dans un autre et que tu cliques dessus, l'évènement "dragstart" est joué deux fois, une fois par l'écouteur du div cliqué (enfant) et la deuxième par l'écouteur de la div parente. Du coup, au deuxième passage, la variable "bordure" se retrouve avec la mauvaise version de ce qui est attendu.

    Pour résoudre ça, il faut interpréter le code sur l'écouteur de l'enfant seulement :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    Ajoute un :
    				ev.stopPropagation();
     
    dans la méthode "dragstart" juste avant la gestion du preventdefault.
     
    (Au passage, j'ai oublié de corriger la ligne juste au dessus : event.returnValue = false; => ev.returnValue = false;)
    Ca devrait aller mieux.

  18. #18
    Inactif  

    Homme Profil pro
    cuisiniste
    Inscrit en
    Avril 2009
    Messages
    15 379
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : cuisiniste
    Secteur : Bâtiment

    Informations forums :
    Inscription : Avril 2009
    Messages : 15 379
    Points : 12 075
    Points
    12 075
    Billets dans le blog
    8
    Par défaut re
    re
    c'est absolument génial!!! you're the best!!!

    un grand merci pour ton aide

    en plus je n'avais pas réussi a trouver une page web qui pouvait m'expliquer en fransicain ce que

    cette fonction faisait maintenant c'est clair

    c'est quand même costaux la syntaxe en JavaScript

    je vais m'attaquer au position relative,fixed,absolute maintenant

    un grand merci

    si je n'abuse pas trop je ne sais pas si tu a essayé mais j'ai des artefacts des anciennes positions
    c'est due a quoi???

    y a t-il un refresh ou quelque chose dans le genre a faire
    mes fichiers dans les contributions:
    mail avec CDO en vba et mail avec CDO en vbs dans un HTA
    survol des bouton dans userform
    prendre un cliché d'un range

    si ton problème est résolu n'oublie pas de pointer : : ça peut servir aux autres
    et n'oublie pas de voter

  19. #19
    Membre averti
    Profil pro
    Inscrit en
    Décembre 2007
    Messages
    197
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2007
    Messages : 197
    Points : 300
    Points
    300
    Par défaut
    De mon côté, avec les test que j'ai fait, je n'ai pas eu de problèmes d'artefacts, mais bon.

    En tout cas, il n'y a pas de commande native pour "rafraîchir" un élément du DOM. En tout cas, je n'en connais pas.

    Par contre, on peut faire semblant :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    			function repaint(elementId)
    			{
    				document.getElementById(elementId).style.width++;
    				document.getElementById(elementId).style.width--;
    			}
    Ce code, en modifiant une des propriétés d'affichage d'un élément, forcera le navigateur à le redessiner.
    Il suffit donc en théorie d'appeler cette fonction au moment adéquat.

  20. #20
    Inactif  

    Homme Profil pro
    cuisiniste
    Inscrit en
    Avril 2009
    Messages
    15 379
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : cuisiniste
    Secteur : Bâtiment

    Informations forums :
    Inscription : Avril 2009
    Messages : 15 379
    Points : 12 075
    Points
    12 075
    Billets dans le blog
    8
    Par défaut re
    re
    j'ai essayé avant tout dans le mousemove ou a la fin du mouseup rien n'y fait
    Nom : demo2.gif
Affichages : 122
Taille : 651,1 Ko
    mes fichiers dans les contributions:
    mail avec CDO en vba et mail avec CDO en vbs dans un HTA
    survol des bouton dans userform
    prendre un cliché d'un range

    si ton problème est résolu n'oublie pas de pointer : : ça peut servir aux autres
    et n'oublie pas de voter

Discussions similaires

  1. Réponses: 19
    Dernier message: 18/04/2008, 11h43
  2. Réponses: 2
    Dernier message: 01/11/2006, 03h18
  3. Réponses: 8
    Dernier message: 30/08/2006, 16h22
  4. Déplacement dynamique de composants à l'exécution
    Par tekilx dans le forum Composants VCL
    Réponses: 8
    Dernier message: 05/07/2005, 10h46
  5. [XSLT] séparation après tri dynamique
    Par MatMeuh dans le forum XSL/XSLT/XPATH
    Réponses: 8
    Dernier message: 26/10/2004, 14h56

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