你如何检测到加载了CSS图像?

时间:2015-02-03 21:19:10

标签: jquery css image callback loading

我正在使用图像纹理作为背景(这是一个重复的图像),我也使用了一个精灵表。所有这些都是通过CSS加载的。

我尝试使用$(window).load()在加载后淡入图像,但您仍然可以看到渲染/加载

我开始认为$(window).load()仅适用于 DOM 中的图片。

有没有办法检测是否加载了CSS图像?

1 个答案:

答案 0 :(得分:0)

您可以使用预加载器隐藏页面上的所有内容,直到所有元素都加载完毕。

HTML

 <div id="preloader">
        <div id="status"></div>
    </div>



<script type="text/javascript">
    //<![CDATA[
        $(window).load(function() {
            $('#status').fadeOut();
            $('#preloader').delay(350).fadeOut('slow');
            $('body').delay(350).css({'overflow':'visible'});
        })
    //]]>
</script> 

CSS:

#preloader {
    position: fixed;
    top:0;
    left:0;
    right:0;
    bottom:0;
    background-color:#aed0de; /* change if the mask should have another color then white */
    z-index:7; /* makes sure it stays on top */
}

#status {
    width:400px;
    height:418px;
    position:absolute;
    left:50%; /* centers the loading animation horizontally one the screen */
    top:50%; /* centers the loading animation vertically one the screen */
    background-image:url(../images/status.gif); /* path to your loading animation */
    background-repeat:no-repeat;
    background-position:top;
    margin:-209px 0 0 -200px; /* is width and height divided by two */
    text-align:center;
    text-transform:uppercase;
    font-size:1.6em;
    font-weight:bold;
    letter-spacing:0.1em;
    color:#3d6a7c;
    text-shadow: 4px 4px 2px rgba(150, 150, 150, 0.3);