javascript - 下载所有图像后更改背景图像

标签 javascript jquery html css

我正在使用以下脚本来显示 div 元素的背景图像。

这个问题是图像很大,每张大约 1MB,而且它们不会很快,因此背景效果可以很平滑。我在 `$(window).load(function () {}); 中包装函数但这没有任何区别。

我怎样才能延迟背景图片下载,以便它只在所有图片都下载完后才开始。

jQuery(function ($) {
  var body = $('.hmcarousel');
  var backgrounds = new Array(
    "url(soml_slider_1.jpg)",
    "url(soml_slider_2.jpg)",
    "url(soml_slider_3.jpg)",
    "url(soml_slider_4.jpg)",
    "url(soml_slider_5.jpg)"
  );
  var current = 0;
  function nextBackground() {
    body.css(
      'background',
      backgrounds[current = ++current % backgrounds.length]
    );
    setTimeout(nextBackground, 5000);
  }
  setTimeout(nextBackground, 5000);
  body.css('background', backgrounds[0]);
});

最佳答案

我相信您问题的答案在 this thread 中.

Another option is to trigger the onload and/or onerror events by creating an in memory image element and setting its src attribute to the original src attribute of the original image. Here's an example of what I mean:

$("<img/>")
    .load(function() { console.log("image loaded correctly"); })
    .error(function() { console.log("error loading image"); })
    .attr("src", $(originalImage).attr("src"))
;

关于javascript - 下载所有图像后更改背景图像,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28145189/

相关文章:

javascript - Jquery 在 ajaxComplete 上调用相同的函数并准备好了吗?

jquery - 如何激活单击的选项卡和非事件的默认选项?

html - 如何创建适用于所有浏览器的下载链接

html - 如何更改 doxygen 的背景图片?

javascript - 在 Javascript 中淡化和重新出现文本集

javascript - DataTables 和 columnDefs 渲染数据

javascript - 将多个对象转换为对象数组

javascript - 我的函数没有返回所有检查的值

jquery - 在使用 JQuery-file-upload 上传到服务器之前调整尺寸图像的大小?

html - CSS 在 Firefox 中看起来与 Google Chrome 不同,我该怎么办?