1. 程式人生 > >微信小程式image圖片自適應寬度比例顯示的方法

微信小程式image圖片自適應寬度比例顯示的方法

一.瞭解image元件

由於image有預設的固定的寬度和高度,這樣我們在做圖片自適應的時候,就不好做了。下面就來一起解決下


二.方法

(一).使用mode:widthFix

widthFix:寬度不變,高度自動變化,保持原圖寬高比不變。
首先我們先設定image的mode為widthFix,然後給圖片加一個固定rpx的寬度,比如:730rpx。
這樣圖片也可以自適應了。。因為小程式的rpx本身就是一個自適應顯示的單位


(二).使用bindload繫結函式動態自適應。
我們可以給image繫結一個函式,這個函式,如上面的bindload說明一樣,我們可以獲取到原圖的寬度和高度。
然後計算他們的寬高比率。。然後設定一個寬度大小(rpx),最後通過style動態設定image的寬高。程式碼如下:

1..編寫頁面結構index.wxml:

<image src="../uploads/2.jpg" bindload="imageLoad"
style="width:{{imgwidth}}rpx; height:{{imgheight }}rpx;"></image>
2.設定資料index.js
//獲取應用例項 
var app = getApp()
Page({
	data: {
		screenWidth: 0,
		screenHeight:0,
		imgwidth:0,
		imgheight:0,
	},
	onLoad: function() {
		var _this = this;
		wx.getSystemInfo({
			success: function(res) {
				_this.setData({
					screenHeight: res.windowHeight,
					screenWidth: res.windowWidth,
				});
			}
		});

	},
  	imageLoad: function(e) {
  		var _this=this;
		var $width=e.detail.width,    //獲取圖片真實寬度
		    $height=e.detail.height,
		    ratio=$width/$height;   //圖片的真實寬高比例
		var viewWidth=500,           //設定圖片顯示寬度,
            viewHeight=500/ratio;    //計算的高度值   
		this.setData({
			imgwidth:viewWidth,
		    imgheight:viewHeight
		})
  	}
})