uniapp中scroll-view實(shí)現(xiàn)自動滾動到最底部的方法
引言
在做uniapp項(xiàng)目中,有個(gè)滾動視圖組件scroll-view
,跟微信小程序里的組件一樣的,想要實(shí)現(xiàn)自動滾動到最底部,是一件容易忽略的,小事情。
問題呈現(xiàn)
官網(wǎng)uniapp文檔上說可以控制滾動條,并沒有自動滾動到底部的設(shè)置選項(xiàng),請看布局源代碼,如下,大多數(shù)可能都是這樣寫的
<template> <view> <scroll-view class="scroll-view" :style="{height:scrollViewHeight+'px'}" :scroll-y="true" :scroll-top="scrollTop" :scroll-with-animation="true"> <block v-for="(item,index) in images" :key="index"> <image class="item" :src="item.src" mode="aspectFill"></image> </block> </scroll-view> </view> </template> <script> export default { data() { return { images:[], scrollTop:0,//滾動條位置 scrollViewHeight:300,//滾動視圖的高度 //... }; }, //... } </script>
雖然可以控制滾動條位置,但是,不知道滾動視圖框內(nèi)的內(nèi)容高度,要怎么精準(zhǔn)控制滾動條位置呢
解決方案
通過各種嘗試,認(rèn)為最好的方案就是,在滾動視圖組件內(nèi)再加一層view
視圖,布局改動后,源代碼如下
<template> <view> <scroll-view class="scroll-view" :style="{height:scrollViewHeight+'px'}" :scroll-y="true" :scroll-top="scrollTop" :scroll-with-animation="true"> <view id="scroll-view-content"> <block v-for="(item,index) in images" :key="index"> <image class="item" :src="item.src" mode="aspectFill"></image> </block> </view> </scroll-view> </view> </template> <script> //此處省略... </script>
還有,實(shí)現(xiàn)滾動底部的處理方法scrollToBottom()
,代碼如下
export default { data() { return { images:[], scrollTop:0,//滾動條位置 scrollViewHeight:300,//滾動視圖的高度 //... }; }, mounted() { let i = 10; do{ this.images.push({ src:'../../static/test.jpg', //... }); i--; }while(i>0); }, //... methods:{ scrollToBottom(){ this.$nextTick(()=>{ uni.createSelectorQuery().in(this).select('#scroll-view-content').boundingClientRect((res)=>{ let top = res.height-this.scrollViewHeight; if(top>0){ this.scrollTop=top; } }).exec() }) } } }
注意事項(xiàng)
需要注意組件scroll-view
的屬性設(shè)置
- 需要設(shè)置固定高度,這樣視圖里面內(nèi)容當(dāng)只有超過該高度才會有滾動效果
- 需要設(shè)置
scroll-with-animation=true
,可以出現(xiàn)慢慢滾動到底部效果
總結(jié)
到此這篇關(guān)于uniapp中scroll-view實(shí)現(xiàn)自動滾動到最底部的文章就介紹到這了,更多相關(guān)uniapp scroll-view自動滾動最底部內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
JS highcharts實(shí)現(xiàn)動態(tài)曲線代碼示例
這篇文章主要介紹了JS highcharts實(shí)現(xiàn)動態(tài)曲線代碼示例,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2020-10-10微信小程序?qū)崿F(xiàn)日期格式化和倒計(jì)時(shí)
這篇文章主要為大家詳細(xì)介紹了微信小程序?qū)崿F(xiàn)日期格式化和倒計(jì)時(shí),文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2019-06-06javascript創(chuàng)建含數(shù)字字母的隨機(jī)字符串方法總結(jié)
如果想創(chuàng)建一個(gè)含有數(shù)字、字母(大小寫)或者符號的字符串,比如從[a-zA-Z0-9]集合中中創(chuàng)建一個(gè)隨機(jī)的字符串,長度為5.有沒有什么比較好的代碼呢?本文提供了幾種方法,包括自動改變字符集合。一起來學(xué)習(xí)下。2016-08-08微信小程序自定義組件實(shí)現(xiàn)tabs選項(xiàng)卡功能
這篇文章主要為大家詳細(xì)介紹了微信小程序自定義組件實(shí)現(xiàn)tabs選項(xiàng)卡功能,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2018-07-07JavaScript將對象數(shù)組按字母順序排序的方法詳解
這篇文章主要介紹了JavaScript如何將對象數(shù)組按字母順序排序,本文介紹了三種解決方案,if條件語句 + sort(),localeCompare() + sort(),Collator() + sort(),有感興趣的同學(xué)可以跟著小編一起來看看2023-07-07