Javascript防止图片拉伸的自适应处理方法
程序员文章站
2022-11-29 20:21:45
前言
相信大家在日常的web开发中,作为前端经常会遇到处理图片拉伸问题的情况。
例如banner、图文列表、头像等所有和用户或客户自主操作图片上传的地方,而一旦牵扯...
前言
相信大家在日常的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> <div id="list"> <div class="img-box"> <img src="..."/> </div> </div> </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>
图片防止拉伸处理比较简单,但是在实际项目中需要得到足够的重视,一个web页面成也图片,败也图片,拉伸了图片就等着设计师的磨叽吧,哈哈哈哈...
总结
以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,如果有疑问大家可以留言交流,谢谢大家对的支持。
上一篇: Webpack实战加载SVG的方法
下一篇: nodejs实现爬取网站图片功能
推荐阅读
-
Javascript防止图片拉伸的自适应处理方法
-
javascript - 电商网站列表页中图片的展示,一般是通过什么方法防止图片变形的?
-
JavaScript关于图片处理与合成的方法详解
-
实例详解Javascript防止图片拉伸的自适应处理
-
网页中的图片的处理方法与代码_javascript技巧
-
Javascript防止图片拉伸的自适应处理方法
-
实例详解Javascript防止图片拉伸的自适应处理
-
javascript - 电商网站列表页中图片的展示,一般是通过什么方法防止图片变形的?
-
JavaScript关于图片处理与合成的方法详解
-
移动Web中图片自适应的两种JavaScript解决方法_javascript技巧