关于图片按比例自适应缩放的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建立網站骨架首

網站設計在當前的網路時代變得越來越重要。設計師和開發人員必須考慮到不同設備的解析度、不同尺寸螢幕以及不同的作業系統等問題。而這些變數讓網站自適應變得更加必要。 PHP是一種流行的程式語言,可以用來開發自適應網站。在本文中,我們將介紹使用PHP實現自適應網站設計的方法,並提供幾個實用的技巧。什麼是自適應網站設計?自適應網站設計是指根據使用者裝置(如手機、平板電
