javascript - 防止窗口在 textarea 中的退格键上滚动

标签 javascript html css scroll textarea

我有一个超出浏览器窗口大小的简单文本区域,如下所示。当用户添加一些文本时,窗口总是滚动到光标的位置。因此,如果光标跳出窗口,窗口将滚动到底部。那么我怎样才能让它完全不滚动(光标应该离开可见窗口)?

a busy cat

<!DOCTYPE html>
<html>
<head>
    <meta http-equiv="content-type" content="text/html;charset=utf-8" />
    <style>
        textarea{
            margin-top: 500px;
            padding: 0;
            position: absolute;
        }
    </style>
    <script type="text/javascript">
        function keypressed(el,event) {
            if(event.keyCode == 8){
                event.preventDefault();
            } else {
                el.value = el.value + String.fromCharCode(event.keyCode);
            }
            return false;
        }
    </script>
</head>
<body class=noscroll">
    <textarea onkeypress="keypressed(this,event);return false;" rows="5"></textarea>
</body>
</html>

到目前为止,我对文本区域使用了固定定位,并且永远不会出现滚动。由于 iOS 无法以正确的方式显示固定定位,因此我尝试使用绝对定位,如上所示。我添加了一些 onkeypressed 代码以防止在任何输入上滚动,这有效但不适用于 BACKSPACE (keycode == 8)。一旦光标离开窗口并按下退格键,窗口将再次滚动到光标的位置。

有没有更简单的方法可以达到目标,还是我错过了什么?

感谢任何提示。

最佳答案

查看 javascript 控制台后 - 您的代码中有错误。

你想在这里完成什么? onkeydown="onkeydown(this,event);"

未捕获的 RangeError:超出最大调用堆栈大小

关于javascript - 防止窗口在 textarea 中的退格键上滚动,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22101196/

相关文章:

javascript - 无法选择和无法复制的 HTML 文本

html - HTML 下载属性是否可以在不使用 javascript 的情况下下载多个文件?

html - 所有版本的所有浏览器都可以识别这些样式吗?

html - 按钮堆叠在一起?

javascript - 使用 javascript 选择文本并显示 Android 的复制窗口

javascript - 有没有更好的方法来编写不匹配前导和尾随空格以及字符限制的正则表达式?

javascript - 排序表时如何在span元素上触发

css - 您可以在不使用相对路径的情况下从 css 引用图像吗?

css - 使跨度不包裹在固定宽度的其他div中

javascript - 组件内的组件 - VueJS