javascript - 在 Safari 上获取响应式图片的 currentSrc

标签 javascript jquery image safari srcset

我正在尝试为单击带有 photoswipe 插件的图像定义一个占位符。我想定义与屏幕上显示的图像完全相同的响应图像版本。

data-srcset="
http://url.com/img-240.jpg 240w, 
http://url.com/img-360.jpg 360w, 
http://url.com/img-480.jpg 480w, 
http://url.com/img-720.jpg 720w "

以上是我的图像的不同版本。

我的挑战是显示当前图像。为此,我使用了 currentSrc 属性,它在 Firefox 和 Chrome 上运行良好,但在 Safari 上运行不佳。

var currentSrc = imgEl.currentSrc || imgEl.src;

我没有找到任何关于 Safari 和 currentSrc 的可能解决方案。

最佳答案

您可以使用 naturalWidth属性作为 Safari 的后备。

虽然规范说naturalWidth应该给出 DPR 校正后的宽度,看来在 WebKit 中它会返回图像的固有宽度而无需 DPR 校正。因此,只有在 currentSrc 时才将其用作备用不存在。

注意:某些版本的 Edge 仅支持 x描述符,也缺乏对 currentSrc 的支持, 但我不知道它对 naturalWidth 有什么作用.较新版本的 Edge 支持 wcurrentSrc .

关于javascript - 在 Safari 上获取响应式图片的 currentSrc,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33231426/

相关文章:

javascript - 我可以在js中更改图像和swf文件吗?

R:将多个图像添加到数据框/数据表中?

.net - 大型图像调整大小库

javascript - angular中如何通过@Input和@Output获取Id

javascript - 在 Angular 中解决了几个 promise 之后,我该如何执行一些操作?

Jquery 函数未定义

c# - 用 JavaScript 编写的 Cookie 未在代码隐藏中读取

javascript - 为 jQuery 弹出窗口堆叠 div 元素

javascript - 将 URL 字符串 ${userid} 替换为 javascript 对象中的实际用户 ID

php - 如何 PHP 反序列化 jQuery 序列化的表单?