2010-11-30 8 views
3

前の一番下にあった場合にのみ、私はwindow.scrollToを使用する方法を学習したいと思います。は、ユーザーが既にDOM操作

ここだが望ましい動作です:ユーザーはその後、私はDIVを成長させたいページの一番下までスクロールし、あるいは全くスクロールバーが

  • 表示されていない場合

    1. が決定し、これは
    2. に取り組んでいます
    3. #1がtrueの場合は、ウィンドウの高さを変更したDIVが成長した後に、window.scrollToを使用してページの下にスクロールします。

    アイデア?

  • 答えて

    0
    $(window).scrollTop(document.body.scrollHeight); 
    

    テストケース:漢のアイデアから作業http://jsfiddle.net/nQntc/

    +0

    これは、ユーザーかどうかをチェックしません:

    function scrollbarAtBottom() { var totalHeight, currentScroll, visibleHeight; if (document.documentElement.scrollTop) currentScroll = document.documentElement.scrollTop; else currentScroll = document.body.scrollTop; totalHeight = document.body.offsetHeight; visibleHeight = document.documentElement.clientHeight; if (totalHeight <= currentScroll + visibleHeight) return true; else return false; } 

    次は、DOMを操作することができますし、scrollbarAtBottomによって返された値がtrueをした場合は一番下までスクロールDOMが変更される前*のページの下部にありました。 –

    +0

    私は彼が助けを必要としたのは#3だと思った。 –

    2

    、我々は窓が、このように下にスクロールされているかどうかを検出することができます:

    $('button').click(function(){ 
        var shouldScroll = $(document).scrollTop() + $(window).height() === $(document).height(); 
        $('<div>added content</div>').appendTo('body'); 
        if(shouldScroll) { 
         $(window).scrollTop(document.body.scrollHeight); 
        } 
    }); 
    

    更新jsFiddleここ:http://jsfiddle.net/JamesKovacs/nQntc/1/

    0

    まず、あなたがページの一番下にいるかどうかをチェックする必要があります。 Determining when scrolled to bottom of a page with Javascriptにギャビーの答えを使用して私が取得:

    var atBottom = scrollbarAtBottom(); 
    
    /* do some stuff */ 
    
    if (atBottom) 
        if (document.documentElement.scrollTop) 
         document.documentElement.scrollTop = document.documentElement.clientHeight; 
        else 
         document.body.scrollTop = document.body.clientHeight;