【问题标题】:jQuery window load at specific pointjQuery 窗口在特定点加载
【发布时间】:2012-03-28 12:31:25
【问题描述】:
$(window).load(...

等待窗口中的所有内容加载。这是伟大的。但最近我非常希望在页面加载的特定点触发一个事件。例如,“除了图像之外的一切”。

我希望我能列出我失败的尝试,但我不知道从哪里开始,即使这样的事情是可能的。

类似:

$(window).partialLoad({
    exclude : 'jpg, png, gif'
}, function(){
    //do something when page has fully loaded except for images
});

或者相反

$(window).partailLoad({
    waitFor : 'woff, eot'
}, function(){
    //do something after all woff and eot files have loaded
});

如果可能的话,我会写一个很好的插件来处理它。谁能指出我如何实现这一目标的正确方向?

【问题讨论】:

    标签: javascript jquery browser cross-browser


    【解决方案1】:

    假设$(window).load() 等待所有链接资源下载,我们可以编写您自己的,假设没有图像,那就是iframe[src]script[src]link[rel="stylesheet"]等等

    var items = $('iframe[src], link[rel="stylesheet"], script[src]'),
        itemsLength = items.length;
    
    items.load(function() {
        --itemsLength;
    
        if ( ! itemsLength) {
            // All loaded!
        }
    
    });
    

    【讨论】:

    • 我想过这个。问题是并非所有链接资源都出现在元素中。例如背景图像或字体文件出现在外部 css 中。也不是所有的元素都会触发 onload 事件甚至 jQuery load 事件。
    • @Fresheyeball 听起来你想要我的 waitForImages() 插件的反面。
    • 顺便说一句。我是您博客的偶尔读者,并利用了您的一些 javascript。很荣幸收到您的回复。
    • 我用过waitForImages() 我想要的并不是相反,它的控制权,而且不管文件类型如何。
    • @Fresheyeball 谢谢! waitForImages() 中的控制会是一件很棒的事情,但它可能应该有一个不同的名称。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-04-11
    • 1970-01-01
    • 2018-06-12
    • 1970-01-01
    • 2012-12-19
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多