2
의 "scrollTop"- 값을 얻는 방법

지금까지 나는 "FB.Canvas.getPageInfo"의 "scrollTop"- 값 경고 할 수 있습니다 :FB.Canvas.getPageInfo

FB.Canvas.getPageInfo(
     function(info) { 
      alert('scrollTop: ' + info.scrollTop); 
     } 
); 

가 지금은 하나에이 값을 사용하고 싶습니다를 내 기능 중 하나지만 어떻게해야할지 모르겠다. 근로하지 않는 다음

function test() { 
    var fbScrollTop = FB.Canvas.getPageInfo(); 
    alert(fbScrollTop); 
} 

가 어떻게이 값에 액세스 할 수 있습니까?

답변

0

는 그냥 SDK에서 사용할 수있는 방법 중

function test() { 
    var fbScrollTop; 
    FB.Canvas.getPageInfo(function(info) { 
     fbScrollTop = info.scrollTop; 
     alert(fbScrollTop); 
    }); 
} 
+0

이것은'undefined'을 알려줍니다. 다른 생각? – chris

+0

수정 됨. 알 수없는 (나에게) 이유는 정보 객체로하는 모든 일이 getPageInfo 함수 내에 있어야합니다. –

+0

고마워요, 완벽하게 작동합니다! 'test()'함수 밖에서 변수'fbScrollTop'에 접근 할 수 있습니까? 'test(); console.log (fbScrollTop)' – chris

0

대부분 비동기 있습니다 결합 -이 제공된 콜백 (응답과 함께)가 호출 될 때까지 응답을 사용할 수 없습니다 것을 의미합니다.

1

아직 유용할지 모르겠습니다. 하지만 이제 내 divs를 내 Facebook 앱에 배치 할 수 있습니다. 다음은 함수 :

jQuery.fn.center = function() { 
    var temp = this; 
    FB.Canvas.getPageInfo(
    function(info) { 
      $(temp).css("position","absolute"); 
      $(temp).css("top", Math.max(0, ((info.clientHeight - $(temp).outerHeight())/2) + info.scrollTop) + "px"); 
      $(temp).css("left", Math.max(0, ((info.clientWidth - $(temp).outerWidth())/2) + info.scrollLeft) + "px"); 
     } 
    ); 

    return this; 
} 

그리고 그렇게 사용

var loading = $("#loading"); 
    loading.center(); 
+0

너. 다 남자. – manafire