小程序-添加粘性布局

复制代码
// 获取元素位置
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. 写一个单独的定位筛选栏, 页面滚动到一定位置后,展示这个单独的定位栏

相关推荐
漂流瓶jz1 小时前
Webpack如何实现万物皆可import?loader的使用/配置/手写实践
前端·javascript·webpack
ZC跨境爬虫1 小时前
跟着 MDN 学CSS day_41:显式轨道、隐式网格与区域命名放置
前端·javascript·css·ui·交互
石山代码2 小时前
ArrayList / HashMap / ConcurrentHashMap
java·开发语言
程序大视界2 小时前
【Python系列课程】Python正则表达式(下):环视、命名分组与日志实战
开发语言·python·正则表达式
修己xj2 小时前
告别手动存图!这款叫 Fatkun 的浏览器插件,简直是素材收集神器
前端
枫叶v.3 小时前
Agent 分层存储架构设计:从记忆方法到中间件选型
开发语言·python
袋鼠云数栈3 小时前
从前端到基础设施,ACOS 如何打通企业全链路可观测
运维·前端·人工智能·数据治理·数据智能
AskHarries3 小时前
系统提示词、开发者指令和用户输入的优先级
java·前端·数据库
Moment3 小时前
长上下文会最终杀死 Rag 吗?
前端·javascript·后端
qcx234 小时前
【系统学AI】25 论文导读 ①:两篇改变 AI 的开山之作——Attention Is All You Need & ReAct
前端·人工智能·react.js·transformer