Fancybox自定义URL图像预加载

时间:2012-07-11 12:15:09

标签: jquery image fancybox preload fancybox-2

我正在整理一个图库页面,其中的图片显示在fancyBox中。实际的图像是大文件,所以我运行一个PHP脚本来重新调整服务器端的原始图像文件的大小,并为fancyBox输出一个更小,更轻的版本。这样做的结果意味着图像的URL有一个像“/images/photo.php?image=001.jpg”。

这样做意味着 fancyBox必须被强制进入图像模式,因为它通常需要一个.jpg文件,但它会获得一个.php脚本。这种方法效果很好,但确实导致fancyBox不再预加载下一张和上一张图像的问题。我的初始计划是使用更小/更轻/更快的加载图像,因为重新调整图像大小的PHP脚本需要一些时间,并且在点击下一个和实际显示的新图像之间会产生恼人的延迟。能够预加载下一个/上一个可以帮助很多事情。

有没有人知道是否可以强制fancyBox预加载下一个图像而不管它指向的文件类型是什么?

作为旁注,没有运行服务器端脚本来重新调整图像大小会导致fancyBox和一些浏览器放弃加载图像并快速耗尽大量内存...每个图像大约2MB之前重新调整大小。

任何建议表示赞赏。

2 个答案:

答案 0 :(得分:0)

试试这个:

$(".fancybox").fancybox({
  type: 'image'
});

默认情况下,Fancybox会猜测网址的内容。使用type

指定内容

答案 1 :(得分:0)

我相信这是浏览器特定的问题。我正在处理完全相同的事情(通过带预加载的灯箱的php动态调整器)并发现虽然动态图像是按预期预加载的,但Chrome坚持在显示它们时再次加载它们。预加载在Firefox上运行良好。我猜这与Chrome检测到内容是动态的有关,但我没有进一步调试。

由于我在动态调整大量图片时遇到了同样的内存问题,因此我切换到将图片大小调整为磁盘并使用我的主php文件中的函数直接提供链接到磁盘上已调整大小的图像的链接。这意味着Chrome开始正确处理预加载。