如题,工作内容的一个需求,记录一下思路和遇到的问题。
需求如下:
(导航条就是选项卡)
核心功能两个: 一是吸顶。 二是左右滑动。
一、吸顶
流畅吸顶方式: 顶部使用fixed,选项卡使用sticky,据说sticky有些手机不兼容。目前是没遇到过。
卡顿吸顶方式:
- 监听滚动条,到达一定位置把选项卡布局变为fixed。
- 事先隐藏一个选项卡,监听滚动条,到达一定位置变更选项卡z-index。
总结:监听滚动条赋值试过的手机都卡。
二、左右滑动
流畅左右滑动: swiper嵌套普通的view,swiper随view内容变化高度。数据使用onReachBottom加载
卡顿左右滑动: swiper嵌套垂直定高scroll-view。数据使用@scrolltolower加载。 问题:
- 存在两个滚动条,导致内外切换滚动条会卡顿。
- 需计算scroll-view何时可滚动。
- ios回弹效果体感很差。
三、可能遇到的问题
需要判断吸顶的scrollTop值
- 页面渲染结束,获取选项卡的top和height。
- 吸顶时的scrollTop=选项卡top值-选项卡height(吸顶时选项卡脱离文档流)-margin(如果有的话)。
如果值错误,请先保证数据变更之后的页面渲染已经结束,特别是子组件。数据变更可能会导致子组件高度不对。
四、其他
注:实现遇到的兼容问题
ios获取子组件高度包含了上下margin,安卓则不包括margin。注意适配。