编辑:修改为包括从 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>