基本上,页面中某个div的溢出设置为垂直滚动。我希望用户能够在页面加载后立即滚动。为了滚动,这时候你必须先点击那个div然后才能滚动。
我怎样才能立即做到这一点?我恳请您不要使用 document.location.hash 方法,因为这似乎由于某种原因导致页面内出现其他一些问题。
如果您查看页面,可滚动的 div 是#mainView。
基本上,页面中某个div的溢出设置为垂直滚动。我希望用户能够在页面加载后立即滚动。为了滚动,这时候你必须先点击那个div然后才能滚动。
我怎样才能立即做到这一点?我恳请您不要使用 document.location.hash 方法,因为这似乎由于某种原因导致页面内出现其他一些问题。
如果您查看页面,可滚动的 div 是#mainView。
好吧,你可以使用window.scroll()
. 它甚至似乎得到了很好的支持(IE9、Chrome、Firefox)。IE8/7 我不太确定,因为它不能识别元素height: 100%
。html, body
例如,在这里我将动态创建 20 个元素并将 设置window.scroll
为 的总高度div
,这反过来(应该是)与document.body
“高度”相同的高度。
试试看:
(function load(d) {
var body = d.body,
i = 0,
div,
winheight = h(),
scroll = 0;
(function loop() {
if (i++ < 20) {
scroll = scroll + 20 + 100 + 5 + winheight;
div = document.createElement('div');
div.style.height = winheight - 125 + 'px';
div.className = 'block';
div.innerHTML = 'DIV #' + i;
document.body.appendChild(div);
window.scroll(0, scroll);
setTimeout(loop, 2000);
}
})();
function h() {
return Math.max(
Math.max(body.scrollHeight, d.documentElement.scrollHeight),
Math.max(body.offsetHeight, d.documentElement.offsetHeight),
Math.max(body.clientHeight, d.documentElement.clientHeight)
);
}
})(document);