Javascript 如何在新窗口中从srcset打开正确的img?
我试图在一个新窗口中打开一个图像,并根据srcset加载正确的图像,以便根据分辨率打开正确的图像大小 html: 以上内容不会根据分辨率打开不同的图像,但这Javascript 如何在新窗口中从srcset打开正确的img?,javascript,jquery,html,srcset,flickity,Javascript,Jquery,Html,Srcset,Flickity,我试图在一个新窗口中打开一个图像,并根据srcset加载正确的图像,以便根据分辨率打开正确的图像大小 html: 以上内容不会根据分辨率打开不同的图像,但这https://farm4.staticflickr.com/3059/2835191823_e3636abb34_m.jpg 我相信是因为$str[0]但我尝试不插入索引[0],这会将我带到一个未找到的图像 示例:执行以下两个步骤时: var $str = img_to_load.split(' '); var $retina = $str
https://farm4.staticflickr.com/3059/2835191823_e3636abb34_m.jpg
我相信是因为$str[0]代码>但我尝试不插入索引[0],这会将我带到一个未找到的图像
示例:执行以下两个步骤时:
var $str = img_to_load.split(' ');
var $retina = $str[0];
您将始终以https://farm4.staticflickr.com/3059/2835191823_e3636abb34_m.jpg
基于数据集中的字符串。这是因为在第一步中,您通过按空格分割字符串来创建数组,在第二步中,您访问数组中的第一个元素。因此,$str[0]
是https://farm4.staticflickr.com/3059/2835191823_e3636abb34_m.jpg
,$str[1]
是240w,
等等
要获得该字符串所需的部分,您必须执行一些复杂的字符串操作,因此我建议您使用不同的方法。而不是
data-srcset="https://farm4.staticflickr.com/3059/2835191823_e3636abb34_m.jpg 240w, https://farm4.staticflickr.com/3059/2835191823_e3636abb34_n.jpg 320w, https://farm4.staticflickr.com/3059/2835191823_e3636abb34.jpg 500w, https://farm4.staticflickr.com/3059/2835191823_e3636abb34_z.jpg 640w, https://farm4.staticflickr.com/3059/2835191823_e3636abb34_b.jpg 1920w"
为什么不把它分成如下几个部分:
data-srcset-240w="https://farm4.staticflickr.com/3059/2835191823_e3636abb34_m.jpg"
data-srcset-320w="https://farm4.staticflickr.com/3059/2835191823_e3636abb34_n.jpg"
等等。完成后,您可以像这样访问所需的部件,例如,如果您需要240w图像:
var img_to_load = $(this).find('img').attr('data-srcset-240w');
当然,现在还需要定义一些规则,以查看在何种情况下加载哪个图像。例如,要确定屏幕分辨率,您可以使用类似的方法,然后对照这些值检查以获得正确的图像。执行以下两个步骤时:
var $str = img_to_load.split(' ');
var $retina = $str[0];
您将始终以https://farm4.staticflickr.com/3059/2835191823_e3636abb34_m.jpg
基于数据集中的字符串。这是因为在第一步中,您通过按空格分割字符串来创建数组,在第二步中,您访问数组中的第一个元素。因此,$str[0]
是https://farm4.staticflickr.com/3059/2835191823_e3636abb34_m.jpg
,$str[1]
是240w,
等等
要获得该字符串所需的部分,您必须执行一些复杂的字符串操作,因此我建议您使用不同的方法。而不是
data-srcset="https://farm4.staticflickr.com/3059/2835191823_e3636abb34_m.jpg 240w, https://farm4.staticflickr.com/3059/2835191823_e3636abb34_n.jpg 320w, https://farm4.staticflickr.com/3059/2835191823_e3636abb34.jpg 500w, https://farm4.staticflickr.com/3059/2835191823_e3636abb34_z.jpg 640w, https://farm4.staticflickr.com/3059/2835191823_e3636abb34_b.jpg 1920w"
为什么不把它分成如下几个部分:
data-srcset-240w="https://farm4.staticflickr.com/3059/2835191823_e3636abb34_m.jpg"
data-srcset-320w="https://farm4.staticflickr.com/3059/2835191823_e3636abb34_n.jpg"
等等。完成后,您可以像这样访问所需的部件,例如,如果您需要240w图像:
var img_to_load = $(this).find('img').attr('data-srcset-240w');
当然,现在还需要定义一些规则,以查看在何种情况下加载哪个图像。例如,要确定屏幕分辨率,您可以使用类似的方法,然后对照这些值检查以提供正确的图像。解决方案是使用
解决办法是使用
类似于那个注释($(“img[data-srcset]”)和我的问题有什么关系?$(“.gallery cell image”)。点击(function(){console.log($)(this.attr($);var img_to_load=$(this.attr('data-srcset');console.log(img_to_to_load);var$str=img_to_to_load.split(“”);var$retina=$str[0];imgWindow=window.open(img_to_load,'imgWindow');}代码>右选择器执行以下操作:类似于注释$(“img[data srcset]”)的内容,这与我的问题有什么关系?$(“.gallery cell image”)。单击(function(){console.log($(this.attr('alt');var img_to_load=$(this.attr('data-srcset');console.log(img_to_load);var$str=img_to_to_load.split(“”);var$retina=$str[0];imgWindow=window.open(img_to_load,'imgWindow');});
right selector do th thing:有趣,我不知道currentSrc…看起来很有用。有趣,我不知道currentSrc…看起来很有用。Safari和friends有解决方案吗?@nathan Image元素和Media元素的可用性不同:(不幸)@nathan ehm当时不确定,是一个老项目,不知道它在safari上是否有效,根据你说的,然后我没有测试它,那么safari和friends有解决方案吗?@nathan Image element和Media element的可用性不同:(不幸)@nathan ehm当时不确定,这是一个老项目,不知道它在safari上是否有效,根据你说的,我当时没有测试它