【问题标题】:Fake a window resize, to make all resize-only JavaScript load伪造窗口调整大小,以使所有仅调整大小的 JavaScript 加载
【发布时间】:2018-12-20 15:12:30
【问题描述】:

假设我有在调整窗口大小时运行的 JavaScript,但如果你使用 window.load 或 document.ready,它就不起作用。 (我的情况)。

我不是单独寻找 window.load 或 document.ready (jQuery)... 我正在寻找从字面上伪造一个窗口调整大小...以加载仅调整大小的脚本。

如何在不调整窗口大小的情况下伪造窗口调整大小?

【问题讨论】:

  • 1.编写函数 2. 将函数分配给 window.onresize 3. 调用函数 elsewhen(通过其名称或 window.onresize()

标签: javascript matchmedia


【解决方案1】:

如果可能,不要伪造任何东西。这使您的代码更难阅读和理解。像这样重构你的代码:

function onResize(e)
{
    // does window.resize stuff
}

$(document).load(function(e){
     // when the document is loaded, do resize stuff as well
     onResize(e);
});

// add event listener to window.resize
$(window).resize(onResize);

【讨论】:

  • 我的情况涉及 response.js 使内容消失,直到调整窗口大小。 (仅适用于 ie6)。
【解决方案2】:

只需调用$(window).trigger('resize');,它将触发调整大小,并且将调用您在调整大小上注册的任何内容。

$(window).resize(function() {
  alert("Work done when resize is being called");
});

$(window).resize(function() {
  alert("More work");
});

$("*").click(function(){
  alert("Triggering resize");
  $(window).trigger('resize');
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
Click anywhere to trigger the resize

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2019-05-15
    • 1970-01-01
    • 1970-01-01
    • 2021-09-20
    • 2013-09-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多