微信小程序 scrollView之scroll-into-view跳坑

使用scroll-view来进行锚点跳转的赎时候发现scroll-view的scroll-into-view有问题
需求是滑动一定的距离让导航固定并进行锚点跳转

<view class="topnavFixed{ 'topnavFixed' ? tabShow : '' " wx:if="{{tabShow}}">
    <van-button class="'title' {{toViewid == 'a1' ? 'active' : ''}}  " type="primary" bindtap='jumpTo' data-opt="a1">商品
    </van-button>
    <van-button class="'title' {{toViewid == 'a2' ? 'active' : ''}} " type="primary" bindtap='jumpTo' data-opt="a2">详情
    </van-button>
    <van-button class="'title' {{toViewid == 'a3' ? 'active' : ''}} " type="primary" bindtap='jumpTo' data-opt="a3">评价
    </van-button>
  </view>
<scroll-view scroll-into-view="{{toViewid}}" scroll-y="true" scroll-with-animation="true" bindtouchstart='onPageScroll'>
	要滑动的内容放在这里-------
	<view id="a1">商品信息</view>
	<view id="a2">详情信息</view>
	<view id="a3">评论信息</view>
</scroll-view>

另:
锚点点击跳转

  jumpTo: function (e) {
    let myid = e.currentTarget.dataset.opt;
    this.setData({
      toViewid: myid
    });
  },

小程序间提供屏幕滑动事件

onPageScroll(ev) {
    let that = this;
    let top = ev.scrollTop || ev.target.offsetTop ;
    if (top <= 0) {
      top = 0;
    } else if (top > wx.getSystemInfoSync().windowHeight) {
      top = wx.getSystemInfoSync().windowHeight;
    }
    if (top >50) {  //根据自己的足球来进行判断
      that.setData({
        tabShow: true
      })
    } else {
      that.setData({
        tabShow: false
      })
    }
    setTimeout(function () {
      that.setData({
        scrollTop: top
      })
    }, 0)
  },

这是商品详情页面 不能设置固定的高度,设置scroll-view的高度为100%不能进行锚点跳转,后转变为scroll-view的高度为100vh就可以进行锚点跳转了。
scroll-view 必须有固定的高度,如果设置高度为百分比的话,父容器一定要固定高度,否则无效。比如最顶层的 view 没有设置固定高度,然后在下面添加的 scroll-view 的高度就直接设置height:100%是无效的,此时可以设置为height:100vh代替。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值