当前位置: 首页 > news >正文

鸿蒙应用开发之通过Scroll、nestedScroll实现京东秒杀嵌套滚动效果

通过Scroll、nestedScroll实现京东秒杀嵌套滚动效果

通过Scroll、nestedScroll实现京东秒杀嵌套滚动效果

当上拉时,外层先滚动慢慢的黄色签到图片会消失、然后List列表可以继续上拉

效果预览:

实现思路:

  1. 实现页面结构布局,红、黄、绿、列表
@Entry
@Component
struct Index {build() {Column() {// 红色(不要放到Column   因为后续下面黄色、蓝、列表需要滚动  而这个红色不需要)Text().width('100%').height(150).backgroundColor(Color.Red)// 下述后续要上拉滚动Column() {// 黄色签到Text().width('100%').height(100).backgroundColor(Color.Yellow)// 蓝色 Text().width('100%').height(50).backgroundColor(Color.Blue)// 列表List() {ForEach('0123456789abcdefg'.split(''), (item:string) => {ListItem() {Text(item).height(50).fontSize(30)}})}.layoutWeight(1).divider({strokeWidth:2,color:Color.Red})}}}
}
  1. 实现黄色、蓝色、列表上拉滚动 通过Scroll容器
@Entry
@Component
struct Index {build() {Column() {// 红色Text().width('100%').height(150).backgroundColor(Color.Red)// 核心1⭐️:多层嵌套滚动Scroll() {Column() {// 黄色Text().width('100%').height(100).backgroundColor(Color.Yellow)// 蓝色Text().width('100%').height(50).backgroundColor(Color.Blue)// 列表List() {ForEach('0123456789abcdefg'.split(''), (item:string) => {ListItem() {Text(item).height(50).fontSize(30)}})}.divider({strokeWidth:2,color:Color.Red})}}.layoutWeight(1)}}
}
  1. 实现上拉黄色慢慢消失,蓝色吸顶效果
@Entry
@Component
struct Index {build() {Column() {// 红色Text().width('100%').height(150).backgroundColor(Color.Red)// 核心1⭐️:多层嵌套滚动Scroll() {Column() {// 黄色Text().width('100%').height(100).backgroundColor(Color.Yellow)// 蓝色Text().width('100%').height(50).backgroundColor(Color.Blue)// 列表List() {ForEach('0123456789abcdefg'.split(''), (item:string) => {ListItem() {Text(item).height(50).fontSize(30)}})}.divider({strokeWidth:2,color:Color.Red})// 核心2⭐:上拉黄色慢慢消失、蓝色一直在  也就是减去蓝色高度.height('calc(100% - 50vp)')}}.layoutWeight(1)}}
}
  1. 通过nestedScroll属性实现外层滚动Scroll、内层List滚动控制
@Entry
@Component
struct Index {build() {Column() {// 红色Text().width('100%').height(150).backgroundColor(Color.Red)// 核心1⭐️:多层嵌套滚动Scroll() {Column() {// 黄色Text().width('100%').height(100).backgroundColor(Color.Yellow)// 蓝色Text().width('100%').height(50).backgroundColor(Color.Blue)// 列表List() {ForEach('0123456789abcdefg'.split(''), (item:string) => {ListItem() {Text(item).height(50).fontSize(30)}})}.divider({strokeWidth:2,color:Color.Red})// 核心2⭐:上拉黄色慢慢消失、蓝色一直在  也就是减去蓝色高度.height('calc(100% - 50vp)')// 核心3⭐️:向前向后滚动模式 -> 实现与父组件的滚动联动.nestedScroll({scrollForward: NestedScrollMode.PARENT_FIRST, // 上拉scrollBackward: NestedScrollMode.SELF_FIRST   // 下拉// 不管父-SELF_ONLY、SELF_FIRST-到边缘管父、PARENT_FIRST-到边缘管子、PARALLEL-父子同时// 详细 https://developer.huawei.com/consumer/cn/doc/harmonyos-references-V13/ts-appendix-enums-V13#nestedscrollmode10})}}.layoutWeight(1)}}
}

完整代码:

@Entry
@Component
struct Index {build() {Column() {// 红色Text().width('100%').height(150).backgroundColor(Color.Red)// 核心1⭐️:多层嵌套滚动Scroll() {Column() {// 黄色Text().width('100%').height(100).backgroundColor(Color.Yellow)// 蓝色Text().width('100%').height(50).backgroundColor(Color.Blue)// 列表List() {ForEach('0123456789abcdefg'.split(''), (item:string) => {ListItem() {Text(item).height(50).fontSize(30)}})}.divider({strokeWidth:2,color:Color.Red})// 核心2⭐:上拉黄色慢慢消失、蓝色一直在  也就是减去蓝色高度.height('calc(100% - 50vp)')// 核心3⭐️:向前向后滚动模式 -> 实现与父组件的滚动联动.nestedScroll({scrollForward: NestedScrollMode.PARENT_FIRST, // 上拉scrollBackward: NestedScrollMode.SELF_FIRST   // 下拉// 不管父-SELF_ONLY、SELF_FIRST-到边缘管父、PARENT_FIRST-到边缘管子、PARALLEL-父子同时// 详细 https://developer.huawei.com/consumer/cn/doc/harmonyos-references-V13/ts-appendix-enums-V13#nestedscrollmode10})}}.layoutWeight(1)}}
}

鸿蒙开发者班级

http://www.jsqmd.com/news/135708/

相关文章:

