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 drag drop


Sujet :

JavaScript

  1. #1
    Nouveau membre du Club
    Homme Profil pro
    Inscrit en
    Août 2011
    Messages
    54
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Août 2011
    Messages : 54
    Points : 25
    Points
    25
    Par défaut Déplacement de div drag drop
    Bonjour à tous
    Alors là... Sacré problème !! . Je vous donne d'abord l'idée !!
    Je voudrais créer un réseau où sur ma page d'accueil, des div seraient déplaçable. Malheureusement, après avoir fait (je sais, c'est nul... ) copier coller d'un code javascript disant que je pouvais avoir l'effet de style que je voulais, ba... Il c'est avéré ne pas marcher
    Donc, j'aimerais avoir de votre aide pour ainsi le faire marcher... Il y a trop de code incompréhensible et je ne suis pas un fan du javascript, bien qu'il n'y ai qu'une méthode pour faire mon "truc"
    Franchement, Un GROS merci à tous ce qui répondront et qui m'aideront

    Je vous donne le code (PS: un peu long)
    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
    131
    132
    133
    134
    135
    136
    137
    138
    139
    140
    141
    142
    143
    144
    145
    146
    147
    148
    149
    150
    151
    152
    153
    154
    155
    156
    157
    158
    159
    160
    161
    162
    163
    164
    165
    166
    167
    168
    169
    170
    171
    172
    173
    174
    175
    176
    177
    178
    179
    180
    181
    182
    183
    184
    185
    186
    187
    188
    189
    190
    191
    192
     
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr" >
     
    <head>
       <title>Lifenet</title>
           <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" name="viewport" content="width=device-width"/>
    	   <link rel="stylesheet" media="screen" type="text/css" title="Mon design" href="design.css" />
       <style type="text/css">
    #dim1{
    	border:1px solid red;
    	position:absolute;
    	left:100px;
    	width:100px;
    	top:100px;
    	height:100px;
    }
    #dim2{
    	border:1px solid blue;
    	position:absolute;
    	left:300px;
    	width:100px;
    	top:100px;
    	height:100px;
    }
    div:hover{
    	cursor:move;
    }
    body{
    	cursor:n-resize;
    }
    </style>
       <script>
    var xinit; // position de la souris au clic sur le div
    var yinit;
    var x; // position de l'élément au départ
    var y;
    var initier = false; // si on est en train de cliquer
    var gauche = false; // si on a cliqué sur un bord gauche
    var droite = false; // si on a cliqué sur un bord droit
    var haut = false; // si on a cliqué sur un bord haut
    var bas = false; // si on a cliqué sur un bord bas
    var idEnCours; // id du div qui est en cours de modif
     
    function init(e, id){
    	idEnCours = id;
    	initier = true;
    	xtmp = document.getElementById(id).offsetLeft;
    	ytmp = document.getElementById(id).offsetTop;
    	x = document.getElementById(id).offsetLeft;
    	y = document.getElementById(id).offsetTop;
    	xinit = e.clientX;
    	yinit = e.clientY;
     
    	// on test la position de la souris
    	if(e.clientX >= xtmp && e.clientX <= xtmp+2){
    		gauche = true;
    		if(e.clientY >= ytmp && e.clientY <= ytmp+2){
    			haut = true;
    		}
    		else if(e.clientY >= ytmp + document.getElementById(id).offsetHeight-2 && e.clientY <= ytmp + document.getElementById(id).offsetHeight){
    			bas = true;
    		}
    	}
    	else if(e.clientX >= xtmp + document.getElementById(id).offsetWidth-2 && e.clientX <= xtmp + document.getElementById(id).offsetWidth){
    		droite = true;
    		if(e.clientY >= ytmp && e.clientY <= ytmp+2){
    			haut = true;
    		}
    		else if(e.clientY >= ytmp + document.getElementById(id).offsetHeight-2 && e.clientY <= ytmp + document.getElementById(id).offsetHeight){
    			bas = true;
    		}
    	}
    	else if(e.clientY >= ytmp && e.clientY <= ytmp+2){
    		haut = true;
    	}
    	else if(e.clientY >= ytmp + document.getElementById(id).offsetHeight-2 && e.clientY <= ytmp + document.getElementById(id).offsetHeight){
    		bas = true;
    	}
    }
     
    function bouge(e){
    	// si on a cliqué et qu'on bouge
    	if(initier){
    		xtmp = document.getElementById(idEnCours).offsetLeft;
    		ytmp = document.getElementById(idEnCours).offsetTop;
    		if(gauche){
    			document.getElementById(idEnCours).style.left = e.clientX;
    			document.getElementById(idEnCours).style.width = document.getElementById(idEnCours).offsetWidth + (xtmp - e.clientX);
    			if(haut){
    				document.getElementById(idEnCours).style.top = e.clientY;
    				document.getElementById(idEnCours).style.height = document.getElementById(idEnCours).offsetHeight + (ytmp - e.clientY);
    			}
    			else if(bas){
    				document.getElementById(idEnCours).style.height = document.getElementById(idEnCours).offsetHeight + (e.clientY - y - document.getElementById(idEnCours).offsetHeight);
    			}
    		}
    		else if(droite){
    			document.getElementById(idEnCours).style.width = document.getElementById(idEnCours).offsetWidth + (e.clientX - x - document.getElementById(idEnCours).offsetWidth);
    			if(haut){
    				document.getElementById(idEnCours).style.top = e.clientY;
    				document.getElementById(idEnCours).style.height = document.getElementById(idEnCours).offsetHeight + (ytmp - e.clientY);
    			}
    			else if(bas){
    				document.getElementById(idEnCours).style.height = document.getElementById(idEnCours).offsetHeight + (e.clientY - y - document.getElementById(idEnCours).offsetHeight);
    			}
    		}
    		else if(haut){
    			document.getElementById(idEnCours).style.top = e.clientY;
    			document.getElementById(idEnCours).style.height = document.getElementById(idEnCours).offsetHeight + (ytmp - e.clientY);
    		}
    		else if(bas){
    			document.getElementById(idEnCours).style.height = document.getElementById(idEnCours).offsetHeight + (e.clientY - y - document.getElementById(idEnCours).offsetHeight);
    		}
    		else{
    			document.getElementById(idEnCours).style.left = e.clientX - (xinit-x);
    			document.getElementById(idEnCours).style.top = e.clientY - (yinit-y);
    		}
    	}
    	chercheCurseur(e, 'dim1');
    	chercheCurseur(e, 'dim2');
    }
     
    function chercheCurseur(e, id){
    	xtmp = document.getElementById(id).offsetLeft;
    	ytmp = document.getElementById(id).offsetTop;
    	// cherche le curseur adapté
    	if(e.clientX >= xtmp && e.clientX <= xtmp+2){
    		document.getElementById('body').style.cursor = "w-resize";
    		if(e.clientY >= ytmp && e.clientY <= ytmp+2){
    			document.getElementById('body').style.cursor = "nw-resize";
    		}
    		else if(e.clientY >= ytmp + document.getElementById(id).offsetHeight-2 && e.clientY <= ytmp + document.getElementById(id).offsetHeight){
    			document.getElementById('body').style.cursor = "sw-resize";
    		}
    	}
    	else if(e.clientX >= xtmp + document.getElementById(id).offsetWidth-2 && e.clientX <= xtmp + document.getElementById(id).offsetWidth){
    		document.getElementById('body').style.cursor = "e-resize";
    		if(e.clientY >= ytmp && e.clientY <= ytmp+2){
    			document.getElementById('body').style.cursor = "ne-resize";
    		}
    		else if(e.clientY >= ytmp + document.getElementById(id).offsetHeight-2 && e.clientY <= ytmp + document.getElementById(id).offsetHeight){
    			document.getElementById('body').style.cursor = "se-resize";
    		}
    	}
    	else if(e.clientY >= ytmp && e.clientY <= ytmp+2){
    		document.getElementById('body').style.cursor = "n-resize";
    	}
    	else if(e.clientY >= ytmp + document.getElementById(id).offsetHeight-2 && e.clientY <= ytmp + document.getElementById(id).offsetHeight){
    		document.getElementById('body').style.cursor = "s-resize";
    	}
    	else{
    		document.getElementById('body').style.cursor = "move";
    	}
    }
     
    function fin(e){
    	initier = false;
    	gauche = false;
    	droite = false;
    	haut = false;
    	bas = false;
    }
     
    function reset(){
    	document.getElementById('body').style.cursor = "auto";
    }
     
    </script>
    </head>
     
     <body id="body" onmousemove="bouge(event);" onmouseup="fin(event);"> 
     
        <!-- Menu latérale avec logo--> <?php include("Lien (include)\menu.php"); ?> 
     
        <!-- Bandeau avec les onglets--> <div id="bandeau">  <ul id="tabnav">
    		                                    <li class="onglet-actif"><a href="Accueil.php">Accueil</a></li>
    											<li><a href="Actualitees.php">Actualitées</a></li>
                                                <li><a href="Profil.php">Profil</a></li>
                                                <li><a href="Amis.php">Amis</a></li>
                                                <li><a href="Msn.php">Msn</a></li>
    			                </ul>
            </div>
     
        <!-- Contenu avec "div" déplaçable--> <div id="contenu">
    	    <div id="dim1" onmouseout="reset();" onmousedown="init(event, 'dim1');">bla</div>
            <div id="dim2" onmouseout="reset();" onmousedown="init(event, 'dim2');">bla</div>
    	</div>
     
    	<!--Pied de la page--> <?php include("Lien (include)\pied de page.php"); ?>
     </body>
    </html>
    Aïe !! Je sais c'est dur... Merci encore pour l'aide que vous m'apporterez.

  2. #2
    Expert confirmé
    Avatar de RomainVALERI
    Homme Profil pro
    POOête
    Inscrit en
    Avril 2008
    Messages
    2 652
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : POOête

    Informations forums :
    Inscription : Avril 2008
    Messages : 2 652
    Points : 4 164
    Points
    4 164
    Par défaut
    Citation Envoyé par ade-9774 Voir le message
    Malheureusement, après avoir fait (je sais, c'est nul... ) copier coller d'un code javascript disant que je pouvais avoir l'effet de style que je voulais, ba... Il c'est avéré ne pas marcher
    Donc, j'aimerais avoir de votre aide pour ainsi le faire marcher...
    désolé mais ce n'est pas la philosophie de developpez...

    Citation Envoyé par ade-9774 Voir le message
    Aïe !! Je sais c'est dur... Merci encore pour l'aide que vous m'apporterez.
    Par contre, on est prêts à t'aider à apprendre.

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

Discussions similaires

  1. Drag & Drop div superposée
    Par devlpASP dans le forum jQuery
    Réponses: 8
    Dernier message: 16/08/2011, 09h20
  2. Drag & Drop dans une div overflow
    Par devlpASP dans le forum Général JavaScript
    Réponses: 5
    Dernier message: 11/08/2011, 16h45
  3. [script.aculo.us] Div qui n'augmenter pas pour drag&drop
    Par Khleo dans le forum Bibliothèques & Frameworks
    Réponses: 6
    Dernier message: 29/11/2009, 18h53
  4. [AJAX] [Scriptaculous] [drag drop] scriptaculous -- drag plusieurs div ?
    Par Merfolk dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 03/01/2008, 13h57
  5. Drag & drop d'un DIV en JavaScript
    Par moon06 dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 02/02/2006, 11h30

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