2012-02-21 115 views
3

我有一个目前设置为无显示的div,Div有一个大约5000px宽,2000px高的背景图像。用jQuery预加载背景图片?

我使用jquery在一个按钮上切换div显示attirbute只有在div加载时图像太大并且图像在1/2秒后加载时才点击;有没有一个功能,我可以显示预加载器,直到图像准备好,然后显示它?

感谢

回答

1

尝试使用本地JavaScript的Image对象预加载图像。

另外考虑要避免在网络上使用如瓷砖等巨大的图像。

4

这个问题被张贴了一段时间回来,回答只用香草的JavaScript,但可以很容易地适应您的方案。

Preloading CSS Images

$(document).ready(function() { 

    var c = new Image(); 

    c.onload = function(){ 
     $("#Your Div ID").css("background-image", "url(Path to Background Image)"); 
    } 

    c.src = "Path to Background Image"; 

}); 
+0

你能解释一下这是如何工作究竟贾斯汀? – Liam 2012-02-21 15:37:54

+1

只需为图像加载时创建事件处理程序,即可将图像应用于div作为背景。在你的情况下,你需要把它变成一个函数,在这个函数中你首先显示你的预加载器,然后执行上面的代码以显示可用的图像(并隐藏你的预加载器)。有关图像对象的更多详细信息:http://www.w3schools.com/jsref/dom_obj_image.asp – JustinW 2012-02-21 15:41:47