js实现相同容器内部不同尺寸图片自适应

需求:多个显示区,宽高等比变化,每个显示区域内的原始图片比例、尺寸不同,让图片比例不失调自适应显示区域。

解决方法:将图片等比例缩放后,只显示图片的部分区域

HTML:row和col-xs-6是bootstrap的栅格类

<div class="row">
    <div class="col-xs-6">
        <a class="wrap" href="">
            <img οnlοad="autoSizeImg(this)" src="" alt="...">
        </a>
    </div>
    <div class="col-xs-6">
        <a class="wrap" href="">
            <img οnlοad="autoSizeImg(this)" src="" alt="...">
        </a>
    </div>
</div>
a.wrap{
    overflow:hidden;
    float:left;
    width:100%;
    height:160px;
}
function autoSizeImg(obj){
    height = $(obj).parent("a").height();
    width = $(obj).parent("a").width();
    if($(obj).width() <= $(obj).height()){
        $(obj).css("width", "100%");
        if($(obj).height() > height){
            $(obj).css("top", "-"+($(obj).height()-height)/2+"px");
        }else{
            var rate = (height-$(obj).height())/height;
            var rateWidth = $(obj).width()*(1+rate);
            $(obj).width(rateWidth);
            $(obj).css("left", "-"+($(obj).width()-width)/2+"px");
            $(obj).css("height", "100%");
        }
    }else{
        $(obj).css("height", "100%");
        if($(obj).width() > width){
            $(obj).css("left", "-"+($(obj).width()-width)/2+"px");
        }else{
            var rate = (width-$(obj).width())/width;
            var rateHeight = $(obj).height()*(1+rate);
            $(obj).height(rateHeight);
            $(obj).css("top", "-"+($(obj).height()-height)/2+"px");
            $(obj).css("width", "100%");
        }
    }
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值