最新文章专题视频专题问答1问答10问答100问答1000问答2000关键字专题1关键字专题50关键字专题500关键字专题1500TAG最新视频文章推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37视频文章20视频文章30视频文章40视频文章50视频文章60 视频文章70视频文章80视频文章90视频文章100视频文章120视频文章140 视频2关键字专题关键字专题tag2tag3文章专题文章专题2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章专题3
当前位置: 首页 - 科技 - 知识百科 - 正文

在Javascript中自适应处理方法

来源:动视网 责编:小采 时间:2020-11-27 19:36:50
文档

在Javascript中自适应处理方法

在Javascript中自适应处理方法:这篇文章主要给大家介绍了关于利用Javascript防止图片拉伸的自适应处理方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面一起学习学习吧。前言相信大家在日常的web开发中,作为前端经常会遇到处理图片拉
推荐度:
导读在Javascript中自适应处理方法:这篇文章主要给大家介绍了关于利用Javascript防止图片拉伸的自适应处理方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面一起学习学习吧。前言相信大家在日常的web开发中,作为前端经常会遇到处理图片拉
 这篇文章主要给大家介绍了关于利用Javascript防止图片拉伸的自适应处理方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面一起学习学习吧。

前言

相信大家在日常的web开发中,作为前端经常会遇到处理图片拉伸问题的情况。

例如banner、图文列表、头像等所有和用户或客户自主操作图片上传的地方,而一旦牵扯图片,就会涉及到图片拉伸的问题,当然,在图片上传时做手动裁切,让用户或客户清晰的感知到图片的有效内容才是最优的解决方案,但是在其他各种外在因素下,没有做裁切的话,就需要在前端显示上做处理了,满足在上传任意大小图片的情况下,最优显示效果的需求。

这时我们需要考虑到极端效果,如下图:

而我们想要得到的效果是这样的------

把图片放进框框,要几步?三步...我们开始

第一步:先画个框框 (这里顺便安利一种自适应框框的方法)

// 假定需要一个在750px屏幕下宽400px,高280px的盒子
// 宽度 = 400 / 750 = 0.5333
// 高度 = 280 / 400 * 0.5333 = 0.3733
<style>
 .img-box{
 position: relative;
 width: 53.33%;
 height: 0;
 padding-bottom: 37.33%;
 overflow: hidden;
 background-color: #eee;
 }
</style>

<body>
 <p id="list">
 <p class="img-box">
 <img src="..."/>
 </p>
 </p>
</body>

第二步:设置图片需要使用到的css

<style>
 .width{
 position: absolute !important;
 width: 100% !important;
 min-height: 100% !important;
 top: 50% !important;
 transform: translateY(-50%) !important;
 -ms-transform: translateY(-50%) !important;
 -moz-transform: translateY(-50%) !important;
 -webkit-transform: translateY(-50%) !important;
 -o-transform: translateY(-50%) !important;
 display: block;
 }
 .height{
 position: absolute !important;
 height: 100% !important;
 min-width: 100% !important;
 left: 50% !important;
 transform: translateX(-50%) !important;
 -ms-transform: translateX(-50%) !important;
 -moz-transform: translateX(-50%) !important;
 -webkit-transform: translateX(-50%) !important;
 -o-transform: translateX(-50%) !important;
 display: block;
 }
</style>

第三步:js获取图片高度比较并给img添加类名

//需要注意的是,不能在css中直接给img设置宽度和高度
//否则在img.onload后获取的宽高是css设置的宽高
//同时建议使用dom对象来获取img标签
<script>
 var list = document.getElementById('list');
 getImgWH ( list );
 //执行宽高比对并设置img类名
 function getImgWH ( Obj ) {
 var img = Obj.getElementsByTagName('img');
 for( var i=0 ; i<img.length ; i++ ){
 img[i].onload = function(){
 var width = this.width;
 var height = this.height;
 if ( width > height ) {
 this.classList.add('height');
 } else if ( width < height ) {
 this.classList.add('width');
 } else {
 this.style.width = '100%';
 this.style.height = '100%';
 }
 }
 }
 }
</script>

上面是我整理给大家的,希望今后会对大家有帮助。

相关文章:

在webpack中有关vue项目资源文件报404问题(详细教程)

在vue.js中整合vux如何实现上拉加载下拉刷新

使用Gulp如何实现静态网页模块化具体怎么做?

使用js实现微信唤起支付宝领红包(详细教程)

利用jqprint如何实现打印页面内容

文档

在Javascript中自适应处理方法

在Javascript中自适应处理方法:这篇文章主要给大家介绍了关于利用Javascript防止图片拉伸的自适应处理方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面一起学习学习吧。前言相信大家在日常的web开发中,作为前端经常会遇到处理图片拉
推荐度:
标签: 方法 处理 解决
  • 热门焦点

最新推荐

猜你喜欢

热门推荐

专题
Top