javascript - JS等待CSS背景图片加载

标签 javascript jquery css image load

如果那些是经典的 HTML 图像,很容易让 javascript 等待加载某些图像。

但是如果图像作为 CSS backuground-image 加载,我不知道如何做同样的事情!

这可能吗?

jQuery .load() 方法似乎不适用..而且我缺乏想法

最佳答案

它查找具有 src 属性或 backgroundImage css 属性的元素,并在加载它们的图像时调用操作函数。

/**
 * Load and wait for loading images.
 */
function loadImages(images, action){
    var loaded_images = 0;
    var bad_tags = 0;        

    $(images).each(function() {
    //alert($(this).get(0).tagName+" "+$(this).attr("id")+" "+$(this).css("display"));
        var image = new Image();
        var src = $(this).attr("src");
        var backgroundImage = $(this).css("backgroundImage");            
        // Search for css background style
        if(src == undefined && backgroundImage != "none"){
            var pattern = /url\("{0,1}([^"]*)"{0,1}\)/;                
            src = pattern.exec(backgroundImage)[1];                
        }else{
            bad_tags++;
        }
        // Load images
        $(image).load(function() {
            loaded_images++;                
            if(loaded_images == ($(images).length - bad_tags))
                action();
        })
        .attr("src", src);
    });
}

关于javascript - JS等待CSS背景图片加载,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9042751/

相关文章:

javascript - Firebase - 在删除项目时调用 child_added

javascript - 如何让div在第二次点击时关闭?

javascript - 下拉列表中选定的值不会清除 jQuery

jquery - 在从服务器加载 iframe 内容之前加载 gif 动画

javascript - indexOf ("-") 每次返回 - 1

javascript - google maps api 将 LatLng 添加到折线的开头

javascript - 子菜单位置问题

javascript - jquery div滚动问题

css - html属性 : How do I add a CSS class rule for the below?

html - -转换 :scale causing 'blinking' when hovering