2012-01-10 148 views
7

這類似於SO: how to move a div with arrow keys,所以也許一個明確告知「不」足以作爲一個答案:箭頭鍵滾動DIV

我可以作出溢出的div反應「默認滾動目標」向上箭頭/ down/page-down/space 與溢出文檔(即向下滾動內容)的方式相同?該頁面本身沒有滾動條(下面的簡單例子)。特別是,這可以完成而不明確跟蹤關鍵事件(既不直接也不由JS庫隱藏)?

<html> 
<body> 
    <div id="contentcontainer" style="height:200px;width:200px;overflow:scroll"> 
    <div id="innercontent" style="height:2000px;">foo</div> 
    </div> 
</body> 
</html> 

編輯:當然以後我上述作品點擊進入格。基本上,我想避免這樣做...

+0

你有沒有想過乾脆[樣式滾動條]的div(http://websitetips.com/articles/css/scrollbars/)和實施某種形式的重點就可以了 – 2012-01-10 15:19:36

+0

肯定的,但你仍然需要關注div元素。爲什麼你不試試,我去了一個網站,只是點擊進入溢出div,並使用密鑰,沒有問題......但「自動對焦」,你將無法完成我認爲... 7 – Luke 2012-01-10 15:21:41

+0

我不關心造型。 「強化某種焦點」可能是我正在尋找的東西......;)這將如何工作? – dcn 2012-01-10 15:22:07

回答

-1

瀏覽器通常有這種行爲的內置,

爲了使用箭頭鍵下您的DIV滾動,內集中你必須有一個元素。

查找http://api.jquery.com/focus/

+3

即使在div中的表單元素上執行'.focus()',谷歌瀏覽器也不會將div識別爲箭頭鍵滾動鍵擊的目標。 – 2012-06-05 13:06:25

9

爲了使html元素要成爲焦點,它必須是可到達的使用Tab鍵。這意味着您可以通過鏈接或輸入呼叫.focus()。此外,body元素始終是可以聚焦的。

你需要讓你的div與Tab鍵可達。您可以通過設置其上的tabindex屬性來完成此操作。如果您實際上不希望人們能夠標籤到該div,您可以將tabindex設置爲-1,這會阻止人們實際選中它,但會將元素設置爲Tab鍵和焦點。

來源:http://help.dottoro.com/ljpkdpxb.php

+1

確保div有一個tabindex屬性,然後調用div.focus(),它工作!謝謝! – Josh 2016-11-11 17:44:01