微信小程序 - scroll-view 的一些要点(scroll-view 需要设置滚动方向、scroll-view 需要设置高度)

scroll-view 需要设置滚动方向

html 复制代码
<view class="page-container">
    <view class="other-data">other content</view>
    <scroll-view class="data-list">
        <view class="data-item">some content</view>
        <view class="data-item">some content</view>
        <view class="data-item">some content</view>
        <view class="data-item">some content</view>
        <view class="data-item">some content</view>
    </scroll-view>
</view>
css 复制代码
Page {
  width: 100%;
  height: 100%;

  .page-container {
    width: 100%;
    height: 100%;

    .other-data {
      height: 200rpx;
      background-color: aquamarine;
    }

    .data-list {
      box-sizing: border-box;
      width: 100%;
      height: calc(100% - 200rpx);
      padding: 40rpx;

      .data-item {
        box-sizing: border-box;
        width: 100%;
        height: 500rpx;
        border: 1rpx solid #bbbbbb;
        margin-top: 40rpx;

        &:first-child {
          margin-top: 0rpx;
        }
      }
    }
  }
}
  • 在上述代码中,scroll-view 无法滚动,因为 scroll-view 默认不滚动,需要明确设置 scroll-x 或 scroll-y 属性
html 复制代码
<scroll-view class="data-list" scroll-y>
    
    ...

</scroll-view>

scroll-view 需要设置高度

html 复制代码
<view class="page-container">
    <view class="other-data">other content</view>
    <scroll-view class="data-list" scroll-y>
        <view class="data-item">some content</view>
        <view class="data-item">some content</view>
        <view class="data-item">some content</view>
        <view class="data-item">some content</view>
        <view class="data-item">some content</view>
    </scroll-view>
</view>
css 复制代码
Page {
  width: 100%;
  height: 100%;

  .page-container {
    width: 100%;
    height: 100%;

    .other-data {
      height: 200rpx;
      background-color: aquamarine;
    }

    .data-list {
      box-sizing: border-box;
      width: 100%;
      padding: 40rpx;

      .data-item {
        box-sizing: border-box;
        width: 100%;
        height: 500rpx;
        border: 1rpx solid #bbbbbb;
        margin-top: 40rpx;

        &:first-child {
          margin-top: 0rpx;
        }
      }
    }
  }
}
  • 在上述代码中,scroll-view 无法滚动,实际滚动的是 view:page-container(因为 view:other-data 被连带滚动),scroll-view 未设置高度,无法计算可滚动区域,导致无法滚动
css 复制代码
.data-list {
    height: calc(100% - 200rpx);

    ...
}
相关推荐
瑾修22 分钟前
golang查找cpu过高的函数
开发语言·后端·golang
怒放的生命199125 分钟前
pnpm + Monorepo 使用教程(集成 Vue 3 项目)
前端·vue.js·pnpm·monorepo·前端工程化
kkkAloha27 分钟前
JS笔记汇总
开发语言·javascript·笔记
佛系打工仔5 小时前
绘制K线第二章:背景网格绘制
android·前端·架构
LawrenceLan7 小时前
Flutter 零基础入门(十一):空安全(Null Safety)基础
开发语言·flutter·dart
txinyu的博客7 小时前
解析业务层的key冲突问题
开发语言·c++·分布式
明天好,会的7 小时前
分形生成实验(五):人机协同破局--30万token揭示Actix-web状态管理的微妙边界
运维·服务器·前端
码不停蹄Zzz7 小时前
C语言第1章
c语言·开发语言
C_心欲无痕8 小时前
nginx - alias 和 root 的区别详解
运维·前端·nginx
行者968 小时前
Flutter跨平台开发在OpenHarmony上的评分组件实现与优化
开发语言·flutter·harmonyos·鸿蒙