微信小程序-粘性组件

avatar
作者
猴君
阅读量:0

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

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

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

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

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

实现原理:

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

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

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

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

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

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

样式:

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

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

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

广告一刻

为您即时展示最新活动产品广告消息,让您随时掌握产品活动新动态!