使用手机edge浏览器时,输入框弹出软键盘后,页面高度未能自动调整以适应可视区域,且页面仍可滚动,影响用户体验。本文分析此问题并提供解决方案。
问题:页面结构简洁,仅含输入框和背景色设置,但软键盘弹出后,页面背景高度不变,出现滚动条。
-
容器化输入框: 使用一个div元素(例如,class为“.frame”)包裹输入框,方便后续样式调整。
-
禁止页面滚动: 在body元素中添加以下CSS样式:
body { overflow: hidden; touch-action: none; }
overflow: hidden; 防止页面内容溢出,阻止滚动;touch-action: none; 阻止触摸事件导致的滚动。
- 页面高度自适应: 监听页面尺寸变化(resize事件),动态调整页面高度:document.body.style.height = visualViewport.height + ‘px’; 这将使页面高度与可视区域高度保持一致。
局限性:即使采用以上方法,在某些情况下,例如拖动可滚动元素(如可滚动输入框),仍可能导致页面滚动。 这需要更深入的探讨和更复杂的方案来彻底解决。
© 版权声明
文章版权归作者所有,未经允许请勿转载。
THE END