我有一个使用 css 以页面为中心的 div - margin: 0 auto; 这是必不可少的
jQuery resizeable 连接到 div 以便它可以水平调整大小。
还添加了可调整大小的“网格”选项,因为在调整大小期间会触发其他函数,并且这些函数在没有激活网格选项的情况下被调用了太多次。
我还向可调整大小的 div 添加了一个 jquery 位置,以在调整大小期间使其居中,否则当您拖动左边缘时,它会失去其中心位置。
问题是鼠标向左或向右拖动 div 越宽,鼠标越远离左边缘。div 的左/右边缘应始终捕捉到鼠标位置。
ui.size.width 报告的值也远高于 div 的实际宽度。
我尝试了许多修复,但似乎没有任何效果。
这是下面带有 jsfiddle 链接的代码:
的HTML:
<div id="container">
<div class="resize">
Lorem
<br/>ipsum
<br/>dolor
<br/>sit
<br/>amet
<br/>Consectetuer
<br/>Lorem
<br/>magna
<br/>mi
<br/>wisi
</div>
</div>
<div id="width-output"></div>
<div id="ui-width-output"></div>
CSS:
#container {
width:100%;
background-color:#999999;
}
.resize {
width:240px;
margin:0 auto;
background-color:#ccc;
text-align:center;
}
#ui-width-output, #width-output {
text-align:center;
}
jQuery:
$(document).ready(function () {
$(".resize").resizable({
grid: [80, 80],
handles: 'e, w',
resize: function (event, ui) {
ui.size.width += ui.size.width - ui.originalSize.width;
var container = $('#container');
var position = $(this).position();
var container_position = container.position();
var top_position = position.top - container_position.top;
var offset = 'center top+' + top_position;
$(this).position({
of: $(container),
my: offset,
at: "center top",
collision: "fit none"
});
$('#width-output').html('actual width: ' + $(this).width() );
$('#ui-width-output').html('ui.size.width: ' + ui.size.width);
}
});
});
我创建了一个测试用例,这样所有这些都更有意义!
http://jsfiddle.net/bennyticklez/S5tN8/51/
提前致谢。