仍是前两天的那个唱歌中间页,上线前发现滚动时候体验很差。html
由于以前没有作吸顶效果,搜索内容而后滚下去,没有找到内容须要再手动划上来。前端
js 无敌大法好。兼容极佳,可是体验上就比较感人了。这里不过多介绍。浏览器
fixed 是基于浏览器的定位,在组件中显的不是很适用。
并且在 iOS 也有兼容性问题。微信
sticky 是新加的 position 的值,能够用于实现粘性定位。
可是显示上会抖动,demo2spa
demo3,组件接收一个 height
参数,用于设置组件高度,默认值是 100vh
,下面放一下伪代码。code
组件盒子{ max-height: 100vh; 防止传进来的高度过高。 } 搜索盒子{ height: 30px;人为的设置好高度 } 结果盒子{ height: calc(100% - 30px);经过 calc 来写死高度 overflow: scroll;这里 scroll 和 auto 都是能够的,不设置的话没法滑动 }
demo4 由于 absolute 是基于第一个非 static 祖先定位,因此咱们可让搜索盒子基于组件盒子定位,下面伪代码。htm
组件盒子{ max-height: 100vh; 防止传进来的高度过高。 position: relative; 让里面的absolute基于本身定位 } 搜索盒子{ height: 30px;人为的设置好高度 position: absolute;设置为相对定位 top:0; width: 100%; 决定定位的话宽度就没有了,防止漏出地下的内容。 } 结果盒子{ height: 100%; padding-top: 30px; 上面加个展位空白格,防止看不到第一条 box-sizing: border-box; 修改盒子模型,height = border+padding+content overflow: scroll;这里 scroll 和 auto 都是能够的,不设置的话没法滑动 }
还有什么实现方案?blog
欢迎你们关注个人公众号。有疑问也能够加个人微信前端交流群。ip