jquery - 如何在 Fancybox 3 中预加载下一张图片?
问题描述
我刚开始在我的 Ruby on Rails 项目中使用 Fancybox 3.3.5。
根据文档,我以下列方式使用它:
<a href="image.jpg" data-fancybox data-caption="Caption for single image">
<img src="thumbnail.jpg" alt="" />
</a>
问题:如果原始图像非常大,加载时间(可见微调器)可能需要几秒钟。我想减轻这种情况。
我的想法:我想实现这一目标的最佳方法是在用户查看其中一张时从图库中预加载(几张)以下图像。
问题:有没有办法在 Fancybox 3 中预加载下一张图片?我知道 Fancybox 并不是开箱即用的。但也许您有类似的问题,或者可以提供一些关于以最有效的方式执行此操作的提示?
我知道preload
Fancybox config 提供的选项。然而,它所做的基本上是将微调器替换为图像的拇指版本,同时在后台加载原始图像。这不是我想要的,主要是因为我的拇指太小,无法全屏显示;它只是看起来不够好。
解决方案
fancybox 会自动加载当前和上一个/下一个图像。
您可以添加data-width
和data-height
属性以在真实图像仍在加载并缓慢出现在占位符上时显示缩略图,有关更多信息,请参阅https://fancyapps.com/fancybox/3/docs/#images。
您可以使用data-thumb
属性来设置替代缩略图图像,请参见此处的示例 - https://codepen.io/fancyapps/pen/VyLOJX?editors=1000
如果您的图像“非常大”(如您所说),则尝试预加载太多图像不是一个好主意,因为这会大大减慢一切。
推荐阅读
- angular - “typeof Observable”类型上不存在属性“forkJoin”。角 8
- php - Laravel 6 寻找有关如何解决表单开关问题的提示
- javascript - Typescript 中的 NgIf 和 NgSwitch 而不是 Html 可能吗?
- python - 在python中将字符串拆分为两个变量时出错
- vue.js - Quasar Axios 请求错误的 URL(双 URL)
- css - 如何在样式化组件的 props 函数中访问 CSS 变量?
- javascript - React Context 不渲染组件
- php - 在 laravel 中设置自定义验证消息而不创建请求类的智能方法
- excel - 如何使用 PATH 将照片上传到用户表单并在其他计算机上显示?
- python - 根据特定规则熊猫重命名列