详解iOS中position:fixed吸底时的滑动出现抖动的解决
⽅案
两种抖动
box sizing为什么抖动还会有两种?
其实是我碰到过两种抖动的场景,第⼀个场景是native的抖动,第⼆个场景是h5的抖动。
native的抖动
前端开发⼈员会在app中打开webview,这个时候iOS中position:fixed吸底时的滑动出现抖动应该是native造成的抖动,整个viewport跟着动,所以可以在⽣成schema的时候将参数bounce_disable(可能不⼀定都有这个参数,就看有没有类似的参数进⾏控制)设置为1禁⽌native的弹性效果,然后加上h5的这个效果,-webkit-overflow-scrolling 属性可以帮我们实现这个效果,它控制元素在移动设备上是否使⽤滚动回弹效果。
h5的抖动
⽅案⼀
//我是吸顶头部
.header{
width:100%;
height:50px;
position:fixed;
top:0px;
}
//我是中间要滑动的部分
.main{
width:100%;
height:auto;
position:absolute;
padding-top:50px;
padding-bottom:50px;
box-sizing:border-box;
overflow-y:scroll;
}
//我是吸底尾部
.footer{
width:100%;
height:50px;
position:fixed;
bottom:0px;
}
解释:滑动部分overflow-y:scroll;所以在上下⽅向超出⼀屏的部分会变成滚动模式并且不溢出,然后这边吸顶和吸底设置的⾼度都是50,所以对应的中间滑动部分分别有padding-top:50px;和padding-bottom:50px;设置box-sizing:border-box;所以padding的增加不会增加.main的⾼度。
⽅案⼆
transform: translateZ(0);
-webkit-transform: translateZ(0);
解释:在使⽤position:fixed的元素上加上该属性。
以上就是本⽂的全部内容,希望对⼤家的学习有所帮助,也希望⼤家多多⽀持。
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论