小程序-添加粘性布局

复制代码
// 获取元素位置
const getElementPosition = () => {
    const query = uni.createSelectorQuery()
    
    // 获取顶部栏高度
    query.select('.anchor-title').boundingClientRect()
    // 获取筛选区域位置和高度
    query.select('.filter-section').boundingClientRect()
    
    query.exec(res => {
        // 计算顶部栏高度(包括状态栏和搜索框)
        if (res[0]) {
            topBarHeight.value = res[0].top + 80 // 加上一些边距
        }
        
        // 获取筛选区域的位置
        if (res[1]) {
            filterTop.value = res[1].top
            filterHeight.value = res[1].height
        }
    })
}

// 滚动处理
const handleScroll = (e: any) => {
    const scrollTop = e.detail.scrollTop
    
    // 判断是否吸顶
    if (filterTop.value > 0) {
        const shouldFix = scrollTop >= filterTop.value - topBarHeight.value
        if (isFilterFixed.value !== shouldFix) {
            isFilterFixed.value = shouldFix
        }
    }
}
  1. 添加元素占位,

2.添加粘性布局

  1. 筛选栏滑动到一定位置后, 变成吸顶的筛选栏,
  1. 在筛选框位置添加占位,

  2. 写一个单独的定位筛选栏, 页面滚动到一定位置后,展示这个单独的定位栏

相关推荐
佳児素花痴╮2 小时前
线程知识点
java·开发语言·jvm
htzyl2062 小时前
前端阶梯——第九章、颜色、文本与背景
前端·css
zhangzeyuaaa2 小时前
Ruby `require` 完全指南:从 `$LOAD_PATH` 到 `require_relative`
服务器·前端·ruby
学掌门2 小时前
老司机带你十分钟入门Python!
开发语言·python
htzyl2062 小时前
前端阶梯——第八章、CSS入门与选择器
前端·css
用户117953654782 小时前
TRAE vs Claude Code 性能对比:从代码生成、多文件重构到底层吞吐,谁更适合你的日常开发?
javascript
猪猪拆迁队2 小时前
跨电脑复制共享-WebRTC 打洞踩坑
前端·后端·go
Amos_Web2 小时前
Rspack 源码解析(十八):Tree Shaking 如何用 SideEffects 重写模块连接
前端·rust·前端框架
百度一下吧2 小时前
前端包管理工具和使用手册
前端
zhangzeyuaaa2 小时前
深入 Ruby:return 退出规则完全指南
开发语言·ruby