javascript - 防止使用箭头键滚动页面,但仍允许光标在文本字段内移动?

标签 javascript scroll horizontal-scrolling

是否有可能使用 JavaScript 来防止箭头键滚动页面(在本例中为水平滚动),但仍然允许箭头键在文本字段中移动光标?

例如 - 我有一个超宽的文本输入 <div> , 当我使用箭头键将光标移动到文本末尾时,它会水平滚动页面。

我知道我可以使用 event.preventDefault();以防止默认行为,但这也会阻止光标移动。我也试过 e.stopPropagation(); ,这似乎也无济于事。

是否可以这样做,或者我必须使用 e.preventDefault();然后也用 JavaScript 手动移动光标位置?我希望有一个更简单的解决方案。 :)

这是一个演示我的问题的 JSFiddle: http://jsfiddle.net/h6ug57u0/

编辑:

我应该注意,我只是在输入中有焦点时才尝试实现此行为。否则,我不想妨碍浏览器的默认行为 - 我知道许多用户使用箭头键进行滚动。

最佳答案

也许你需要检查输入插入符的位置以分析你是否使用了e.preventDefault()

举个例子:

http://jsbin.com/cunidinuvo/edit?html,js,output

关于javascript - 防止使用箭头键滚动页面,但仍允许光标在文本字段内移动?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33784851/

相关文章:

javascript - 按键时滚动到元素

emacs - 如何在 GNU Emacs 中关闭过度滚动?

html - 在以下情况下,如何在不使用 table into table 的情况下将水平滚动条添加到 HTML 表格的特定列?

android - RecyclerView 禁用滚动不起作用

javascript - Vee Validate 字段验证未更新

javascript - Google Analytics 如何限制域?

从底部滚动到顶部的Android ListView?

html - 水平滚动不起作用

javascript - 使用 JQuery 在按下按钮或 anchor 时触发多个单击事件

javascript - ionic 动态绑定(bind) maxlength ionic2