J'ai une div contenant trois boutons. Le div doit être déplaçable, de sorte que vous puissiez faire glisser les trois boutons autour de l'écran ensemble. Cela fonctionne bien, mais le problème est que lorsque je clique sur les boutons individuels, il hérite de l'identifiant déplaçable et il est déplaçable par lui-même. Je ne veux pas que ça arrive. Donc ma question est: comment faire glisser mes boutons, mais les faire toujours rester ensemble et les garder cliquables. J'ai ajouté le code ci-dessous, mais voici un jsFiddle: http://jsfiddle.net/2ga50vvt/Comment faire pour que la div parent soit draggable
Donc, pour être clair: la div doit également être draggable par glisser l'un des boutons individuels, mais le reste de la div doit tenir à il. Maintenant, en faisant glisser un bouton individuel, vous déplacez le bouton.
P.S. Je ne veux pas utiliser JQuery UI
HTML:
<div id="draggable" class="ui-widget-content">
<button ng-click="menu.shown = !menu.shown">MENU</button>
<br>
<button ng-click="disconnect()">CLOSE</button>
<br>
<button ng-click="">KEYS</button>
</div>
JS
$(document).ready(function() {
var $dragging = null;
$('body').on("mousedown", "#draggable", function(e) {
$(this).attr('unselectable', 'on').addClass('dragged');
var el_w = $('.dragged').outerWidth(),
el_h = $('.dragged').outerHeight();
$('body').on("mousemove", function(e) {
if ($dragging) {
$dragging.offset({
top: e.pageY - el_h/2,
left: e.pageX - el_w/2
});
}
});
$dragging = $(e.target);
}).on("mouseup", ".dragged", function(e) {
$dragging = null;
$(this).removeAttr('unselectable').removeClass('dragged');
});
});
CSS:
body {
padding: 50px;
}
.dragged {
background-color: yellow;
}
#draggable {
position: fixed;
width: 150px;
height 150px;
padding: 0.5em;
background: red;
background-color: black;
z-index: 1000;
cursor: move;
float: left;
}
Mise à jour 1
Ceci est une solution de travail: http://jsfiddle.net/2ga50vvt/3/ Cependant, lorsque je clique sur le div et commencez à faire glisser le centre de la div saute à mon curseur. Ca marche super, mais ça a l'air un peu bancal. Y at-il un moyen d'empêcher le div de se déplacer vers mon curseur?
Votre aide est la bienvenue.
Pourquoi la Terre est ce taggés avec 'Java'? –
Nous ne faisons pas d'erreurs, nous faisons juste des accidents heureux. – Thomas
La solution est probablement la même que pour cette question: http://stackoverflow.com/questions/8681381/how-can-i-make-an-element-draggable-but-not-its-child-elements-using- jquery-ui –