IOS微信下问题2 页面滚动失效

建议先看这篇文章   (-webkit-overflow-scrolling:touch)

下面 说一下点击其他区域,再在滚动区域滑动,滚动条无法滚动 这个bug

问题复现:

由非滚动区域向滚动区域滑动,再迅速滑动滚动区域,此时滚动会出现bug

在一个可上下滑动的区域,滚动条在最上面再向上滑动或滚动条在最下面再向下滑,松手后立即滑动滚动区域,滚动出现bug

                                          

### uniApp 微信小程序 textarea 滚动失效解决方案 在处理uniApp微信小程序中`textarea`无法正常滚动问题时,可以采取多种策略来确保用户体验良好。对于iOS设备上的特定问题,即输入法弹起后换行输入内容被遮挡的情况,可以通过调整样式和逻辑顺序加以改善[^2]。 针对`textarea`位于`position: fixed`容器内的场景下出现的占位符(`placeholder`)随滚动条移动丢失的现象,官方提供了解决方案——通过设置组件属性`fixed="true"`使`placeholder`保持稳定显示[^3]。 另,在某些情况下,焦点切换过快可能导致页面未能及时响应布局变化从而影响滚动效果。对此,可以在获取到软键盘高度变更通知后再执行页面滚动操作,并适当延时以等待DOM更新完毕[^4]。 #### 实现代码示例: 为了更好地理解如何应用上述建议,下面给出一段简单的实现代码作为参考: ```javascript // 组件挂载完成后初始化监听器 onMounted(() => { // 添加对键盘高度改变事件的关注 plus.key.addEventListener('keyboardheightchange', (e) => { const newHeight = e.height; setTimeout(() => handleScroll(newHeight), 0); // 延迟执行滚动函数以便于DOM完成重绘 }); }); function handleScroll(keyboardHeight){ let scrollEl = document.querySelector('.scroll-container'); // 获取需要滚动的目标元素 if (!scrollEl || keyboardHeight === 0) return; // 动态计算并设置新的底部边距 scrollEl.style.marginBottom = `${keyboardHeight}px`; // 将目标元素滚动至最底端 scrollEl.scrollTop = scrollEl.scrollHeight; } ``` 此段JavaScript代码展示了如何监听软键盘的高度变动,并据此动态调整页面结构以及触发相应的滚动行为,以此解决由于快速聚焦所引起的视觉错乱问题
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值