微信小程序之image圖片自適應(yīng)寬度比例顯示

微信小程序的組件image是用來顯示圖片的,它有幾個(gè)屬性:
1、src 圖片資源地址
2、mode 圖片裁剪、縮放的模式
3、binderror 當(dāng)錯(cuò)誤發(fā)生時(shí),發(fā)布到 AppService 的事件名,事件對(duì)象event.detail = {errMsg: ‘something wrong’}
4、bindload 當(dāng)圖片載入完畢時(shí),發(fā)布到 AppService 的事件名,事件對(duì)象event.detail = {height:’圖片高度px’, width:’圖片寬度px’}
但是image有默認(rèn)的固定的寬度和高度,這樣我們?cè)谧鰣D片自適應(yīng)的時(shí)候,就不好做了,特別是我們?cè)谧鲆恍┥唐吩斍轫摰臅r(shí)候,需要image自適應(yīng)屏幕,按原圖比例顯示。那么如何讓image自適應(yīng)比例顯示呢?可以有兩種方法:

一、使用mode:widthFix
widthFix:寬度不變,高度自動(dòng)變化,保持原圖寬高比不變。
首先我們先設(shè)置image的mode為widthFix,然后給圖片加一個(gè)固定rpx的寬度,比如:730rpx。
這樣圖片也可以自適應(yīng)了。。因?yàn)樾〕绦虻膔px本身就是一個(gè)自適應(yīng)顯示的單位
二、使用bindload綁定函數(shù)動(dòng)態(tài)自適應(yīng)。
我們可以給image綁定一個(gè)函數(shù),這個(gè)函數(shù),如上面的bindload說明一樣,我們可以獲取到原圖的寬度和高度。
然后計(jì)算他們的寬高比率。。然后設(shè)置一個(gè)寬度大?。╮px),最后通過style動(dòng)態(tài)設(shè)置image的寬高。代碼如下:
html代碼:

<image src="{{ item }}" bindload="imageLoad" data-index="{{ index }}" 
style="width:{{ images[index].width }}rpx; height:{{ images[index].height }}rpx;"></image>

js代碼:

Page({
  data: {
    images:{}
  },
  imageLoad: function(e) {
     var $width=e.detail.width,    //獲取圖片真實(shí)寬度
         $height=e.detail.height,
         ratio=$width/$height;    //圖片的真實(shí)寬高比例
     var viewWidth=718,           //設(shè)置圖片顯示寬度,左右留有16rpx邊距
         viewHeight=718/ratio;    //計(jì)算的高度值
      var image=this.data.images; 
      //將圖片的datadata-index作為image對(duì)象的key,然后存儲(chǔ)圖片的寬高值
      image[e.target.dataset.index]={
         width:viewWidth,
         height:viewHeight
      }
      this.setData({
           images:image
      })
  }
})

最后,就可以通過images[index].width 和 images[index].height給每一個(gè)圖片設(shè)置寬高了。
原文地址:http://www.qianduan8.com/1005.html

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 孟冬飛雪 楊建軍(新韻) 寒冬飄雪舞梅花, 遙望窗前又憶家。 信手撫琴幽意遠(yuǎn), 高山流水浪天涯。
    楊建軍閱讀 237評(píng)論 0 0
  • 她說∶“我是有多無聊。今年特別迷茫。是真的。和20歲那年一樣。因?yàn)闀r(shí)間長(zhǎng)并不代表能力強(qiáng)。承認(rèn)自己的弱點(diǎn),我開始覺醒...
    路路66閱讀 526評(píng)論 2 2
  • 這是美國作家羅伯特.西奧迪尼繼《影響力》之后寫的一本書。由52個(gè)實(shí)用小技巧組成的小方法、大影響書籍。 ...
    007一清閱讀 646評(píng)論 0 0

友情鏈接更多精彩內(nèi)容