当前位置:   article > 正文

uniapp设置滚动条滚动到指定位置_uniapp scrollview滚动到指定位置

uniapp scrollview滚动到指定位置

场景:左侧菜单栏,每次切换时,需要右侧商品展示区保持滚动条及页面在最顶部

 

1.利用scroll-view 中scroll-top属性实现

1.1设置scrollToTop属性为0

  1. data() {
  2. return {
  3. // 保证每次切换,滚动条位置都在最顶部
  4. scrollToTop: 0,
  5. };
  6. }

1.2 菜单栏切换时clickFirstCategory切换scrollToTop的值

scrollToTop在0,1之间切换,通过1px的差别使页面可以正常渲染

  1. <!-- 左侧菜单栏 -->
  2. <scroll-view class="category-first" :enable-flex="true" scroll-y :show-scrollbar="false"
  3. :scroll-with-animation="true">
  4. <view @click="clickFirstCategory(index)" :class="['first-item',isActive===index?'active':'']"
  5. v-for="(category,index) in categoryList" :key="category.cat_id">
  6. {{category.cat_name}}
  7. </view>
  8. </scroll-view>
  1. clickFirstCategory(index) {
  2. // 每次点击都保证scroll滚动条在最顶部
  3. this.scrollToTop = this.scrollToTop ? 0 : 1
  4. },
  1. <!-- 右侧商品列表 -->
  2. <scroll-view class="category-content" :enable-flex="true" scroll-y :show-scrollbar="false"
  3. :scroll-top="scrollToTop" :scroll-with-animation="true">
  4. ...
  5. </scroll-view>

2.使用uni.pageScrollTo()方法

  1. <template>
  2. <view style="height: 2000px;" class="cart-box">
  3. 顶部
  4. </view>
  5. <button @click="backToTop">backToTop</button>
  6. </template>
  7. <script>
  8. export default {
  9. data() {
  10. return {
  11. };
  12. },
  13. methods: {
  14. backToTop(){
  15. uni.pageScrollTo({
  16. selector: ".cart-box",
  17. scrollTop: 0
  18. })
  19. }
  20. },
  21. }
  22. </script>

3.uni.pageScrollTo()和scroll-view组件使用区别

1)使用 uni.pageScrollTo 方法,属于页面级别滚动。

如果传入 scrollTop 不起效,应该是布局的问题, 它是页面级的滚动:所有的 滚动单元 必须是在根元素下,由 滚动单元 直接撑起来的高度,就可以滚动到指定位置。
2)使用 scroll-view 标签的属性:scroll-top(距离值 num) 或 scroll-into-view(子元素的id,不能以数字开头 string); 属于区域级别滚动。
两种方式的前提是:提供具体的高度值

参考:uniapp 将元素滚动到指定位置的两种方法总结_uniapp滚动到指定元素的位置_铁锤妹妹@的博客-CSDN博客

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/Monodyee/article/detail/312473
推荐阅读
相关标签
  

闽ICP备14008679号