首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >jQuery可阻奇异行为

jQuery可阻奇异行为
EN

Stack Overflow用户
提问于 2016-06-02 09:37:24
回答 1查看 155关注 0票数 1

用奇怪的行为进行演示:http://crawfordcomputing.com/AkadineWebOS/#/

如果你抓住右边的div窗口边框并调整水平大小,它就会垂直摆动。对于所有的窗口,你都可以用图标打开。所有的东西都是拖着的,而Jetris也能工作。(查看信息链接)

这是一个角单页应用程序。我的div窗口被定义为:

代码语言:javascript
复制
<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内容窗格。这很奇怪,因为它没有解释标题栏。所以我这样做了:(如果没有在函数中定义的话,所有变量都是先前定义的)

代码语言:javascript
复制
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});
                }
            });

现在看,当调整大小时,我希望asloResize只是内容窗格,而不是标题栏。所以我尝试手动设置内容窗格的大小,宽度很好,但是内容窗格的高度等于父级的高度减去标题栏的高度。

问题是,如果你先调整水平尺寸,垂直方向就会不稳定。一旦您抓取底部并垂直调整大小,bug就消失了,然后您可以随意调整大小,这样就完全没有问题了。只有当你先调整水平尺寸时才会发生这种情况。

这一切为什么要发生?我怀疑bug实际上是在可拖动的调整大小函数中,因为您可以先垂直调整错误大小,然后才能完美地工作。这种情况发生在所有浏览器上。

有人有线索吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-06-02 09:47:25

带有id window100-obj951的div最初没有设置css高度。包含compile="pane.content"的div也没有。

垂直调整大小会改变这两个div的css高度属性。

调整大小会改变两者的宽度,但只会改变包含的div的高度。

包含的div具有overflow:hidden,因此如果设置了它的高度,则包含的div的高度不显着。因此,拥有包含div集的高度掩盖了包含div的高度实际上被更改为不稳定的事实。

所有这些都可以使用Firebug看到,并在调整大小时检查元素。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/37588028

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档