【问题标题】:React to window resize event *before* layout对窗口调整大小事件 *before* 布局做出反应
【发布时间】:2017-07-13 03:20:56
【问题描述】:

考虑在https://developers.google.com/web/fundamentals/performance/rendering/ 上用漂亮的彩色图表描述的“像素管道”

我有一个元素(比如说跨度),我想在浏览器窗口调整大小时调整它的大小。我这样做是使用window.onresize / window.addEventListener('resize'

这可行,我调整它的大小以适应可用空间。伟大的。但问题是,在我调整窗口大小(突然调整大小,例如从全屏“恢复”到 30% 高度)后的片刻,滚动条显示。我相信它只是显示出来,因为管道会通过布局、绘制和合成阶段一次以响应窗口大小的变化运行我的onresize 代码之前,尽管除了窗口变化之外什么都没有在该周期中,它足以使滚动条出现。在下一个循环中,我减小了 span 的大小以适应窗口,并且滚动条消失了。

对于一个跨度的人为示例,我确信我可以使用指定边距的样式或类似的东西来解决问题,但对于更一般的问题,我确实想使用 JavaScript 进行调整。

谢谢。

【问题讨论】:

    标签: javascript jquery html resize scala.js


    【解决方案1】:

    我很确定你可以通过在 paret 容器上定义一个 css 来避免这些滚动条.. 这是一个猜测,但我认为在你的情况下这是 html 或 body

    html, body {
        height: 100%;
        width: 100%;
        padding: 0px;
        margin: 0px;
        overflow: hidden;
    }
    

    【讨论】:

    • Wolfgang,你是对的 - 这避免了滚动条的出现。我将暂时保留这个问题,希望在第一个布局阶段之前征求对更新布局问题的答案。因为,即使使用这个 css,组件本身对于窗口来说也暂时太大,并且只会在瞬间更新到正确的大小。不过,您的回答是明智的,并且可以立即适用,谢谢。
    猜你喜欢
    • 2018-08-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-04-06
    • 1970-01-01
    • 1970-01-01
    • 2017-12-04
    相关资源
    最近更新 更多