我正在尝试制作可调整大小的组件,在调整大小时保持水平居中。 我在this讨论中找到了正确的解决方案。我试图把这种行为扩展到左侧。但是,我遇到了一个与事件处理程序有关的奇怪行为。
当你从右边调整大小时,它就像一个魅力。当您从左侧调整大小时,它会被破坏。
我认为最初的事件测试是有原因的。
var originalTarget = $(event.originalEvent.target).hasClass("ui-resizable-w")
这是fiddle。只需从右到左调整西边的div,反之亦然,你会看到,有时它会认为我没有从西边调整元素的大小。
我可以改变策略吗?寻找另一种方法来区分调整大小的来源?
答案 0 :(得分:1)
参考:http://jsfiddle.net/V79Ge/187/
我已经改变了重新调整大小的逻辑,如下所述&它解决了这个问题,
$('#resizeMe').resizable({
handles : 'n, s, e, w',
resize: function(event, ui) {
var isLeft = ui.position.left > ui.originalPosition.left;
if(isLeft){
$(this).css({
'left': parseInt(ui.position.left, 10) - ((ui.originalSize.width - ui.size.width)) / 2
});
} else {
$(this).css({
'left': parseInt(ui.position.left, 10) + ((ui.originalSize.width - ui.size.width)) / 2
});
}
}
});