微信小程序 swiper 輪播圖片顯示不全解決辦法


微信小程序  swiper 輪播圖片顯示不全解決辦法

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

  我的思路是:獲取屏幕寬度,獲取圖片的寬高,然后等比設置當前屏幕寬度下swiper的高度。

<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”這個屬性哦,還有就是設置這個image 100%寬度喲 </swiper-item> </block> </swiper>

  swiper的各個屬性在官方文檔中都有,這里就不說明了。最主要的是:  style='height:{{Hei}}' //動態設置swiper的高度 

js修改部分

data: {
    
    Hei:""          //這是swiper要動態設置的高度屬性
 },
imgH:function(e){
    var winWid = wx.getSystemInfoSync().windowWidth;         //獲取當前屏幕的寬度
    var imgh=e.detail.height;                //圖片高度
    var imgw=e.detail.width;
    var swiperH=winWid*imgh/imgw + "px"          //等比設置swiper的高度。  即 屏幕寬度 / swiper高度 = 圖片寬度 / 圖片高度    ==》swiper高度 = 屏幕寬度 * 圖片高度 / 圖片寬度
    this.setData({
        Hei:swiperH        //設置高度
    })
},

  改之前輪播效果

  

 

 改之后輪播圖效果

       

綜上所述,所改之處只有三點:

1.在  swiper 標簽上加屬性     style='height:{{Hei}}'  動態的通過圖片的高度來決定swiper的高度

2.給輪播圖的圖片加 屬性   mode="widthFix" bindload='imgH'

3.在js文件中:data中加 Hei:""    

  加方法:

imgH:function(e){
    var winWid = wx.getSystemInfoSync().windowWidth;         //獲取當前屏幕的寬度
    var imgh=e.detail.height;                //圖片高度
    var imgw=e.detail.width;
    var swiperH=winWid*imgh/imgw + "px"          //等比設置swiper的高度。  即 屏幕寬度 / swiper高度 = 圖片寬度 / 圖片高度    ==》swiper高度 = 屏幕寬度 * 圖片高度 / 圖片寬度
    this.setData({
        Hei:swiperH        //設置高度
    })
},

 通過以上三步可以是輪播容器顯示完整圖片

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM