微信小程序之swiper輪播圖中的圖片自適應(yīng)高度的方法
小程序中的輪播圖很簡(jiǎn)單,官方都有例子的,但是唯一的缺陷就是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è)屬性在官方文檔中都有,這里就不說(shuō)明了。最主要的是: 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"http://等比設(shè)置swiper的高度。 即 屏幕寬度 / swiper高度 = 圖片寬度 / 圖片高度 ==》swiper高度 = 屏幕寬度 * 圖片高度 / 圖片寬度
this.setData({
Height:swiperH//設(shè)置高度
})
},
總結(jié):獲取當(dāng)前屏幕寬度: wx.getSystemInfoSync().windowWidth
在小程序里動(dòng)態(tài)設(shè)置屬性,只有通過(guò)setData({ })來(lái)設(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就可以了。
以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
使用Web Uploader實(shí)現(xiàn)多文件上傳
這篇文章主要介紹了使用Web Uploader實(shí)現(xiàn)多文件上傳的相關(guān)資料,非常不錯(cuò)具有參考借鑒價(jià)值,需要的朋友可以參考下2016-06-06
js 獲取html5的data屬性實(shí)現(xiàn)方法
下面小編就為大家?guī)?lái)一篇js 獲取html5的data屬性實(shí)現(xiàn)方法。小編覺得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2017-07-07
JavaScript中檢測(cè)數(shù)據(jù)類型的四種方法總結(jié)
這篇文章主要為大家詳細(xì)介紹了四個(gè)JavaScript中檢測(cè)數(shù)據(jù)類型的常用方法,文中的示例代碼講解詳細(xì),具有一定的參考價(jià)值,需要的可以參考一下2023-04-04
詳解CocosCreator優(yōu)化之DrawCall
這篇文章主要介紹了CocosCreator中DrawCall的優(yōu)化,想研究游戲性能的同學(xué),一定要看一看2021-04-04
javascript正則表達(dá)式基礎(chǔ)知識(shí)入門
很長(zhǎng)時(shí)間沒看正則表達(dá)式了,碰巧今天用到,溫故知新了一把,這里記錄下來(lái),分享給大家,都是些基礎(chǔ)的知識(shí),重點(diǎn)給大家講解的是正則表達(dá)式中4種常用的方法,50% 的舉一反三練習(xí)中的原創(chuàng)。2015-04-04
JavaScript Ajax實(shí)現(xiàn)異步通信
這篇文章主要為大家詳細(xì)介紹了JavaScript Ajax實(shí)現(xiàn)異步通信的相關(guān)資料,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2016-12-12
webpack中Loader和Plugin的區(qū)別小結(jié)
本文主要介紹了webpack中Loader和Plugin的區(qū)別小結(jié),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2024-06-06

