【问题标题】:JQueryUI resize from center, handle glitchJQueryUI 从中心调整大小,处理故障
【发布时间】:2014-09-30 09:54:26
【问题描述】:

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

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

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

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

【问题讨论】:

    标签: jquery css jquery-ui


    【解决方案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
                });
            }
        }
    });
    

    【讨论】:

    • 当新的宽度小于原来的宽度时行为是正确的,但当它更大时则不是。但是,我会研究你的解决方案。
    • 你给我指明了路径,谢谢!我刚刚在测试中将< 替换为!=,它可以工作!
    猜你喜欢
    • 2012-11-22
    • 1970-01-01
    • 1970-01-01
    • 2010-12-11
    • 1970-01-01
    • 2015-06-18
    • 1970-01-01
    • 2012-04-29
    • 1970-01-01
    相关资源
    最近更新 更多