溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

微信小程序怎么實(shí)現(xiàn)swiper輪播圖中的圖片自適應(yīng)高度

發(fā)布時(shí)間:2022-04-08 10:44:11 來源:億速云 閱讀:880 作者:iii 欄目:編程語言

本文小編為大家詳細(xì)介紹“微信小程序怎么實(shí)現(xiàn)swiper輪播圖中的圖片自適應(yīng)高度”,內(nèi)容詳細(xì),步驟清晰,細(xì)節(jié)處理妥當(dāng),希望這篇“微信小程序怎么實(shí)現(xiàn)swiper輪播圖中的圖片自適應(yīng)高度”文章能幫助大家解決疑惑,下面跟著小編的思路慢慢深入,一起來學(xué)習(xí)新知識(shí)吧。

小程序中的輪播圖很簡單,官方都有例子的,但是唯一的缺陷就是swiper是固定死的150px高度,這樣如果傳入的圖片大于這個(gè)高度就會(huì)被隱藏。辣么,怎樣讓圖片自適應(yīng)不同分辨率捏。

我的思路是:獲取屏幕寬度,獲取圖片的寬高,然后等比設(shè)置當(dāng)前屏幕寬度下swiper的高度。

1.結(jié)構(gòu)

<swiper indicator-dots="{{indicatorDots}}" autoplay="{{autoplay}}" interval="{{interval}}" duration="{{duration}}" indicator-active-color="{{bg}}" style='height:{{Height}}'>
   <block wx:for="{{imgUrls}}">
    <swiper-item>
      <image src="{{item}}" class="slide-image" mode="widthFix" bindload='imgHeight'/>  //bindload是綁定圖片加載的事件,記得給image加上mode=“widthFix”這個(gè)屬性哦,還有就是設(shè)置這個(gè)image 100%寬度喲
    </swiper-item>
   </block>
</swiper>

swiper的各個(gè)屬性在官方文檔中都有,這里就不說明了。最主要的是: style='height:{{Height}}' //動(dòng)態(tài)設(shè)置swiper的高度

2.在page里面:

data: {
  imgUrls: [          
    '../img/goodsDetail/goods.png',
    '../img/goodsDetail/goods.png',
    '../img/goodsDetail/goods.png'
  ],
  indicatorDots: true,
  autoplay: true,
  interval: 5000,
  duration: 1300,
  bg: '#C79C77',
  Height:""     //這是swiper要?jiǎng)討B(tài)設(shè)置的高度屬性
 },
imgHeight:function(e){
  var winWid = wx.getSystemInfoSync().windowWidth; //獲取當(dāng)前屏幕的寬度
  var imgh=e.detail.height;//圖片高度
  var imgw=e.detail.width;//圖片寬度
  var swiperH=winWid*imgh/imgw + "px"//等比設(shè)置swiper的高度。 即 屏幕寬度 / swiper高度 = 圖片寬度 / 圖片高度  ==》swiper高度 = 屏幕寬度 * 圖片高度 / 圖片寬度
  this.setData({
    Height:swiperH//設(shè)置高度
  })
},

總結(jié):獲取當(dāng)前屏幕寬度: wx.getSystemInfoSync().windowWidth

在小程序里動(dòng)態(tài)設(shè)置屬性,只有通過setData({ })來設(shè)置,和js中直接操作css樣式有一點(diǎn)類似

注意:image如果外層有個(gè)容器裝,然后image設(shè)置width為100%之后,距離裝它的容器底部有一點(diǎn)距離,那是因?yàn)閕mage是默認(rèn)設(shè)置的display:inline-block屬性,這個(gè)屬性會(huì)產(chǎn)生間隙。如果要撐滿容器,設(shè)置為display:block就可以了。

讀到這里,這篇“微信小程序怎么實(shí)現(xiàn)swiper輪播圖中的圖片自適應(yīng)高度”文章已經(jīng)介紹完畢,想要掌握這篇文章的知識(shí)點(diǎn)還需要大家自己動(dòng)手實(shí)踐使用過才能領(lǐng)會(huì),如果想了解更多相關(guān)內(nèi)容的文章,歡迎關(guān)注億速云行業(yè)資訊頻道。

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI