2 回答
TA贡献1900条经验 获得超5个赞
android scrollTop 解决方法是:
document.body.style.overflow = 'hidden';
document.body.scrollTop = 0;
document.body.style.overflow = 'scroll'; // or overflow-y and/or 'auto'
在一些旧版本的 android 浏览器上,如果溢出不是“隐藏的”(这绝对是浏览器错误),设置 scrollTop 将被忽略。
也就是说,我没有在 body 元素上测试。该错误出现在任何溢出的 DOM 元素上,这是我发现解决方法的地方。不过,我已经很多年没有遇到这个错误了,因为旧的 android 浏览器非常罕见,并且在我当前的项目中不受支持。
此外,尝试通过使用 scrollTop 来解决您的问题似乎是错误的。您应该首先尝试解决您的元素接收焦点并在启动时滚动窗口的原因。如果没有看到有问题的正在运行的网站,我无法帮助您。如果您可以创建一个 jsfiddle 或等效项来重现该问题,我很乐意查看它。
TA贡献1884条经验 获得超4个赞
实际上我能够破解它。基本上我在页面加载时将 textarea 设为只读。所以它不会得到焦点。然后将其设置为超时后再次启用。这样文本框将在用户开始向下滚动时启用。
setTimeout(function () { document.getElementById('comments').readOnly = false }, 500);
添加回答
举报