关于图片按比例自适应缩放的js代码_图象特效
如下图。
瞄了一下,居中可以用 text-align:center; 来实现。而按比例缩放,利用预设 的 width 、height 属性解决不了。因为用户图片可能是很长的,也可能是很宽的。在线上想了一下他们的关系,按条件来判断是这样的:
if(实际宽度 > 预览最大宽度) {
缩放宽度 = 预览最大宽度
}
if(实际高度 > 预览最大高度) {
缩放高度 = 预览最大高度
}
但是这样会有问题,比如当宽度和高度都被缩放,如果缩放比较不同,图片就不是按比例缩放,会变得非常丑。为了让它按比例缩放,就需要做各种判断了。那这样就违背了我们希望程序自动化的原则了。再想想,虽然不喜欢数学,但数学还是很好用的,应该有其他办法。而既然是按比例缩放,何不用实际图像和预览区域宽度作的比例来计算他们关系?hmmmm… 果然 OK。实际上我们永远都只需要缩放宽度或高度中的其中一个。因为比例只有大和小种情况。具体的,写一个函数来实现它吧:
/**
* 图片按比例自适应缩放
* @param img {Element} 用户上传的图片
* @param maxWidth {Number} 预览区域的最大宽度
* @param maxHeight {Number} 预览区域的最大高度
*/
var resizeImg = function(img, maxWidth, maxHeight){
var w = img.width,
h = img.height;
// 当图片比预览区域小时不做任何改变
if(w
// 当实际图片比例大于预览区域宽高比例时
// 缩放图片宽度,反之缩放图片宽度
w/h > maxWidth/maxHeight ? img.width = maxWidth : img.height = maxHeight;
};
完整的测试代码:
<script> <BR>window.onload = function() { <BR>var img = document.getElementById('img'), <BR>/** <BR>* 图片按比例自适应缩放 <BR>* @param img {Element} 用户上传的图片 <BR>* @param maxWidth {Number} 预览区域的最大宽度 <BR>* @param maxHeight {Number} 预览区域的最大高度 <BR>*/ <BR>resizeImg = function(img, maxWidth, maxHeight){ <BR>var w = img.width, <BR>h = img.height; <BR>// 当图片比预览区域小时不做任何改变 <BR>if(w < maxWidth && h < maxHeight) return; <BR>// 当实际图片比例大于预览区域宽高比例时 <BR>// 缩放图片宽度,反之缩放图片宽度 <BR>w/h > maxWidth/maxHeight ? img.width = maxWidth : img.height = maxHeight; <BR>}; <BR>resizeImg(img, 500, 300); <BR>} <BR></script>

热AI工具

Undresser.AI Undress
人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover
用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool
免费脱衣服图片

Clothoff.io
AI脱衣机

Video Face Swap
使用我们完全免费的人工智能换脸工具轻松在任何视频中换脸!

热门文章

热工具

记事本++7.3.1
好用且免费的代码编辑器

SublimeText3汉化版
中文版,非常好用

禅工作室 13.0.1
功能强大的PHP集成开发环境

Dreamweaver CS6
视觉化网页开发工具

SublimeText3 Mac版
神级代码编辑软件(SublimeText3)

热门话题

自适应亮度是 Windows 11 计算机上的一项功能,可根据显示的内容或照明条件调整屏幕的亮度级别。由于部分用户还在习惯 Windows 11 的新界面,因此无法轻松找到自适应亮度,甚至有人说 Windows 11 上的自适应亮度功能缺失,所以本教程将把所有内容都弄清楚。例如,如果您正在观看 YouTube 视频并且视频突然显示黑暗场景,自适应亮度将使屏幕更亮并增加对比度级别。这与自动亮度不同,自动亮度是一种屏幕设置,可让计算机、智能手机或设备根据环境照明调整亮度级别。前置摄像头中有一个特殊的

PPT制作出来都是通过电脑屏幕或者投影仪进行播放的,所以根据投放的机器不同显示比例也会设置的不同,像是学校等场所要求4:3的比例尺寸,公司做简述报告时可以用16:9的比例尺寸,还可使用其他比例宽屏。那么具体的ppt比例设置在哪里呢?下面小编就给大家介绍下ppt比例的操作方法。1、ppt比例的设置如下:打开软件后,默认进入开始页,需如图切换到设计。2、在设计页上方偏右侧,可以找到图示大小调整按钮,点击展开更多比例,可以看到较常用的四比三等,点击自定义,可以打开根据所需设置。3、这样即可打开比例调整

随着移动互联网的普及,越来越多的网站和应用需要考虑在移动端的使用体验。Vue作为一种流行的前端框架,具有响应式布局和自适应能力,可以很好地帮助我们构建自适应移动端界面。本文将介绍如何用Vue构建自适应移动端界面。使用rem代替px作为单位在移动端界面中使用px作为单位,可能会导致在不同设备上的显示效果不一致。因此,建议使用rem代替px作为单位。rem是相对

使用CSSViewport单位vmin和vw实现自适应图片大小的方法在网页设计中,经常会遇到需要让图片自适应屏幕大小的情况。为了实现这一目标,CSS提供了一种强大的单位——viewport单位。其中,vmin表示视口宽高中较小的一方的百分比,而vw表示视口宽度的百分比。所以,我们可以利用这两种单位来实现自适应图片大小的效果。下面将介绍具体

vue能实现自适应,其实现自适应的方法有:1、通过“npm install”或“yarn add”命令安装“scale-box”组件,并使用“scale-box”实现适配缩放;2、通过设置设备像素比例实现自适应;3、通过JS设置zoom属性调整缩放比例来实现自适应即可。

CSSViewport:如何使用vmax和vw来实现自适应文字宽度的方法随着移动设备的普及,响应式设计已经成为了网页设计的重要概念。其中,自适应文字宽度在不同屏幕尺寸下保持一致的显示效果是一项重要的技术。本文将介绍如何使用CSSViewport单位,特别是vmax和vw单位,来实现自适应文字宽度的方法。除了理论解说,我们还会提供具体

如何使用HTML、CSS和jQuery创建一个自适应的网站布局在当今互联网时代,网站的自适应布局已经成为了一个必不可少的要求。网站的自适应布局可以使网站在不同设备上展示出良好的用户体验,并且适应不同屏幕尺寸的设备,如电脑、平板和手机等。本文将介绍如何使用HTML、CSS和jQuery来创建一个自适应的网站布局,并提供具体的代码示例。使用HTML创建网站骨架首

在2020年11月26日,PHP团队正式发布了PHP8.0版本,相较于之前的版本,PHP8.0带来了许多新的特性和改进,其中一个值得关注的特点是自适应Server。本文将会介绍PHP8.0中自适应Server的概念以及它的优势。在之前的PHP版本中,开发者可以使用PHP自带的服务器(比如说PHP-FPM、Apache)来运行自己的代码。不过,这些服务器的缺点
