在jQuery中预加载背景图像

时间:2011-05-17 05:42:21

标签: jquery preload

我在加载背景图片时遇到问题。这是我的尝试,但似乎仍然无法正常工作 - 即。当我调用showAjaxLoader(“#mytarget”)时,仍然看到图像的延迟。有人有什么建议吗?

CSS:

div.entryform-ajax-loader {
    background-image:url(../images/preloader-entry-form.gif);
}

脚本:

var ajax_loader = $('<div />').attr('class', 'entryform-ajax-loader');

function showAjaxLoader(target)
{
    $(target).append(ajax_loader);
}

function hideAjaxLoader(target)
{
    ajax_loader.remove();

3 个答案:

答案 0 :(得分:4)

在头部添加一个div,其中包含源作为图像,在这种情况下,图像将在实际页面加载之前加载。

<div style="display:none">
<img src="../images/preloader-entry-form.gif">
</div>

答案 1 :(得分:0)

<div style="display:none">
<img src="../images/preloader-entry-form.gif">
</div>

在页面正文中或者如果你需要JQuery解决方案

http://engineeredweb.com/blog/09/12/preloading-images-jquery-and-javascript

答案 2 :(得分:0)

作为一种替代解决方案,您可以将此脚本添加到您的文件中,

$(function() {
$(document.body).append($("<img />").attr("src", "../images/preloader-entry-form.gif").hide())
});

将在页面加载开始时加载图像。因此,当执行函数showAjaxLoader时,将立即加载图像。