微信position: fixed的坑及解决之道

在安卓微信环境下,使用position: fixed的导航栏在上传图片后出现滚动时的抖动现象。问题并非由图片上传后的reflow引起,而是上传动作本身。解决方案是将body和html的高度设为100%,并设置overflow为auto,来源于张鑫旭的博客。此方法解决了抖动问题,但在ios下未测试。尝试过的无效解决方案包括添加translateZ(0)和使用position: absolute。
摘要由CSDN通过智能技术生成

问题描述

安卓手机上,微信环境下上传完图片后,position: fixed 的导航栏在上下滚动页面的时候出现了抖动的情况,抖动完回到原位。
ios上没测,但搜索问题的过程中发现有人反应IOS微信环境下position:fixed也有抖动的问题。

解决之道

页面结构是:

<div id="#app"></div>
<nav fixed></nav>

对’#app’设置样式:

#app {
  position: absolute;
  left: 0;
  right: 0;
  top: 0;
  bottom: 0;
  overflow: auto
}

这个方法思路来源自张鑫旭的博客fixed在微信下的BUG。应用后安卓、ios均是好的,不会抖动。

思路和踩的坑

思路:
  • 上传图片本身不会引发抖动,是因为图片上传后可能增加了新的一行,reflow导致的。

错误!如果是因为reflow导致的,那么在删除图片而减小一行后也会抖动,但实际并没有。问题还是出在上传图片这个动作上

踩坑(不完美/无效的解决方案):
  1. 给fixed加上translateZ(0)

加上以

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值