JQueryUI从中心调整大小,处理故障

时间:2014-09-30 09:54:27

标签: jquery css jquery-ui

我正在尝试制作可调整大小的组件,在调整大小时保持水平居中。 我在this讨论中找到了正确的解决方案。我试图把这种行为扩展到左侧。但是,我遇到了一个与事件处理程序有关的奇怪行为。

当你从右边调整大小时,它就像一个魅力。当您从左侧调整大小时,它会被破坏。 我认为最初的事件测试是有原因的。 var originalTarget = $(event.originalEvent.target).hasClass("ui-resizable-w")

这是fiddle。只需从右到左调整西边的div,反之亦然,你会看到,有时它会认为我没有从西边调整元素的大小。

我可以改变策略吗?寻找另一种方法来区分调整大小的来源?

1 个答案:

答案 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
            });
        }
    }
});