启用div以通过键盘滚动而不单击

时间:2012-09-13 16:34:51

标签: scroll

我有div元素,我在其中加载文本,通常是长文本,所以div有滚动条。我可以用鼠标在这个div中滚动,当光标在它上面时,我不能向上和向下滚动页面,除非我先在div里面点击。那么有没有办法避免这种点击,在加载文本时从代码中执行此操作?

2 个答案:

答案 0 :(得分:1)

正如你所描述的那样。我将一个输入附加到内容div,然后focus()它,而不是尝试聚焦div。因此,在按下加载文本后,您可以按pg up / dn滚动div。

HERE IT IS

 $("div").append('<input type="text" id="focusDiv">');
    /*
 Here I need to have some code which gives "focus to the div, so if I press the load text and then immediately PageDown key, sthedvis scrolls down.

 $("button").on("click", function (e) {
    e.preventDefault();
    $("div").html("Very long text...");
    $("div").append('<input type="text" id="focusDiv">');
    $('#focusDiv').focus();
});

答案 1 :(得分:1)

这里的答案对我有用:

Set keyboard focus to a <div>

基本上向div添加tabindex

<div id="mydiv" tabindex="-1">

然后使用以下方式以编程方式设置焦点:    的document.getElementById( “mydiv”)聚焦();

从原帖:

  

tabindex值可以允许一些有趣的行为。

     
      
  • 如果给定值为“-1”,则元素无法选项卡,但焦点可以   以编程方式给予元素(使用element.focus())。
  •   
  • 如果给定值为0,则可以通过键盘对焦元素   落入文件的标签流程。
  •   
  • 大于0的值   创建一个优先级,1是最重要的。
  •