在 JavaScript 中依次加载图像

发布于 2025-01-08 00:02:17 字数 124 浏览 0 评论 0原文

我的问题是,我有多个图像并且想要像预加载器一样加载,但问题是我想在完成第一个图像后开始加载第二个图像。在我当前的代码中,我将所有图像存储在一个数组中,并使用循环加载所有图像(将数组的所有图像的源提供给图像对象),然后所有图像开始加载。

My problem is, I have multiple images and want to load like pre-loader, but the problem is that I want to start load of the second image after completing the first one. In my current code I store all images in one array and using a loop load all images (give the source of all images of the array to an image object), and then all images start loading.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

止于盛夏 2025-01-15 00:02:17

您想查看加载事件。

function loadImagesInSequence(images) {
  if (!images.length) {
    return;
  }

  var img = new Image(),
      url = images.shift();

  img.onload = function(){ loadImagesInSequence(images) };
  img.src = url;
}

loadImagesInSequence(['a.png', 'b.png', 'c.png']);

每当加载图像时,都会触发 load 事件。当这种情况发生时,我们再次执行 loadImagesInSequence()。我们不会加载同一个图像两次,因为 Array.shift() 从我们刚刚传递的数组中删除了。

You want to have a look at the load event.

function loadImagesInSequence(images) {
  if (!images.length) {
    return;
  }

  var img = new Image(),
      url = images.shift();

  img.onload = function(){ loadImagesInSequence(images) };
  img.src = url;
}

loadImagesInSequence(['a.png', 'b.png', 'c.png']);

whenever an image is loaded, the load event is fired. When that happens, we execute the loadImagesInSequence() again. We won't load the same image twice, as Array.shift() removed from the array we simply passed through.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文