当前位置:   article > 正文

uniapp利用scroll-view实现左边按钮定位右边页面滚动

uniapp利用scroll-view实现左边按钮定位右边页面滚动

前言:如果左边数据少的话其实可以不用scroll-view,直接弄出一块一块可以点击的就行,我这里是数据还没有确定,所以需要写个scroll-view提前准备,因为数据多和少都可以使用scroll-view

-----------------------------------------------------无情的分割线-------------------------------------------------------

1.首先我们准备一个容器(flex布局)包裹住两边scroll-view,然后分为左右两块:先写左边

  1. <view class="left">
  2. <scroll-view scroll-y="true" class="sll" :scroll-into-view="'tab'+tab">
  3. <view class="item" v-for="(item,index) in leftlist" :key="item.id" :class="idx==index?'choose':'item'" @click="clksc(index)" :id="'tab'+index">
  4. <view class="small" v-show="idx==index"></view> <view class="fontt">{{item.name}}
  5. </view>
  6. </view>
  7. </scroll-view>
  8. </view>

2.再写右边的scroll-view:数据写的有点乱但是我们主要看scroll-view的问题

  1. <view class="right">
  2. <scroll-view scroll-y="true" class="scroll"
  3. :scroll-into-view="'into'+into"
  4. :style="{ 'height': windowH + 'px' }">
  5. <view v-for="(i,t) in rightlist" :key="i.id" class="right"
  6. :id="'into'+t" @touchmove="touch(t)">
  7. <view class="top">{{i.name}}</view>
  8. <view class="r-bom" v-for="(im,idx) in i.data" :key="idx">
  9. <image :src="im.img"></image>
  10. <view class="qiangwan" v-if="im.status">
  11. <image src="../../static/已抢光.png" >
  12. </image></view>
  13. <view><text class="bigname">{{im.name}}</text>
  14. <view class="goods-bom" v-if="im.jifen">
  15. <text class="bigprice">55</text>
  16. <text class="jifen">积分</text>
  17. <text class="jia" v-if="im.jia">+</text>
  18. <div class="jiu" v-if="im.jiu"><div class="money"></div><div class="j">9</div></div>
  19. <view class="oldprice" v-if="im.old">或原价<text>¥98</text></view></view>
  20. </view>
  21. </view>
  22. <lines></lines>
  23. </view>
  24. </scroll-view>
  25. </view>

3.写这个的时候发现的问题:(大佬请绕道,本萌新遇到的问题,总结一下)

(1)首先我们利用scroll-into-view滚动出现了左边点了右边的没有反应,这时候我们还缺少一步。

(2)给我们的数据循环绑定一个id例如:id="不能以数字开头"+索引号,就是循环的index,绑定了id之后就可以实现滚动了......吗?还是不行,还缺少一个非常重要的一步,我在这里卡了一天

(3)然后我就觉得右边用scroll-view实现不了页面滚动,就是用了轮播图,但是发现轮播图不能实现上下的数据衔接在一起,它是页面分开的,所以我在这里卡了一天,最后看了个博主scorll-view的总结,顿时茅塞顿开,发现了一个非常重要的前提。

(4)就是每一个scroll-view都要给一个高度,这里的话我左边因为是fixed固定布局就固定高度了,但是右边的应该随着数据的增加,高度也要随之增加,那么我们就要在onReady页面生命周期使用获取高度方法,就可以实现左边按钮点击定位到右边相应的栏目,也可以右边滚动左边也随之滚动了

  1. onReady() {
  2. // 计算屏幕剩余高度 填补剩余高度
  3. let _this = this
  4. uni.getSystemInfo({
  5. success(res) {
  6. _this.windowH = res.windowHeight
  7. }
  8. })
  9. }

点击左边定位到右边相应的栏目

滑动右边让左边定位到相应的位置

声明:本文内容由网友自发贡献,转载请注明出处:【wpsshop博客】
推荐阅读
相关标签
  

闽ICP备14008679号