首页 > 解决方案 > 使用 Lazysizes RIaS 插件有条件地更改数据大小的输出

问题描述

我正在使用 Cloudinary 和LazySizes RIaS插件的网站上工作,并且在大多数情况下它工作正常。

我有这样的配置:

window.lazySizesConfig = window.lazySizesConfig || {};
window.lazySizesConfig.rias = window.lazySizesConfig.rias || {
prefix: 'https://res.cloudinary.com/user/image/fetch/q_auto:eco,f_auto,c_scale/w_{width}/',
absUrl: true
}

我想要的大多数图像都是列的全宽,它们很好。但是一些源图像不是那么宽,我不希望它们是全宽的。

但是 LazySizes 将sizes在所有图像上设置相同的值,该值等于列的宽度,这意味着有些图像会被放大和拉伸。

有谁知道一种方法,无论是data在标记中使用属性还是在 js 配置中使用条件,这将允许我告诉 LazySizes 不要sizes为某些图像应用默认输出?

似乎如果我尝试使用任何其他值,auto那么data-sizesLazySizes 将无法为该图像运行。

我想我也许可以使用您使用的示例,该示例在data-format中输出不同的值,srcsetsizes仍然等于列的宽度。

标签: javascriptlazy-loading

解决方案


事实证明,我的特殊情况的答案是如果图像的宽度小于父级的宽度,则添加style:max-width: XXpx到标签中。imgmax-width


推荐阅读