2016-09-14 83 views
0

的服务图像我正在读关于这个常见问题区域(服务未知大小的图像),但我就麻烦了实施该解决方案为波纹管如下:PhotoSwipe - 未知大小

您可以存储的大小图像直接在其文件名中,并在PhotoSwipe初始化期间解析它在前端(API部分中的获取数据事件)。

我正在使用cloudinary存储我的图像。有任何想法吗?

回答

0

PhotoSwipe要求您指定图像的宽度和高度尺寸。
当使用Cloudinary上传图片时,以下内容适用:
成功调用Cloudinary上传API的API的结果将包含上传图片的宽度和高度尺寸。
这些尺寸可以保存在您的Web应用程序数据库中,稍后可以根据请求提取(例如,在渲染使用PhotoSwipe的页面时将尺寸和图像路径连接起来)。

如果您缺少关于现有图片的这些信息,那么您可以使用Cloudinary的Admin API列出已上传图片的详细信息并相应地填充您的数据库。例如在Ruby中:

Cloudinary::Api.resource('sample') 

更多信息,可以发现在: http://cloudinary.com/documentation/admin_api#details_of_a_single_resource

0

是PhotoSwipe的创造者让事情变得简单,“要么接受,要么离开它。”他说。但它仍然是我见过的最好的手机和桌面灯箱。

更新

我写了一个小的jQuery插件,可以让你初始化PhotoSwipe没有图像尺寸全光照现有的fancybox /收藏夹的HTML结构。

https://ergec.github.io/jQuery-for-PhotoSwipe/

你有几个选项,使事情做得更好。

1. 最简单的解决方案。这可能对于一些图像来说足够好,但是如果您有几十张图像,则需要花费太多时间来等待init。

在页面上嵌入全尺寸的图片。这将使您可以访问window load上的图像尺寸,以便您可以构建具有实际尺寸的图像阵列,然后使用init PhotoSwipe。

2. 您可以使用jQuery插件,像http://imagesloaded.desandro.com/如果图像加载或不检测。您可以使用尺寸为100x100的小图像占位符来初始化文档上的PhotoSwipe。然后根据插件的过程,使用PhotoSwipe API更新加载的图像。

3. 最先进的解决方案。我上面提到的imagesLoaded插件使用jquery的延迟对象。 http://api.jquery.com/category/deferred-object/你总是欢迎编写你自己的插件。