单击窗口中的任何位置时,使元素可拖动的最佳方法是什么?
我是否必须使用覆盖整个窗口的容器<div>
?
我尝试使body
可拖动,但这不起作用。
使用容器<div>
的问题在于它移动后因此在拖动后不再覆盖整个屏幕。
如何制作一个非常大的容器<div>
,它可以在每个方向上跨越大量像素,这样你就永远无法到达它的边缘。这是个坏主意吗?
这个想法(简化)是让一个中间有正方形的页面可以通过拖动窗口的任何部分来拖动。
这是一个非常不必要的模型:)
alt text http://i49.tinypic.com/2ni4lqx.png
我正在尝试使用全屏div,但是当我重置它时,其中的元素会随之移动.. http://jsfiddle.net/LUFf6/
答案 0 :(得分:2)
编辑:修改为包括div的鼠标偏移。
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.js"></script>
<script>
function doMove(e) {
var $d = $('#myDiv');
var off = $d.offset();
var left = e.pageX + $d.data('left');
var top = e.pageY + $d.data('top');
$d.offset({left: left, top: top});
};
$(function() {
$(document).mousedown(function(e) {
var $d = $('#myDiv');
var off = $d.offset();
$d.data('left',off.left - e.pageX);
$d.data('top',off.top - e.pageY);
$(document).bind('mousemove', doMove);
}).mouseup(function(e) {
$(document).unbind('mousemove',doMove);
});
});
</script>
<style>
div#myDiv {
width: 50px;
height: 50px;
background-color: red;
position: absolute;
top: 100px;
left: 100px;
}
</style>
<div id="myDiv"></div>
答案 1 :(得分:1)
这实际上取决于你想要达到的目标,所以我们需要更多地了解它们 您可以在每次“drop”事件后将可拖动的div移动到屏幕的左上角和全宽/高度?
我个人不会走这条“巨大的集装箱”路线。