Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/416.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/79.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/flash/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 立即更改背景图像_Javascript_Jquery - Fatal编程技术网

Javascript 立即更改背景图像

Javascript 立即更改背景图像,javascript,jquery,Javascript,Jquery,我正在根据事件更改div的背景图像 有两种图像 图1 和 图2 我必须在条件的基础上使用这两个图像,它工作正常,但在我第一次更改图像时,加载需要时间,如何立即加载它 div将image1作为默认背景图像, 我用下面的代码修改它 $("div").addClass('loadalternateImage'); 备用图像是带有背景图像和image2的类 但是加载Image2需要时间 请告知如何立即加载 谢谢您可以在视口外的div中预加载这两个图像。因此,当您单击以更改背景时,两个图像都应已加载 H

我正在根据事件更改div的背景图像

有两种图像

图1 和 图2

我必须在条件的基础上使用这两个图像,它工作正常,但在我第一次更改图像时,加载需要时间,如何立即加载它

div将image1作为默认背景图像, 我用下面的代码修改它

$("div").addClass('loadalternateImage');
备用图像是带有背景图像和image2的类

但是加载Image2需要时间

请告知如何立即加载


谢谢

您可以在视口外的div中预加载这两个图像。因此,当您单击以更改背景时,两个图像都应已加载

HTML:

您还可以在页面加载后绑定click事件(不在document ready上),以使图像完全加载:

$(window).load(function() {
     $(document).on('click', '#your-div', function() {
         // change background
     });
});

可以在视口外的div中预加载这两个图像。因此,当您单击以更改背景时,两个图像都应已加载

HTML:

您还可以在页面加载后绑定click事件(不在document ready上),以使图像完全加载:

$(window).load(function() {
     $(document).on('click', '#your-div', function() {
         // change background
     });
});
选择1 我建议你去看看

因此,您可以对图像使用
base64
编码,并将其直接放入样式表中:

loadalternateImage { 
  background: url(data:image/gif;base64,....) no-repeat left center;
}
选择2 或者,您可以将其放入某个不可见的节点,这也会触发预加载:

<img src="original.jpg">
<img src="secondary.jpg" style="display:none;">

选择3 使用精灵-看一看。从维护的角度来看,这是最困难的解决方案

选项1 我建议你去看看

因此,您可以对图像使用
base64
编码,并将其直接放入样式表中:

loadalternateImage { 
  background: url(data:image/gif;base64,....) no-repeat left center;
}
选择2 或者,您可以将其放入某个不可见的节点,这也会触发预加载:

<img src="original.jpg">
<img src="secondary.jpg" style="display:none;">

选择3
使用精灵-看一看。从维护的角度来看,这是最困难的解决方案

好的,保留@kapantzak的答案,但要这样做

切换

$("#imgBackground')[0].src = $("#firstImg")[0].src

and

$("#imgBackground')[0].src = $("#secondImg")[0].src
imgBackground是作为背景的IMG标签的id。
好的,保留@kapantzak的答案,但要这样做

切换

$("#imgBackground')[0].src = $("#firstImg")[0].src

and

$("#imgBackground')[0].src = $("#secondImg")[0].src
imgBackground是作为背景的IMG标签的id。
是的,打字的时候把我揍了一顿。LolI必须将其用作背景图像,您可以将其用作css背景图像。这些图像应该已经加载了。我用一个假div进行了尝试,用imag2将其设置为背景图像,并将其设置为“无显示”,但在暗示“top:-100000px;”时没有效果这似乎是个坏主意。使用
display:none
来代替。是的,我在打字的时候打了进去。LolI必须将其用作背景图像,您可以将其用作css背景图像。这些图像应该已经加载了。我用一个假div进行了尝试,用imag2将其设置为背景图像,并将其设置为“无显示”,但在暗示“top:-100000px;”时没有效果这似乎是个坏主意。使用
display:none
代替。通常情况下,将其设置为精灵图像只是更改背景位置通常情况下,将其设置为精灵图像只是更改背景位置