0

是否可以轻松修改源代码,以便预加载图库图像的选项可以双向运行?

现在只有下一个图像被预加载,但在某些情况下,如果前一个图像也被预加载,这可能是有意义的,例如,如果一个人选择 3 个预加载图像的数量,则预加载下 3 个和前 3 个图像。然后用户可以轻松地在画廊内前进或后退。

4

1 回答 1

0

我自己也想知道这一点,看来您可以稍微编辑 _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;
                }
            }
于 2013-10-15T12:51:01.840 回答