jQuery可调整大小的奇怪行为

乔恩·克劳福德

具有异常行为的有效演示:http : //crawfordcomputing.com/AkadineWebOS/#/

如果抓住右边的div窗口边框并水平调整大小,则它会垂直移动。您可以使用图标打开的所有窗口都相同。一切都是可拖动的,Jetris可以工作。(查看信息链接)

这是一个Angular单页应用程序。我的div窗口已定义:

<div ng-repeat="pane in panes">
    <div id="{{pane.windID}}" style="position: absolute; top: {{pane.x}}; left: {{pane.y}}; border: 2px solid black; min-height: 70; overflow: hidden">
        <div style="padding:2px; overflow: auto; background-color: grey; border: 1px solid black">
            <span style="float: left; text-align: left" ng-bind="pane.title"></span><span style="float: right; text-align: right" ng-click="closeWindow(pane.objID)">X</span>
        </div>
        <div compile="pane.content" style="background-color: white; padding: 5px; border: 1px solid black; overflow: auto;"></div>
    </div>
</div>

因此,窗口div id =“ {{pane.windID}}”有两个子级,一个标题栏和一个内容窗格。因此,在调整窗口大小时,我尝试了asloResize内容窗格。这很奇怪,因为它没有说明标题栏。因此,我这样做:(如果未在函数中定义所有变量,则之前都已定义)

objParent.resizable({
                handles: "n, e, s, w",
                minWidth: 250,
                minHeight: fullHeight, 
                //fullHeight is parents height, don't wanna colapse one liners
                //titlebar (child0) resizes just fine due to floating
                //child0 size bugs alsoResize child1, let's also it manually
                resize: function (event, ui){ 
                    //subtact title height from parents height
                    contentHeight = objParent.innerHeight() - objChild[0].innerHeight();
                    //width is fine
                    contentWidth = objParent.innerWidth();
                    objChild[1].css({'width':contentWidth, 'height':contentHeight});
                }
            });

现在看到,调整大小时,我也只想调整内容窗格的大小,而不是标题栏的大小。因此,我尝试手动设置内容窗格的大小,宽度很好,但是内容窗格的高度等于父项高度减去标题栏的高度。

问题是,如果您首先水平调整大小,垂直行会变得不稳定。一旦抓住底部并垂直调整大小,该错误就会消失,然后可以重新调整大小,但是您希望完全没有问题。仅当您先水平调整大小时,才会发生这种情况。

为什么会这样?我怀疑该错误实际上在可拖动的调整大小函数中,因为您可以通过先垂直调整大小来停止该错误,然后再完美运行。这在所有浏览器上都会发生。

有人有线索吗?

克里斯·李尔

ID为的divwindow100-obj951最初没有设置CSS高度。所包含的divcompile="pane.content"也没有。

垂直调整大小会同时更改这两个div的css height属性。

水平调整大小会同时更改两者的宽度,但只会更改所包含div的高度。

包含的div具有overflow:hidden,因此,如果设置了其高度,则包含的div的高度并不重要。因此,使包含div的高度设置掩盖了这样一个事实,即所包含的div的高度实际上已更改为不稳定。

[使用Firebug并在调整大小时检查元素可以看到所有这些信息]

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

jQuery可调整大小的奇怪行为

来自分类Dev

jQuery可调整大小的div与Bootstrap无关的行为

来自分类Dev

jQuery可调整大小的更改css

来自分类Dev

jQuery UI可调整大小的固定大小表

来自分类Dev

使控件可调整大小

来自分类Dev

JavaFx可调整大小

来自分类Dev

使控件可调整大小

来自分类Dev

可调整大小的jQuery UI工具无法正常工作?

来自分类Dev

jQuery可调整大小无法正常工作

来自分类Dev

jQuery UI可调整大小未达到最大宽度

来自分类Dev

滚动后jQuery可调整大小的重定位句柄

来自分类Dev

jQuery可调整大小的触摸屏

来自分类Dev

jQuery UI可调整大小的扩展div

来自分类Dev

jQuery UI可拖动+可调整大小的包含问题

来自分类Dev

为可调整大小的jQuery对象设置'position'属性

来自分类Dev

jQuery可调整大小无法正常工作

来自分类Dev

jQuery UI-可调整大小。检查方向

来自分类Dev

jQuery UI可调整大小,防止高度小于文本

来自分类Dev

jQuery UI菜单和可调整大小-重叠

来自分类Dev

jQuery UI可调整大小和可拖动的问题

来自分类Dev

jQuery可调整大小不正确的宽度

来自分类Dev

在<div>中的jQuery可调整大小的画布

来自分类Dev

如何动态更改jquery ui可调整大小的选项?

来自分类Dev

附加jQuery的可调整大小的处理程序

来自分类Dev

jQuery UI可调整大小的两个对象

来自分类Dev

jQuery UI可调整大小,防止高度小于文本

来自分类Dev

jQuery UI可调整大小的自动隐藏句柄

来自分类Dev

jQuery可调整大小无法与子类正常工作

来自分类Dev

jquery ui 可调整大小触发 onclick 事件