  • 【ComfyUI错误】【SmoothMixWan22工作流】wanblockswap节点不显示解决方法
  • Nacos服务注册
  • Java毕设项目:基于java零售与仓储管理系统的设计与实现(源码+文档,讲解、调试运行,定制等)
  • 团队作业6——项目复审与事后分析
  • 数据结构
  • 2025最新!9个AI论文平台测评:继续教育写论文痛点全解析
  • Iridescent:Day34
  • 基于Andriod的家庭理财收支记账系统的设计与实现 小程序
  • Iridescent:Day35
  • 8个降AI率工具推荐!继续教育学生必看
  • 学长亲荐8个AI论文平台,本科生毕业论文轻松搞定!
  • 飞进寻常百姓家:无人机如何从“玩具”变身万亿产业的核心载体?
  • 【计算机毕业设计案例】基于SpringBoot+Vue的高校志愿活动管理系统的设计与实现志愿者活动组织宣传管理系统(程序+文档+讲解+定制)
  • 高校学术研讨交流信息管理系统 小程序
  • 基于Android的XX校园学习娱乐交流APP--论文小程序
  • 探索 COMSOL 激光熔覆模型在同轴送粉中的应用
  • Java数据库操作:JDBC入门5步走
  • Chap25-SeparateUI-NetThread
  • Java计算机毕设之基于java的web仓库管理系统设计与实现基于java零售与仓储管理系统的设计与实现(完整前后端代码+说明文档+LW,调试定制等)
  • 【计算机毕业设计案例】基于Java的饭店点餐系统设计与实现基于JavaWeb的点餐系统的设计与实现(程序+文档+讲解+定制)
  • Java毕设选题推荐:基于JavaWeb的点餐系统的设计与实现基于JavaWeb的餐厅点餐系统设计与实现【附源码、mysql、文档、调试+代码讲解+全bao等】
  • 学长亲荐10个AI论文软件,助你搞定本科生毕业论文!
  • 佳能LBP2900 linux驱动 captdriver - 童晓伟
  • Chap18-AddFriend
  • 个人理财收支记账系统 家庭理财系统APP_vj9n8--小程序论文
  • Chap23-Heartbeat
  • Java毕设项目:基于JavaWeb的点餐系统的设计与实现(源码+文档,讲解、调试运行,定制等)
  • 路由策略和策略路由区别是什么
  • 深入剖析WordPress插件漏洞:未授权攻击的成功之道
  • Java毕设项目:基于SpringBoot+Vue的高校志愿活动管理系统的设计与实现(源码+文档,讲解、调试运行,定制等)