通过Javascript检查图像的宽高比

时间:2012-10-28 23:10:18

标签: javascript jquery css image

我一直在this question询问css可行的解决方案,以获得具有不同比率图像的响应式照片库。
不幸的是我觉得通过css这样做太复杂了,所以唯一快速简便的解决方案是使用javascript来检查缩略图的宽高比并更改某些拇指的内联css:
如果比率低于0.6666666666666667(2:3),则脚本应检查每个缩略图的height:width比率,然后通过css height:100%; max-width:none;设置以覆盖实际规则。如果更容易,也可以添加一个类。

如何通过javascript完成? (也可以使用jquery,因为其他插件已经存在库)。

网格结构如下:

<ul id="gallery" class="gallery-grid">
  <li class="grid-block">
    <div class="block-wrap">
        <div class="link-wrap">
            <a href="<?php echo $photo->sourceImageFilePath; ?>" class="block-link" target="_blank" >
                <img class="block-thumb" src="<?php echo $photo->thumbImageFilePath; ?>"/>              
            </a>
        </div>  
    </div>
  </li>
</ul>

当然,如果你能找到一个可行的css回答我之前的问题,那就更受欢迎了!谢谢!

2 个答案:

答案 0 :(得分:5)

var ratio = $img.height() / $img.width();
if ( ratio < (2/3) ) { $img.css({ height: '100%', maxWidth: 'none' }) }

答案 1 :(得分:3)

您可能只想查询每个缩略图并进行数学计算。

$('img').each(function(_, img) {
    var $this = $(this);

    if( $this.height() / $this.width() < 0.6666666666666667 ) {
        $this.css({
            height: '100%',
            maxWidth: 'none'
        });
    }
});