fancyBox 2:在两个方向上预加载图库

时间:2013-09-27 14:25:32

标签: jquery fancybox

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

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

1 个答案:

答案 0 :(得分:0)

我自己也在想这个,似乎你可以稍微编辑_preloadImages函数来完成这个。复制for循环内的内容,只将plus更改为减号。

所以,

        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;
                }
            }