当前位置: 首页 > 知识库问答 >
问题:

测量图像的宽度和高度在Chrome和Firefox中返回0,但在Safari中有效

禹昊穹
2023-03-14

我正试图给我的图像一个风景或肖像类在一个Wordpress图像库通过测量图像的尺寸负载。该代码在Safari中工作,但Firefox返回0像素的宽度和高度,Chrome有时会正确加载它们,有时则不会。我很困惑,有人能帮我吗?

jQuery(window).on('load', function () {

    jQuery(".blocks-gallery-grid img").each(function() {

        var aspectRatio = jQuery(this).css('width', 'auto').width()/jQuery(this).css('height', 'auto').height();
            console.log(jQuery(this).attr('src'));
            console.log(jQuery(this).width());
            console.log(jQuery(this).height());
        jQuery(this).data("aspect-ratio", aspectRatio);

        if(aspectRatio > 1) {
            jQuery(this).parent().parent().parent('li').addClass( "landscape" );

        } else if (aspectRatio < 1) {
            jQuery(this).parent().parent().parent('li').addClass( "portrait" );
        } else {
            jQuery(this).parent().parent().parent('li').addClass( "landscape" );           
        }
    });
});

共有1个答案

江志业
2023-03-14

null

$(window).on('load', function() { 
    $(".blocks-gallery-grid img").each(function() {
        let _this = $(this),
            aspectRatio = _this.width()/_this.height(),
            parentLi = _this.closest('li');
            
        if(aspectRatio > 1) {
            parentLi.addClass( "landscape" );
        } else if (aspectRatio < 1) {
            parentLi.addClass( "portrait" );
        } else {
            parentLi.addClass( "landscape" );           
        }
    });
});
img{
  max-width: 100%;
}
li{
   padding: 15px; 
   box-sizing: border-box; 
   border: 3px solid;
}
.landscape{
   border-color: red;
}
.portrait{
   border-color: green;
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<ul class="blocks-gallery-grid">
  <li>
    <img src="https://dummyimage.com/600x400/000/fff">
  </li>
  <li>
    <img src="https://dummyimage.com/400x600/000/fff">
   </li>
</ul>
 类似资料:
  • 问题内容: 我正在创建一个jQuery插件。 如何在Safari中使用Javascript获得真实的图像宽度和高度? 以下适用于Firefox 3,IE7和Opera 9: 但是在Webkit浏览器中,例如Safari和Google Chrome的值为0。 问题答案: Webkit浏览器在加载图像后设置height和width属性。建议不要使用超时,而建议使用图像的onload事件。这是一个简单的

  • 问题内容: 是否可以在node.js中获取图像的宽度和高度(在服务器端,而不是客户端)?我需要在我正在编写的node.js库中找到图像的宽度和高度。 问题答案: 是的,这是可能的,但是您需要安装GraphicsMagick或ImageMagick。 我都用过,我可以推荐GraphicsMagick,它要快得多。 一旦安装了程序及其模块,就可以执行以下操作来获取宽度和高度。

  • 问题内容: 我试图在没有ImageObserver的情况下在Java中获取和的图像(通过URL)。我当前的代码是: 当我进入调试模式时,我可以看到该图像已加载,并且可以看到该图像的和,但是我似乎无法返回它们。该和方法需要的图像观察者,我没有。先感谢您。 问题答案: 您可以使用ImageIcon为您处理图像的加载。 更改 至 主要的变化是在使用,和,方法。

  • 我正在使用DroidX开发一个使用相机预览图像的应用程序。我正在使用的代码在网络上的许多地方都可以找到,但我注意到常用方法“getBestPreviewSize(宽、高、camera.parameters)”返回的大小非常小,以至于标准decdeYUV420SP方法因空指针异常而失败。 一些调试显示my DroidX支持的预览大小为: 144h x 176w 240h x 320w 288h x

  • 问题内容: 为什么下面的代码返回高度:-1,这意味着高度未知。如何获得图像的高度? 问题答案: 使用ImageIO.read(URL)或ImageIO.read(File)代替。加载时它将阻塞,返回后将知道图像的宽度和高度。 例如 或者,MediaTracker向由异步加载的映像中添加A ,Toolkit然后等待其完全加载。

  • 问题内容: 为什么Chrome中的高度大于Firefox的输入高度 问题答案: 问题本质上是。 Chrome的外观与Firefox 相似。 在输入中增加高度应该可以解决问题,尽管您应注意和匹配。 例如:。