在页面onload中选择一个div

时间:2012-09-16 03:59:13

标签: javascript google-closure-library

基本上,页面中某个div的溢出设置为垂直滚动。我希望用户能够在页面加载后立即滚动。为了滚动,此时你必须首先点击该div然后你可以滚动。

我怎样才能立即实现这一目标?我恳请你不要使用document.location.hash方法,因为这似乎在某些原因导致页面内的其他一些问题。

如果查看页面,可滚动的div是#mainView。

Example page

1 个答案:

答案 0 :(得分:0)

好吧,你可以使用window.scroll()。它甚至似乎得到了相当好的支持(IE9,Chrome,Firefox)。 IE8 / 7我不太确定,因为它无法识别height: 100%元素上的html, body

例如,在这里,我将动态创建20个元素,并将window.scroll设置为div的总高度,而document.body的高度(应该是)与{{1}的高度相同“身高”。

尝试一下:

(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);

​DemonstrationSource