在jQuery中获取背景图片的长宽比

拉兹万

客户有一个使用主题远足者的基于WordPress的网站。页面上,有一个画廊,而不是嵌入式图像,使用背景图像。

我需要确定那些高度比过高的图像的值如果比率小于1,请添加background-size: contain到满足该条件的每张幻灯片(列表元素)中。

我做了这个功能:

function setBackgroundSize() {
    var $sliderItem = $(".full-photos li");
    $sliderItem.each(function(){
      var imageSrc = $(this).data('image-src');
      imageSrc.replace(/url\((['"])?(.*?)\1\)/gi, '$2')
      .split(',')[0];
      var image = new Image();
      image.src = imageSrc;
      var width = image.width,
      height = image.height,
      ratio = width/height;
      console.log(ratio);
      if (ratio < 1) {
        $(this).css('background-size', 'contain');
      }
    });
}
$(window).load(setBackgroundSize());

问题是它仅在页面加载后才起作用,我刷新了它脚本出了什么问题?谢谢!

杰森p

$(window).load(setBackgroundSize());正在setBackgroundSize立即执行功能(在加载事件发生之前)。传递对函数的引用:

$(window).load(setBackgroundSize);

或者

$(window).load(function() { setBackgroundSize(); });

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章