簡體   English   中英

使用箭頭鍵阻止頁面滾動,但仍允許光標在文本字段中移動?

[英]Prevent page-scrolling with arrow keys, but still allow cursor to move within text field?

是否可以使用JavaScript來阻止箭頭鍵滾動頁面(在此示例中為水平),但仍然允許箭頭鍵在文本字段中移動光標?

例如 - 我在超寬<div>有一個文本輸入,當我使用箭頭鍵將光標移動到文本的末尾時,它將水平滾動頁面。

我知道我可以使用event.preventDefault(); 防止默認行為,但這也會阻止光標移動。 我也試過e.stopPropagation(); ,似乎也沒有做到這一點。

是否可以這樣做,或者我必須使用e.preventDefault(); 然后用JavaScript手動移動光標位置? 我希望有一個更簡單的解決方案。 :)

這是一個JSFiddle演示我的問題: http//jsfiddle.net/h6ug57u0/

編輯:

我應該注意到,當輸入中有焦點時,我只是試圖實現這種行為。 否則,我不想妨礙瀏覽器的默認行為 - 我知道許多用戶使用箭頭鍵滾動。

如果你是e.preventDefault()也許你需要檢查輸入插入符號的位置以進行分析。

舉個例子:

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

為什么不直接在文本框中添加onkeypress事件處理程序,然后檢查箭頭鍵?

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM