淺析小程式中怎麼讓scroll-view依照指定位置捲動

青灯夜游
發布: 2021-11-08 10:11:56
轉載
3953 人瀏覽過

這篇文章跟大家介紹一下在微信小程式中怎麼讓scroll-view按照指定位置滾動,無需在寫額外的js腳本,就可獲得極佳的體驗,希望對大家有所幫助!

淺析小程式中怎麼讓scroll-view依照指定位置捲動

背景是這樣的,微信小程式有一個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=&#39;content-0&#39;>
          <View id=&#39;content-0&#39;></View>
          标签页一的内容
          </ScrollView>
        </AtTabsPane>
        <AtTabsPane current={this.state.current} index={1} >
          <ScrollView scrollY scrollIntoView=&#39;content-1&#39;>
          <View id=&#39;content-1&#39;></View>
          标签页二的内容
          </ScrollView>
        </AtTabsPane>
        <AtTabsPane current={this.state.current} index={2} >
          <ScrollView scrollY scrollIntoView=&#39;content-2&#39;>
          <View id=&#39;content-2&#39;></View>
          标签页三的内容
          </ScrollView>
        </AtTabsPane>
      </AtTabs>
    )
  }
}
登入後複製

如第一個tabscroll-view裡面放置一個id值為content-0view,那麼在切換tab頁時,scroll-view會根據我們設定的scroll-into-view屬性定位到子元素的id上,到達滾動條自動置頂的效果

<AtTabsPane current={this.state.current} index={0} >
  <ScrollView scrollY scrollIntoView=&#39;content-0&#39;>
    <View id=&#39;content-0&#39;></View>
    标签页一的内容
  </ScrollView>
</AtTabsPane>
登入後複製

同理的,假如需要滾動條滾到最低下,把相應的子元素id放到最低下即可,例如某些聊天界面,需要定位到最新那條

<AtTabsPane current={this.state.current} index={0} >
  <ScrollView scrollY scrollIntoView=&#39;content-0&#39;>
    标签页一的内容
    <View id=&#39;content-0&#39;></View>
  </ScrollView>
</AtTabsPane>
登入後複製

更多程式相關知識,請造訪:程式設計影片! !

以上是淺析小程式中怎麼讓scroll-view依照指定位置捲動的詳細內容。更多資訊請關注PHP中文網其他相關文章!

相關標籤:
來源:juejin.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
最新問題
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板