Javascript 显示预加载gif直到图像完全加载?

Javascript 显示预加载gif直到图像完全加载?,javascript,jquery,html,css,Javascript,Jquery,Html,Css,我有这个html: javascript有没有办法将src更改为myajax.gif,直到图像完全加载 请注意,我已经在这里观看了: 但我不希望这样,因为我希望我的初始html与我在那里写的一样(使用原始图像的src),而不是使用假div容器 thx使用相同的理论,HTML源代码中可以有两个图像,一个作为ajax.gif加载程序,另一个作为计划显示的实际图像。使用css确保页面加载时只显示加载程序,然后将onload事件附加到实际图像。当它被触发时,你可以在两者之间淡出 话虽如此,我不确定IE中

我有这个html:

javascript有没有办法将src更改为my
ajax.gif
,直到图像完全加载

请注意,我已经在这里观看了:

但我不希望这样,因为我希望我的初始html与我在那里写的一样(使用原始图像的src),而不是使用假div容器


thx

使用相同的理论,HTML源代码中可以有两个图像,一个作为ajax.gif加载程序,另一个作为计划显示的实际图像。使用css确保页面加载时只显示加载程序,然后将onload事件附加到实际图像。当它被触发时,你可以在两者之间淡出


话虽如此,我不确定IE中的图像加载事件是否兼容。

使用相同的理论,HTML源代码中可能有两个图像,一个作为ajax.gif加载程序,另一个作为计划显示的实际图像。使用css确保页面加载时只显示加载程序,然后将onload事件附加到实际图像。当它被触发时,你可以在两者之间淡出


话虽如此,我不确定IE中的图像加载事件是否兼容。

将CSS中
标记的
背景属性设置为加载GIF。您需要在图像上设置
宽度
高度
,才能正常工作。例如:

HTML


将CSS中
标记的
background
属性设置为加载GIF。您需要在图像上设置
宽度
高度
,才能正常工作。例如:

HTML


在jQuery中,您可以执行以下操作:

img {
    background: url("loading.gif") 50% 50% no-repeat;
}
我没有测试这段代码,但这是我在系统上实现的一个想法,所以我知道它是有效的;) 我不知道如何使用纯javascript,但我认为它与此没有太大区别。至少是这个想法;)


它希望有用!:D

在jQuery中,您可以执行以下操作:

img {
    background: url("loading.gif") 50% 50% no-repeat;
}
我没有测试这段代码,但这是我在系统上实现的一个想法,所以我知道它是有效的;) 我不知道如何使用纯javascript,但我认为它与此没有太大区别。至少是这个想法;)


它希望有用!:我不确定这是否是你想要的,但我认为它非常有用。下面的代码将在加载Ajax时淡入淡出load类

 $('your_img_selector').attr('src', 'ajax.gif'); //just change your img by the ajax.gif without any treatment

 var img = $(new Image()); //create a new jQuery image object
 img.load(function()
 {
     $('your_img_selector').after(this); //append the new object to your img
     $('your_img_selector').remove(); //remove your img, so it continue as if as your img was simply changed ;)
 }).attr('src', 'the_image_you_want_to_be_shown_after_ajax_loading');

我不确定这是否是你想要的,但我认为它非常有用。下面的代码将在加载Ajax时淡入淡出load类

 $('your_img_selector').attr('src', 'ajax.gif'); //just change your img by the ajax.gif without any treatment

 var img = $(new Image()); //create a new jQuery image object
 img.load(function()
 {
     $('your_img_selector').after(this); //append the new object to your img
     $('your_img_selector').remove(); //remove your img, so it continue as if as your img was simply changed ;)
 }).attr('src', 'the_image_you_want_to_be_shown_after_ajax_loading');

假定根目录上的“Imagens”文件夹中有image loading.gif

js:

$('.load').ajaxStart(function () {
        $(this).fadeIn();
    });
    $('.load').ajaxStop(function () {
        $(this).fadeOut();
    });

假定根目录上的“Imagens”文件夹中有image loading.gif

js:

$('.load').ajaxStart(function () {
        $(this).fadeIn();
    });
    $('.load').ajaxStop(function () {
        $(this).fadeOut();
    });

我可以用jquery攻击onload事件吗?使用.load()时为“是”@是的123,我不这么认为,jquery中的'ready'事件是基于整个页面内容准备就绪,而'init'事件是基于图像等下载之前的页面加载。您可以尝试$(“img”).load(),当图像缓存在IE中时,它确实存在问题。还有“ahpi.imgload.js”这是一个“特殊加载事件”要修复缓存的映像问题。。。因此,实际上,答案是将ahpi脚本稍微调整为“$.event.special.cacheload”,而不是“$.event.special.load”,以避免缓存递归循环,并使用$(“img”).bind(“cacheload”,function…)应用于图像aww我没有考虑IE。jquery.load不应该自动解决这个问题吗?我可以用jquery攻击onload事件吗?使用.load()时为“是”@是的123,我不这么认为,jquery中的'ready'事件是基于整个页面内容准备就绪,而'init'事件是基于图像等下载之前的页面加载。您可以尝试$(“img”).load(),当图像缓存在IE中时,它确实存在问题。还有“ahpi.imgload.js”这是一个“特殊加载事件”要修复缓存的映像问题。。。因此,实际上,答案是将ahpi脚本稍微调整为“$.event.special.cacheload”,而不是“$.event.special.load”,以避免缓存递归循环,并使用$(“img”).bind(“cacheload”,function…)应用于图像哦,我对IE不感兴趣。jquery.load不应该自动解决这个问题吗?我认为这不会例外。图像将加载到动画,尽管我看到你的观点,图像在加载时将可见,这可能不是你想要的。我不认为这将作为例外工作。图像将加载到动画,虽然我看到您的观点,图像在加载时将可见,这可能不是您想要的。嗯,在img中附加?xD+1怎么能工作呢,因为它是我需要的最相似的东西耶!你说得对!它必须在后面,而不是追加!我会改正的;无论如何,DIt在之前也可以是$。。)哦您可以做的另一件事是使img透明(例如css不透明:0.3),并在其上放置一个浮动的ajax.gif,但我认为这更难实现。但是,祝你好运!嗯,在img里面附加什么?xD+1怎么能工作呢,因为它是我需要的最相似的东西耶!你说得对!它必须在后面,而不是追加!我会改正的;无论如何,DIt在之前也可以是$。。)哦您可以做的另一件事是使img透明(例如css不透明:0.3),并在其上放置一个浮动的ajax.gif,但我认为这更难实现。但是,祝你好运!