javascript - 使 DIV 成为页面加载时的默认滚动条

标签 javascript jquery html css scroll

我在 div 中有一个 div 实际上是页面的主要内容(由于客户希望它以视差效果滑入页面的方式). bodyoverflow: hidden,而包含内容的divoverflow-x: hidden; overflow-y: auto;(因此垂直滚动有效)。

不幸的是,如果用户加载页面并立即按下 PGNDN 或滚动鼠标,它会尝试滚动 body 标签。

如果用户点击 div 中内容的任意位置,然后按下 PGNDN 或滚动鼠标,则会滚动正确的内容。

我如何模拟用户在页面加载时点击此 div,这样即使他们没有点击内容,所有滚动事件也会滚动页面内容而不是 body.

我已经尝试将 tabindex=0 添加到 div。我也试过添加一个 ID 并使用 JS 强制聚焦。都没有

document.getElementById('focus').scrollIntoView();

也不

window.location.hash = '#focus';

为我工作。

jQuery 可用。

这是一个例子 JSFiddle

最佳答案

这是一个似乎很有效的尝试。

Updated fiddle (fiddle 在 firefox 中不起作用,但 html 页面可以)

HTML

<div id="content" tabindex="0">

CSS

#content {
  outline: none;   /* remove the focus outline */
}

脚本加载

var cn = document.getElementById('content');
cn.contentEditable=true;                      /* appears only needed in fiddle demo */
cn.focus();
cn.contentEditable=false;                     /* appears only needed in fiddle demo */

更新

在我创建您的演示并将其加载为 html 页面(无 fiddle )之后,您实际上不需要 cn.contentEditable = true/false

关于javascript - 使 DIV 成为页面加载时的默认滚动条,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34999713/

相关文章:

javascript - 调试时如何按 z-index 对页面元素进行排序?

java - 增加 session 一些值(value)

jquery - 无法对齐输入/标签字段旁边的工具提示

javascript - 如何使用来自外部链接的哈希值定位点击事件

javascript - 将 ID 分配给 Viz.js 的 TD 元素以显示在 svg 元素中

javascript - Google 应用程序脚本无法识别基于 Chromium 的 Edge

javascript - Ember.js: Controller 什么时候可以访问模型?

javascript - 如何获取Z-index的数值

jquery - 突出显示菜单父级

jquery - 复杂动态表的 JSON 和 HTML 结构