1

基本的に、ページ内の特定の div のオーバーフローは、垂直方向にスクロールするように設定されています。ページが読み込まれた直後にユーザーがスクロールできるようにしたい。スクロールするには、この時点で最初にその div をクリックする必要があり、それからスクロールできます。

これをすぐに実現するにはどうすればよいですか?document.location.hash メソッドは、何らかの理由でページ内で他の問題を引き起こしているようですので、お控えいただきますようお願いいたします。

ページを見ると、スクロール可能な div は #mainView です。

サンプルページ

4

1 に答える 1

0

まあ、あなたは使うことができます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);

デモンストレーション(ソース)

于 2012-09-16T04:39:42.633 に答える