【问题标题】:How to download slideshow images just before they are needed to be shown?如何在需要显示幻灯片图像之前下载它们?
【发布时间】:2017-05-23 07:52:14
【问题描述】:

我在网页上有一个应用了背景图像的元素。有六幅不同的图像,我将一一展示。目前,第一张图片显示四秒钟,然后下一张显示四秒钟,依此类推。

我面临的问题是我无法控制下载图像的顺序。当浏览器显示第一张图片时,我希望它优先下载幻灯片中的第二张图片。当浏览器显示第二张图片时,我希望它优先下载第三张图片。这样,当图像发生变化时,用户就不会看到闪光。

目前,浏览器似乎正在以随机顺序下载图像。这是我的 CSS:

@keyframes slideshow {
  0% {
    background: url('1.jpg');
  }
  4% {
    background: url('1.jpg');
  }
  6% {
    background: url('2.jpg');
  }
  14% {
    background: url('2.jpg');
  }
  .... and so on.
}

当我在后台显示 1.jpg 时,有什么方法可以强制浏览器下载图像 2.jpg?

谢谢。

【问题讨论】:

  • 为什么不将这些图像加载到隐藏元素(或隐藏元素,即在加载图像之前创建)中?例如,带有display:none 的 DOM 元素仍然存在 - 如果将图像加载到此元素中,它将不会显示,但会由浏览器加载。这对您的问题意味着您可能想要考虑 JS/JQuery 实现,我不确定以这种方式加载内容会影响它在 CSS 中的显示方式。
  • @Wep0n 浏览器是否按照它们在img 标签中出现的顺序加载图像?
  • 只是一个旁注,而不是在每个关键帧的开头和结尾重复两次background: url('2.jpg');,您可以将它们混合在一行中,就像这样6%, 14% { background: url('2.jpg'); }jsFiddle Demo

标签: javascript jquery html css image


【解决方案1】:

也许您可以使用显示的无 img 标签并加载您想要的元素...我想到的是每次更改滑块时在滑块上添加 onchange 事件,您将下一个 img 附加到正文并给出 @987654321 @ 为了不显示会强制 img 在需要之前加载。

【讨论】:

  • @Wep0n 这几乎就是我的建议
  • 是的,我没看到,我写它作为答案,但认为这可能是一个更好的评论,我在你之后 7 秒发布,不小心评论了你的答案而不是他的问题编辑:我适当地移动了我的评论
猜你喜欢
  • 2011-12-15
  • 2011-05-18
  • 2019-07-18
  • 2017-01-30
  • 1970-01-01
  • 2012-04-24
  • 2023-03-22
  • 1970-01-01
  • 2015-10-18
相关资源
最近更新 更多