当前位置:   article > 正文

微信小程序使用scroll-view导致吸顶无效或vant-sticky吸顶无效_scroll-view内元素吸顶

scroll-view内元素吸顶

我们先清楚为什么要使用scroll-view

在做回到顶部时,需要拿到实时的滚动距离,这时候就得使用上scroll-view了

记录一次在做 微信小程序开发时,在没有使用scroll-view的时候,我们使用vant-sticky做吸顶效果的时候可以正常使用。

但是当我们使用scroll-view时,突然发现吸顶失效了

我们可以看到Vant Weapp也是非常的细心,帮我们做了解答

通过 scroll-top 与 offset-top 属性可以实现在 scroll-view 内嵌套使用。

  1. <scroll-view
  2. bind:scroll="onScroll"
  3. scroll-y
  4. id="scroller"
  5. style="height: 200px;"
  6. >
  7. <view style="height: 400px; padding-top: 50px;">
  8. <van-sticky scroll-top="{{ scrollTop }}" offset-top="{{ offsetTop }}">
  9. <van-button type="warning">嵌套在 scroll-view 内</van-button>
  10. </van-sticky>
  11. </view>
  12. </scroll-view>
  1. Page({
  2. data: {
  3. scrollTop: 0,
  4. offsetTop: 0,
  5. },
  6. onScroll(event) {
  7. wx.createSelectorQuery()
  8. .select('#scroller')
  9. .boundingClientRect((res) => {
  10. this.setData({
  11. scrollTop: event.detail.scrollTop,
  12. offsetTop: res.top,
  13. });
  14. })
  15. .exec();
  16. },
  17. });

你可能有点看不懂一些属性是干嘛的,你只需要这样使用即可:

使用竖向滚动时,需要给scroll-view一个固定高度,通过 WXSS 设置 height。组件属性的长度单位默认为px,2.4.0起支持传入单位(rpx/px)。

  1. //scroll-view需要有高度.....
  2. <scroll-view bind:scroll="onScroll" scroll-y>
  3. <view>
  4. <van-sticky scroll-top="{{ scrollTop }}" offset-top="{{ offsetTop }}">
  5. //需要吸顶的内容
  6. </van-sticky>
  7. </view>
  8. </scroll-view>
  1. Page({
  2. data: {
  3. scrollTop: 0,
  4. offsetTop: 0,
  5. },
  6. onScroll(event) {
  7. this.setData({
  8. scrollTop: event.detail.scrollTop
  9. });
  10. },
  11. });

好了,是不是非常简单,有任何问题欢迎下方评论

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

闽ICP备14008679号