微信小程序 動態(tài)的設(shè)置圖片的高度和寬度詳解及實例代碼
微信小程序圖片等比例縮放 動態(tài)的獲取圖片的高度和寬度 動態(tài)的設(shè)置圖片的高度和寬度
前言:
在小程序布局中,如果圖片不是固定高度和高度,但image設(shè)置的是固定的高度和寬度,這時候原始圖片相對image設(shè)置的固定高度和寬度不是等比例大小,那么這張圖片就會變形,變的不清晰。這時就可以使用下面的等比例縮放的方式縮放圖片,讓圖片不變形。或者通過image的bindload方法動態(tài)的獲取圖片的高度和寬度,動態(tài)的設(shè)置圖片的高度和寬度,是圖片布局的高度和寬度和原始圖片的高度和寬度相等。
1.圖片等比例縮放工具
//Util.js
class Util{
/***
* 按照顯示圖片的寬等比例縮放得到顯示圖片的高
* @params originalWidth 原始圖片的寬
* @params originalHeight 原始圖片的高
* @params imageWidth 顯示圖片的寬,如果不傳就使用屏幕的寬
* 返回圖片的寬高對象
***/
static imageZoomHeightUtil(originalWidth,originalHeight,imageWidth){
let imageSize = {};
if(imageWidth){
imageSize.imageWidth = imageWidth;
imageSize.imageHeight = (imageWidth * originalHeight) / originalWidth;
}else{//如果沒有傳imageWidth,使用屏幕的寬
wx.getSystemInfo({
success: function (res) {
imageWidth = res.windowWidth;
imageSize.imageWidth = imageWidth;
imageSize.imageHeight = (imageWidth * originalHeight) / originalWidth;
}
});
}
return imageSize;
}
/***
* 按照顯示圖片的高等比例縮放得到顯示圖片的寬
* @params originalWidth 原始圖片的寬
* @params originalHeight 原始圖片的高
* @params imageHeight 顯示圖片的高,如果不傳就使用屏幕的高
* 返回圖片的寬高對象
***/
static imageZoomWidthUtil(originalWidth,originalHeight,imageHeight){
let imageSize = {};
if(imageHeight){
imageSize.imageWidth = (imageHeight *originalWidth) / originalHeight;
imageSize.imageHeight = imageHeight;
}else{//如果沒有傳imageHeight,使用屏幕的高
wx.getSystemInfo({
success: function (res) {
imageHeight = res.windowHeight;
imageSize.imageWidth = (imageHeight *originalWidth) / originalHeight;
imageSize.imageHeight = imageHeight;
}
});
}
return imageSize;
}
}
export default Util;
2.使用image組件加載圖片,通過bindload動態(tài)的獲取圖片的高度和寬度,動態(tài)的設(shè)置圖片的高度和寬度 index.wxml (../pro.png是本地圖片)
<image bindload="imageLoad" style="width:{{imageWidth}}px;;height:{{imageHeight}}px;" src="../pro.png"/>
index.js
import Util from '../common/Util';
Page({
data:{
imageWidth:0,
imageHeight:0
},
imageLoad: function (e) {
//獲取圖片的原始寬度和高度
let originalWidth = e.detail.width;
let originalHeight = e.detail.height;
//let imageSize = Util.imageZoomHeightUtil(originalWidth,originalHeight);
//let imageSize = Util.imageZoomHeightUtil(originalWidth,originalHeight,375);
let imageSize = Util.imageZoomWidthUtil(originalWidth,originalHeight,145);
this.setData({imageWidth:imageSize.imageWidth,imageHeight:imageSize.imageHeight});
}
})
微信小程序圖片等比例縮放 動態(tài)的獲取圖片的高度和寬度 動態(tài)的設(shè)置圖片的高度和寬度
感謝閱讀,希望能幫助到大家,謝謝大家對本站的支持!
相關(guān)文章
JavaScript?ES6語法中l(wèi)et,const?,var?的區(qū)別
這篇文章主要為大家介紹了JavaScript中l(wèi)et,const?,var?的區(qū)別,具有一定的參考價值,感興趣的小伙伴們可以參考一下,希望能夠給你帶來幫助2022-01-01
JavaScript loader原理簡單總結(jié)示例解析
這篇文章主要為大家介紹了JavaScript loader原理簡單總結(jié)示例解析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-08-08

