2012-05-09 4 views
2

사용자가 아래쪽에 도달했을 때 HTML 페이지에 새 컨텐츠를로드하는 것이 매우 일반적이므로 (FB, G +, Twitter),이를 Dojo를 사용하는 XPages에서도 구현하고 싶습니다. SO (그리고 가까이) 나는 JQuery와 주변의 질문을 찾을 수에 대한보고 및/또는 단지 몇 가지 이름을 herehereherehereherehereherehereherehere 일반.Dojo를 사용하여 맨 아래로 스크롤 할 때 새 컨텐츠로드?

그러나 Dojo에서 어떻게 그럴 수 있습니까?

+0

'단지 몇 가지만 말하면됩니다. '그것은 나에게'약간 '이라고 보이지 않습니다! –

답변

2

불행하게도, 난 니클라스 '대답에 대해 언급 할 수 없지만, 그의 대답은 옳은. 내가 바꿀 한 가지는 특정 기능을 호출하는 대신 맨 아래로 스크롤 한 경우 Dojo 이벤트를 발행하는 것입니다.

var scrollingDetector = (function() { 
    var max = calculateScrollHeight(); 

    return function(){ 
     if (max < window.pageYOffset) { 
      max = calculateScrollHeight(); 
      dojo.publish('/newsApp/onScrollBottom'); 
     } 
    } 
    function calculateScrollHeight(){ 
     return (document.documentElement.scrollHeight - document.documentElement.clientHeight) - 80; 
    } 
})(); 

setInterval(scrollingDetector, 500);  

는 (나는 또한 우리는 우리가 페이지의 바닥을 쳤을 때 높이를 계산하기 위해 필요로하는 성능의 이익 약간 리팩토링의 자유를했다).

이렇게하면이 스 니펫을 편집하거나 onMoreButtonClick() 함수를 재정의 할 필요없이 코드의 다른 위치에서이 이벤트에 연결할 수 있습니다.

+0

Thx. 팁을 고맙게 여기다. – stwissel

4

Dojo가 어떻게 작동하는지 모르지만 일반 JavaScript DOM API로 수행 할 수 있습니다.

모바일 컨트롤에서이 작업을 수행했습니다. 여기 http://www.openntf.org/Projects/pmt.nsf/downloadcounter?openagent&project=XPages%20Mobile%20Controls&release=4.5.0&unid=2D4F47CB07AAEE4086257887004ED6C5&attachment=MobileControls450.zip

에서 MobileControlsLite.nsf (mView.xsp 및 mobileControls.js을) 체크 아웃 내 응용 프로그램에서 일부 조각은 다음과 같습니다

function scrollingDetector() { 
    ... 

    var pos = window.pageYOffset; 
    var max = document.documentElement.scrollHeight - document.documentElement.clientHeight; 

    if (max - 80 < pos) { 
     onMoreButtonClick(...); 
    } 
} 

setInterval(scrollingDetector, 500);  
+0

Thx. 이제 내 목록에있는 작업 : "자동보기 컨트롤 확장" – stwissel

관련 문제