uni-app swiper設置自定義高度


 

話不多少先上圖,

大家可以看到圖片中紅色區域是頭部區域,黃色區域則是我們要滑動的區域。

      大家可以在uni-app官網上看到swiper高度是默認100%,而swiper-item則是要有固定寬高的,要的效果是什么呢?

1.點擊tab可以切換黃色區域視圖

2.滑動黃色區域改變視圖,支持橫向滑動以及縱向滑動

我的思路:因為swiper是要固定高度的,它並不會因為內容而自動撐開,那么我的想法呢就是,1.給swiper一個父元素,父元素設置自適應高度,也就是黃色區域的高度,然后動態賦值給swiper,

1.先考慮整個視圖的高度,以及布局,我是把他分為兩大塊,也就是紅色區域以及黃色區域,用flex布局,讓紅色區域固定高度,黃色區域自動撐滿全屏。

注意:當然也可以使用定位的方法,計算出紅色區域的高度然后黃色區域設置定位就可以啦,因為我們要的布局方式是黃色區域超出范圍后可以上下滑動。

上代碼:

home是整個頁面的盒子,footer是黃色區域的盒子,給home設置flex上下排列,footer設置flex

不會flex彈性盒子布局的小伙伴可以問度娘。

2.這個時候你會發現你設置完成之后還是無法生效的,這是因為你的最外層盒子的高度並沒有改變,這個時候我們就要動態設置最外層盒子的高度了。

我的實現思路是:獲取手機屏幕高度,然后賦值給最外層盒子,也就是上邊的home,這個時候就會撐滿全屏,當然也會根據屏幕的大小自動改變的。

我用的方法呢是uni-app 里邊的一個原生方法  uni.getSystemInfo()這個方法呢可以獲取手機的基本信息,給大家看下所有信息。

大家可以看到里邊有兩個高度,一個是屏幕高度,一個是可視區域高度,我們使用第二個

得到手機可視區域后賦值給home這個時候布局就會生效,

3.在footer,也就是黃色區域自動撐滿之后,我們就可以獲得到黃色區域的高度,當然使用uni-app提供的方法uni.createSelectorQuery().select('.footer'); //獲取某個元素的信息,然后動態賦值給swiper,這個時候swiper就會撐滿黃色區域,當然我們結合scroll-view就可以實現上下滑動,以及左右滑動的效果了。

給大家附上完整代碼:

html:

 

千萬不要忘記給scroll-view設置scroll-y滾動方向,不然你設置成功也不會上下滑動的

js:

 

 

css:

 

 

好了,差不多就是這么多了,當然方法比較笨,自己也是菜鳥一枚,不過官網也沒有明確給出解決辦法,在這里給大家分享出來,如果大家有什么不懂的以及要指正的歡迎大家留言,希望可以給大家幫助。


免責聲明!

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



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