2010-12-20 5 views
1
를 사용하여 페이지의 하단에 있다면 확인하는 방법

가 jQuery를에 scrollBottom()라고 아무것도 없다, 그래서 $(window).scrollBottom()==0우리가 자바 스크립트/jQuery를

이 질문은 제목 자체에서 분명 희망 할 수 없습니다. 어떤 도움이라도 대단히 감사하겠습니다. 저는 주로 IE7 +, FF3.5 + (Chrome 등은 보너스입니다)에 관심이 있습니다.

고마워요!

function isScrolledIntoView(elem) 
{ 
    var docViewTop = $(window).scrollTop(); 
    var docViewBottom = docViewTop + $(window).height(); 

    var elemTop = $(elem).offset().top; 
    var elemBottom = elemTop + $(elem).height(); 

    return ((elemBottom >= docViewTop) && (elemTop <= docViewBottom)); 
} 

내가 (페이스 북에서 같은) 무한 스크롤 효과를 구현 함께 : 요소 (페이지 하단에서, 예를 들어 요소)의 표시 여부를

+0

이 링크를 읽으십시오. http://ettoz.wordpress.com/2009/04/16/jquery-fixed-bar/ –

+0

문제는 해결되지 않지만 문제는 도움이됩니다. –

+0

어떻게하면 내 문제가 해결됩니까? 바닥에 고정 막대를 추가한다는 의미입니까? 아니면 뭔가요? – ragebiswas

답변

2

당신은 확인이 기능을 사용할 수 있습니다.

각 시간을 확인할 수 있으며, 사용자가 창을 스크롤된다

function checkAndLoad(){ 
    if(isScrolledIntoView($('#footer'))){ 
     triggerSomething(); // 
    } 
} 
$(document).ready(function(){ 
    checkAndLoad(); 
    $(window).scroll(function(){ 
     checkAndLoad(); 
    }); 
}); 
+0

Stoefln, 저는 기본적으로 제가 페이지의 맨 아래에 있는지보고 싶습니다. 내 질문은 http://stackoverflow.com/questions/3057892/checking-is-near-at-the-bottom-of-the-page와 정확히 동일하다 - 주어진 해결책이 IE8에서 작동하지 않는다는 점만 제외하면 . – ragebiswas

2

< 아이러니 >를 사용하여 자바 스크립트. </아이러니티브 >

브라우저 지원은 혼합 백입니다. IE가 아닌 window.pageYOffset을 사용할 수 있으며 브라우저 버전 및 호환성 모드에 따라 document.body.scrollTop 또는 document.documentElement.scrollTop 중 하나를 사용해야합니다.

결과에 따라 다양한 수준의 수학적 조작을해야 할 수도 있습니다. 직장에서 테스트 할 여러 브라우저에 액세스 할 수 없으며 이러한 작동 방식에 대한 세부 정보를 기억할 수 없습니다.

+0

IE에서 'document.body'와 'document.documentElement'의 차이점에 대해 저에게 교육 해주십시오. – ragebiswas

2

확인이

http://jsfiddle.net/sandeepan_nits/3Ys35/2/

를 작동하는 경우가 나는 e.pageY$(document).height() 비교하지만, 바이올린 예는 모든 브라우저 정확하게 작동하지 않고 오프셋 문제가있다. 1 오프셋을 설정하면 ff에서 정상적으로 작동합니다.

아무것도 당신이 브라우저에 따라 다른 오프셋 (IES 다른 사람들이 아마 별도의 별도 필요합니다) 설정하거나 다른 그 당 확인하는 경우 범위 확인 (if((e.pageY < ($(document).height() + upperLimit)) && (e.pageY > ($(document).height() + lowerLimit))))와 동등한 조건 (if(e.pageY == ($(document).height() - offset))를) 대체 할 수 완벽하게 작동하지 않는 경우

당신의 요구 사항.

+0

감사합니다 Sandeepan,하지만 IE8에서 작동합니까? 나는 "도달 한 바닥"이 결코 나타나지 않는다는 것을 의미합니다. 불행히도 바닥부터 정확한 픽셀이 필요합니다. – ragebiswas

+1

@Raj - http://jsfiddle.net/sandeepan_nits/3Ys35/7/ offset = 16은 IE 6에서 작동합니다. 나는 이것이 당신이이 방법으로 접근 할 수있는 가장 가까운 것 같아요. 일단 필요한 오프셋, 브라우저 감지, 또는 더 나은 jquery의 기능 감지와 함께 확신 조건을 넣어. –

+0

고마워,하지만 나는 다양한 브라우저와 다양한 오프셋이 깨끗한 해결책이라고 생각하지 않는다. ( – ragebiswas

관련 문제