javascript - 页面总是自动聚焦在 textarea 上,然后 scrolltotop 不起作用
问题描述
我有一个带有一些复选框项目的页面,然后是textarea
页面底部的一个元素。这textarea
没有分配自动对焦。
<textarea id="comments" class="form-control" rows="8">@Comments</textarea>
textarea
页面加载并滚动到底部时始终获得焦点。
它必须适用于 Android 和 iPhone webview 容器。
我已经尝试了很多在页面加载后滚动到顶部或从该元素中移除焦点但到目前为止没有运气。
我尝试了以下我在这里找到的不同技巧:
$("html,body").animate({ scrollTop: 0 }, "slow");
$(this).scrollTop(0);
$('textarea').blur();
$('#comments').blur();
document.activeElement.blur();
document.getElementById("origin").focus();
$('html,body').animate({
scrollTop: $("#origin").offset().top
});
$("body").scrollTop(0);
document.body.scrollTop = 0;
document.documentElement.scrollTop = 0;
甚至按钮转到顶部单击不起作用
$("#myBtn").on("click", function () {
console.log('ddd');
$(this).scrollTop(0);
$("html").scrollTop(0);
document.body.scrollTop = 0;
document.documentElement.scrollTop = 0;
});
我还发现这可能是因为溢出:在主容器上滚动可能会阻止scrolltotop
工作。所以这是 _Layout.chtml 页面中我的主要容器详细信息。
#mobile-content-wrapper {
position: relative;
width: 100%;
padding-bottom: 80px;
overflow-y: scroll;
overflow-x: hidden;
我可以在这里使用你的一些经验。
解决方案
实际上我能够破解它。基本上我在页面加载时将 textarea 设为只读。所以它不会得到焦点。然后将其设置为超时后再次启用。这种方式文本框将在用户开始向下滚动时启用。
setTimeout(function () { document.getElementById('comments').readOnly = false }, 500);
推荐阅读
- javascript - 如何更改 requestAnimationFrame() 函数以使用 Promise?
- visual-c++ - 如何从命令行参数中的输入文件中正确提取数字
- docker - Docker 注册表:通过帐户限制对图像子集的访问
- javascript - 在 React 中显示不同的图像 onMouseOver
- bluetooth-lowenergy - 为什么使用 BLE 信标技术而不是已经安装的 Wi-Fi 基础设施?
- ios - 使用 xcode 调试视图层次结构时,将新的 rootViewController 分配给窗口不会从视图层次结构中删除当前
- javascript - 使用单选按钮更改输入文本背景颜色
- java - 如何在 Coldfusion 中使用 org.apache.commons.configuration
- c# - 如何使用按钮将页面“注入”到现有页面中以选择页面
- css - 更改在 React 中多次声明的一个组件的状态 - 更好的实践?