代码之家  ›  专栏  ›  技术社区  ›  Val

jquery窗口大小调整帮助

  •  2
  • Val  · 技术社区  · 15 年前

    $(window).resize(foo())

    检测窗口的大小…

    foo()工作正常,但它只在调整大小完成后才启动foo(),因此在调整大小时不会启动foo()。

    有没有办法使调整顺利进行?也许一个取消气泡和它有关,但我不熟悉它。

    4 回复  |  直到 12 年前
        1
  •  3
  •   Mike    15 年前

    你不能通过听窗户来做你想做的事 resize 事件。

    查看谷歌地图或阅读器,尝试垂直调整窗口大小。请注意,这些应用程序表现出相同的行为。

    仔细看看你的CSS。我发现有时候CSS可以做一些非常令人惊讶的事情。如果您发布一些代表您问题的HTML和CSS示例,我们可能会设计一个解决方案。

    如果您绝对不能容忍等待,直到用户完成窗口的大小调整,您可以投票 document.scrollWidth document.scrollHeight 在短时间内。每当它们发生变化时,调用调整大小的代码。请注意,轮询这些属性可能非常昂贵。我建议不要这样做,但这样可以解决问题。

    如果您使用的是Internet Explorer,根据版本的不同,您需要使用 document.documentElement.scrollWidth document.body.scrollWidth (类似于 scrollWidth )。

    火狐3.6将支持事件来确定 文档.滚动宽度 文档.滚动高度 变化,尽管看起来将是非标准的:

    https://developer.mozilla.org/en/DOM/Detecting_document_width_and_height_changes

        2
  •  2
  •   RichN    15 年前

    窗口完成调整大小后激发的“调整大小”事件与实际情况基本相同。我认为你对此无能为力。

        3
  •  2
  •   Darrell    14 年前

    从jquery文档中,当您真正关注IE行为时,您似乎正在体验Firefox行为。

    根据实现的不同,调整大小事件可以在调整大小过程中连续发送(Internet Explorer和基于WebKit的浏览器(如Safari和Chrome)中的典型行为),也可以在调整大小操作结束时仅发送一次(Firefox中的典型行为)。 http://api.jquery.com/resize/

    有趣的是,在同一个页面上是一个插件的注释,它可能会使行为跨浏览器(我没有研究过这个)。

        4
  •  0
  •   jrharshath    15 年前

    我想知道你为什么要做这种事。如果你能具体点,也许我可以给你推荐一个CSS解决方案?