小程序模板網(wǎng)

微信小程序swiper輪播圖片自適應(yīng)高度

發(fā)布時(shí)間:2021-06-29 09:02 所屬欄目:小程序開(kāi)發(fā)教程

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

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

1.wxml

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

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

2.js代碼:

data: {
    imgUrls: [                   
        '../../public/img/goodsDetail/goods.png',
        '../../public/img/goodsDetail/goods.png',
        '../../public/img/goodsDetail/goods.png'
    ],
    indicatorDots: true,
    autoplay: true,
    interval: 5000,
    duration: 1300,
    bg: '#C79C77',
    Hei:""          //這是swiper要?jiǎng)討B(tài)設(shè)置的高度屬性
 },
imgH: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({
        Hei:swiperH        //設(shè)置高度
    })
},


易優(yōu)小程序(企業(yè)版)+靈活api+前后代碼開(kāi)源 碼云倉(cāng)庫(kù):starfork
本文地址:http://22321a.com/wxmini/doc/course/26817.html 復(fù)制鏈接 如需定制請(qǐng)聯(lián)系易優(yōu)客服咨詢:800182392 點(diǎn)擊咨詢
QQ在線咨詢