不显示图像加载程序

时间:2012-04-28 11:32:26

标签: jquery image loader

我想在加载图片时显示背景图片(loading.gif)。图像将thanx加载到以下代码:

var item = $('<li><a class="black-links" href="' + data.url + '#comments" title="' + data.title + '"><img class="loading"></a></li>');
var img = item.find('img');
img
    .hide()
    .one('load', function() { $(this).removeClass('loading').attr('alt', data.title).attr('width', data.width).attr('height', data.height).fadeIn(); })
    .attr('src', data.src)
    .each(function() { if (this.complete) $(this).trigger('load'); });

因此,在开头添加了一个“加载”类,然后在完全加载(并显示)图像后删除此类。所以CSS代码是:

.loading { background: #FFF url(../img/loading.gif) center center no-repeat; }

问题是:图像已加载,然后显示,但加载图像时从不显示加载程序(可以看到here)。 我以为我应该删除“.hide()”......但是我认为图像会在它完全加载之前部分显示,不会吗???

Thanx为你提供帮助!

2 个答案:

答案 0 :(得分:0)

这是因为你在加载时隐藏它

var item = $('<li><a class="black-links" href="' + data.url + '#comments" title="' + data.title + '"><img class="loading"></a></li>');
var img = item.find('img');
$('<img/>').attr('src', data.src).load(function() {
      img.removeClass('loading').attr('src', data.src).hide().fadeIn();
});

答案 1 :(得分:0)

window.onload = function()
{ document.getElementById("loading").style.display = "none"; }