阅读量: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); }
给一个背景色,实现遮挡效果
不足之处:监听滚动位置是固定值