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

时间:2016-01-25 18:30:31

标签: javascript jquery html css scroll

我在RewriteEngine on RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteCond $1 ^c_ RewriteRule ^([^/]+)$ product-categories.php?category=$1 [L,QSA] RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteCond $1 ^c_ RewriteRule ^([^/]+)/([^/]+)$ product-categories?category=$1&product=$2 [L,QSA] 中有一个div,它实际上是页面的主要内容(由于客户希望它以具有视差效果的方式滑入页面)。 divbody,内容overflow: hiddendiv(因此垂直滚动有效)。

不幸的是,如果用户加载页面并立即按下PGNDN或滚动鼠标,它会尝试滚动overflow-x: hidden; overflow-y: auto;标记。

如果用户点击body内容中的任意位置,然后按PGNDN或滚动鼠标,则滚动右侧内容。

如何模仿用户在页面加载时点击此div,以便即使他们不点击内容,所有滚动事件也会滚动页面内容,而不是div

我已尝试将body添加到tabindex=0。我还尝试使用JS添加ID并强制关注焦点。既不

div

,也不

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

为我工作。

jQuery可用。

以下是JSFiddle

的示例

1 个答案:

答案 0 :(得分:1)

这是一种似乎运作良好的尝试。

Updated fiddle(小提琴并不适用于Firefox,但html页面确实如此)

HTML

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

CSS

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

脚本onload

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页面(没有小提琴)之后,您实际上并不需要cn.contentEditable = true/false