缩略图自适应宽和高的方法 纯js方法

2024-01-14 15:36:36 举报文章

大家先看下面的图片。因为用户上传的图片尺寸根本没办法统一,这也是无法避免的问题。

导致我们做风格的时候,要么就把缩略图拉扯成固定的比例,这就会导致图片变形。

如果不想变形,按固定的比例缩放,就会出现左右或上下白边,导致页面不好看。

为解决这个问题,今天早上特意做了一个总结,可以实现下图的效果,任意比例调取任意尺寸的图片,都可以填充满你的风格布局。而不会出现白边或者拉扯变形。

<style type="text/css">
.pic2{
display: inline-block;
width: 100px;
height: 300px;
overflow: hidden;
border:1px solid red;
position:relative;
margin:8px
}
.pic2 img {
position:absolute;
}
</style>
<div class="pic2"><img src="/public/uploads/images/20200630/1_202006301016251399c.jpeg" onload="set_img_size(this,100,300)" /></div>
<script type="text/javascript">
function set_img_size(that,w,h){
var obj = $(that);
var o_w =  obj.width();
var o_h =  obj.height();console.log('s',o_w/o_h);
if( (o_w>o_h && o_w/o_h>w/h) || (o_w<o_h && o_w/o_h>w/h) ){
var left = (o_w*h/o_h-w)/2;
obj.css({'height':h+'px','left':-left+'px'});
}else{
var top = (o_h*w/o_w-h)/2;
obj.css({'width':w+'px','top':-top+'px'});

}
}
</script>
如果你认为本文可读性较差,内容错误,或者文章排版错乱,请点击举报文章按钮,我们会立即处理!