微信小程序-粘性组件

再次完善:将区域设置为粘性时,会脱离原有文档,使得出现下方页面突然遮盖一部分,不平滑

解决:给出一个新的空白区域,宽高与粘性区域一致,wx:if 控制其显示

/****************/

后续补充:在真机上测试后发现过渡不是很平滑,甚至会出现显示错误,我想原因可能是出现在滚动监听距离的延时上,可以考虑其他方法

/****************/

实现原理:

粘性组件的本质是 position:fixed; top:100px

监听滚动条,当滚到到对应位置时修改样式

javascript 复制代码
if(event.scrollTop >= 500){
      // 粘性组件启动
      this.setData({
        isSticky: true
      })
    }else {
      this.setData({
        isSticky: false
      })
    }

布局:以一个view包裹需要粘住的内容

html 复制代码
<view class="{{isSticky ? 'fixed-css' : ''}}" style="width: 100%; top: {{isSticky ? navBarHeight : ''}}px;"></view>

由于navigation是自定义的,且导航栏高度是动态计算的,所以top写在内联样式中

样式:

css 复制代码
.fixed-css {
  position: fixed;
  background-color: rgb(242, 245, 250);
}

给一个背景色,实现遮挡效果

不足之处:监听滚动位置是固定值

相关推荐
WangHappy13 小时前
不写 Canvas 也能搞定!小程序图片导出的 WebView 通信方案
前端·微信小程序
小时前端19 小时前
微信小程序选不了本地文件?用 web-view + H5 一招搞定
前端·微信小程序·uni-app
icebreaker2 天前
Weapp-vite:原生模式之外,多一种 Vue SFC 选择
前端·vue.js·微信小程序
icebreaker2 天前
重走 Vue 长征路 Weapp-vite:编译链路与 Wevu 运行时原理拆解
前端·vue.js·微信小程序
大米饭消灭者4 天前
Taro是怎么实现一码多端的【底层原理】
微信小程序·taro
FliPPeDround6 天前
Vitest Environment UniApp:让 uni-app E2E 测试变得前所未有的简单
微信小程序·e2e·前端工程化
FliPPeDround6 天前
微信小程序自动化的 AI 新时代:wechat-devtools-mcp 智能方案
微信小程序·ai编程·mcp
吴声子夜歌6 天前
小程序——布局示例
小程序
码云数智-大飞6 天前
如何创建自己的小程序,码云数智与有赞平台对比
微信小程序
luffy54596 天前
微信小程序页面使用类似filter函数的wxs语法
微信小程序·小程序