這篇文章跟大家介紹一下在微信小程式中怎麼讓scroll-view按照指定位置滾動,無需在寫額外的js腳本,就可獲得極佳的體驗,希望對大家有所幫助!
背景是這樣的,微信小程式有一個tab
#切換頁面,tab
切換頁面有兩個內容框,我是使用scroll-view
進行製作,然後在切換tab
頁面時,對應的scroll-view
裡的捲軸需要置頂處理。 【相關學習推薦:小程式開發教學】
我們可以看到官方文件描述scroll-view
裡面有一個scroll-into-view
屬性,該屬性的描述如下
scroll-into-view的值應為某子元素id(id不能以數字開頭)。設定哪個方向可滾動,則在哪個方向滾動到該元素
那麼我們可以在這個屬性里大作文章,只要在scroll-view
裡放置一個id值為設定的自訂值就可以實現切換tab
時,對應的內容框捲軸都會自動滾到頂部,如下面程式碼所示,下面程式碼是我使用Taro
小程式框架示範的,原生的也同理。
import Taro from '@tarojs/taro' import { View } from '@tarojs/components' import { AtTabs, AtTabsPane } from 'taro-ui' export default class Index extends Taro.Component { constructor () { super(...arguments) this.state = { current: 0, } } handleClick (value) { this.setState({ current: value }) } render () { const tabList = [{ title: '标签第一页' }, { title: '标签第二页' }, { title: '标签第三页' }] return ( <AtTabs current={this.state.current} tabList={tabList} onClick={this.handleClick.bind(this)}> <AtTabsPane current={this.state.current} index={0} > <ScrollView scrollY scrollIntoView='content-0'> <View id='content-0'></View> 标签页一的内容 </ScrollView> </AtTabsPane> <AtTabsPane current={this.state.current} index={1} > <ScrollView scrollY scrollIntoView='content-1'> <View id='content-1'></View> 标签页二的内容 </ScrollView> </AtTabsPane> <AtTabsPane current={this.state.current} index={2} > <ScrollView scrollY scrollIntoView='content-2'> <View id='content-2'></View> 标签页三的内容 </ScrollView> </AtTabsPane> </AtTabs> ) } }
如第一個tab
的scroll-view
裡面放置一個id值為content-0
的view
,那麼在切換tab
頁時,scroll-view
會根據我們設定的scroll-into-view
屬性定位到子元素的id上,到達滾動條自動置頂的效果
<AtTabsPane current={this.state.current} index={0} > <ScrollView scrollY scrollIntoView='content-0'> <View id='content-0'></View> 标签页一的内容 </ScrollView> </AtTabsPane>
同理的,假如需要滾動條滾到最低下,把相應的子元素id放到最低下即可,例如某些聊天界面,需要定位到最新那條
<AtTabsPane current={this.state.current} index={0} > <ScrollView scrollY scrollIntoView='content-0'> 标签页一的内容 <View id='content-0'></View> </ScrollView> </AtTabsPane>
更多程式相關知識,請造訪:程式設計影片! !
以上是淺析小程式中怎麼讓scroll-view依照指定位置捲動的詳細內容。更多資訊請關注PHP中文網其他相關文章!