我想在div父母中心找到一个可拖动的div。见这里的例子
$("#mover").draggable({
revert: true,
containment: "parent"
});
<div style="width: 100px; height: 100px;" id="joystick">
<div style="width: 10px; height: 10px" id="mover"></div><br />
</div>
现在,它运行正常,但只要我想将mover
放在joystick
的中心,拖动就不会按照我想要的方式运行。
我尝试定位它给mover
一个margin: 45px 0 0 45px;
,但随后(因为盒子模型看到边距作为框的一部分)拖动仍然只能正常工作,并且没有起来离开。
如你所见,我想创造一种用于操纵某物的“操纵杆”。因此,它需要居中但也可以在所有轴上移动。
任何想法都将受到高度赞赏。
答案 0 :(得分:3)
这是一个完整的工作演示,您必须使用position:relative;
定位操纵杆的中心:http://jsfiddle.net/E6BQe/
HTML:
<div id="coords"> </div>
<div id="joystick">
<div id="mover"></div>
</div>
CSS:
#joystick { background-color:whitesmoke; width: 100px; height: 100px; padding:0px; }
#mover { background-color:red; position:relative; margin:0px; padding:0px; width: 10px; height: 10px; left:45px; top:45px; }
的javascript:
$("#mover").draggable({
revert: true,
containment: "parent",
create: function(){
$(this).data("startLeft",parseInt($(this).css("left")));
$(this).data("startTop",parseInt($(this).css("top")));
},
drag: function(event,ui){
var rel_left = ui.position.left - parseInt($(this).data("startLeft"));
var rel_top = ui.position.top - parseInt($(this).data("startTop"));
$('#coords').text(rel_left + ", " + rel_top);
},
stop: function(){
$('#coords').html(" ");
}
});
答案 1 :(得分:1)
添加以下CSS:
#joystick {position:relative}
#mover {position:absolute;top:45px;left:45px}
工作示例:http://jsfiddle.net/52V6h/
这和margin
之间的区别在于它只是设置位置,同时保持容器相同。更改边距将迫使#mover
始终与框角相距45px。