是否可以轻松修改源代码,以便预加载图库图像的选项可以双向运行?
现在只有下一个图像被预加载,但在某些情况下,如果前一个图像也被预加载,这可能是有意义的,例如,如果一个人选择 3 个预加载图像的数量,则预加载下 3 个和前 3 个图像。然后用户可以轻松地在画廊内前进或后退。
我自己也想知道这一点,看来您可以稍微编辑 _preloadImages 函数来完成此操作。复制 for 循环内的内容,仅将加号更改为减号。
所以,
for (i = 1; i <= cnt; i += 1) {
item = group[ (current.index + i ) % len ];
if (item.type === 'image' && item.href) {
new Image().src = item.href;
}
}
变成:
for (i = 1; i <= cnt; i += 1) {
item = group[ (current.index + i ) % len ];
if (item.type === 'image' && item.href) {
new Image().src = item.href;
}
item = group[ (current.index - i ) % len ];
if (item.type === 'image' && item.href) {
new Image().src = item.href;
}
}
这似乎在快速测试后起作用,例如,如果您将预加载更改为 1,它现在只预加载当前项目任一侧的预加载。
(这是在 Fancybox v2.1.5 上)
编辑:经过更多测试,您似乎还需要添加一个检查以防止负组项目,如下所示:
if (current.index - i >= 0) {
item = group[ (current.index - i ) % len ];
if (item.type === 'image' && item.href) {
new Image().src = item.href;
}
}