当我遇到问题时,我正在使用jQuery UI Draggable元素。我希望能够拖动一个大于容器的div元素。所以我尝试在容器上使用position:relative,在可拖动元素上使用position:absolute但它不起作用。基本上我想要完成的是:http://tech.pro/tutorial/790/javascript-tutorial-draggable-view-in-a-container
您可以在此处查看以下代码示例:http://bit.ly/1qhVxqJ
我的代码:
外部
<script src="//code.jquery.com/jquery-1.10.2.js"></script>
<script src="//code.jquery.com/ui/1.11.1/jquery-ui.js"></script>
CSS
.draggable {
width: 750px;
height: 750px;
padding: 0.5em;
float: left;
position: absolute;
background: #6C6;
border:2px solid #fff;
}
#containment-wrapper {
height:500px;
width:700px;
background: #000;
margin-top:250px;
margin-left:500px;
border:2px solid #ccc;
position:relative;
overflow:hidden;
}
HTML
<div id="containment-wrapper">
<div id="draggable3" class="draggable ui-widget-content">
<p>I'm contained within the box</p>
</div>
</div>
的jQuery
$(function() {
$( "#draggable3" ).draggable({ cursor: "move", containment: "#containment-wrapper" });
});
答案 0 :(得分:2)
您需要做的是在可拖动元素上放置一个负边距,等于它可以在容器外拖动的像素距离。无论您的可拖动位置是相对位置还是绝对位置,这都应该有效。
您可能希望负边距等于两个容器大小之间的差异,以便可拖动的内容始终覆盖父级。 (这就是javascript拖动/裁剪工具通常的工作原理。)所以在你的情况下:
.draggable {
margin: -250px -50px;
top: 250px;
left: 50px;
}