编程语言
首页 > 编程语言> > javascript – 如何使图像与帧保持纵横比和缩略图列表中心

javascript – 如何使图像与帧保持纵横比和缩略图列表中心

作者:互联网

我想将列表缩略图框显示为数据网格.每个缩略图必须放在具有特定宽度和高度(为了一致性)的框架中,如下所示:

<div class='frame'>
   <img src='img1.jpg' />
</div>
<div class='frame'>
   <img src='img2.jpg' />
</div>  

通过将图像宽度和高度设置为帧,图像变为错误的宽高比,对于较小尺寸的图像而不是帧,它们被拉伸到帧(我不想影响较小尺寸的图像).如何在不影响图像宽高比的情况下在帧内拟合图像.我的下一个问题是,无论大小如何,我如何将图像设置为帧的中心.我应该用javascript做这个吗?请帮我

解决方法:

你不能在框架中同时适应宽度和高度以保持纵横比.您可以将图像的最大宽度或最大高度值设置为100%以适合帧.试试我的代码.我在我的项目中使用这种方法.我使用wrap和inner来获取框架中的边框和填充.
拟合图像不需要javascript.但由于单个图像的宽度和高度是动态值,因此您必须使用框架中心图像.我的样本设置图像的最大宽度以适应帧.
HTML:

<div class='wrap'>
    <div class='inner'>
    <img src='http://www.pacificrimmovie.net/wp-content/uploads/Pacific-Rim-Movie-Striker-Eureka-Australian-Jaeger.jpg' />
    </div>
</div>

CSS:

.wrap{
    padding:10px;
    border: 1px solid #777;
    width: 150px;
    height: 100px;
    overflow:hidden;
    float:left;
    margin: 0px 20px 20px 0px;
}
.inner{
    width: 100%;
    height: 100%;
    overflow:hidden;
    text-align:center;
    position:relative;
}
.inner img{
    max-width: 100%;
    position:absolute;
    left:0;top:0;    
}

使用Javascript:

$("img").each(function(){
    var top_dif= ($(this).height()-$(this).parent().height())/2;
    var left_dif= ($(this).width()-$(this).parent().width())/2;
$(this).css("top",-top_dif);
$(this).css("left",-left_dif);
});

看看我的样品:
debug http://jsfiddle.net/7LLh14wL/3/(溢出:可见)
最后http://jsfiddle.net/7LLh14wL/4/(溢出:隐藏)

标签:javascript,css,aspect-ratio,html,grid-layout
来源: https://codeday.me/bug/20190609/1207499.html