实现原理:
粘性组件的本质是 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);
}
给一个背景色,实现遮挡效果
不足之处:监听滚动位置是固定值