2015-07-06 80 views
-1

所以我有這個應用程序在Facebook上,並從FB的文檔,我發現,爲了觸發點擊滾動功能,我首先需要通過將此代碼加載FB SDK:滾動Facebook的帆布

<script> 
    window.fbAsyncInit = function() { 
    FB.init({ 
     appId  : 'i put my app id here', 
     xfbml  : true, 
     version : 'v2.3' 
    }); 
    }; 

    (function(d, s, id){ 
    var js, fjs = d.getElementsByTagName(s)[0]; 
    if (d.getElementById(id)) {return;} 
    js = d.createElement(s); js.id = id; 
    js.src = "//connect.facebook.net/en_US/sdk.js"; 
    fjs.parentNode.insertBefore(js, fjs); 
    }(document, 'script', 'facebook-jssdk')); 
</script> 

,然後我用這個id#button1這個img,它的行爲像使用jQuery click()方法的按鈕。我想有滾動到該元素#Button1的畫布,所以我就把這行代碼爲點擊()方法,這樣

$("#button1").click(function(){ 
    FB.Canvas.scrollTo(0, offset); 
} 

什麼也沒發生。所以,我搜索了一圈,發現這個話題 How do you animate FB.Canvas.scrollTo?

,所以我說的功能

function scrollTo(y){ 
FB.Canvas.getPageInfo(function(pageInfo){ 
         $({y: pageInfo.scrollTop}).animate(
          {y: y}, 
          {duration: 1000, step: function(offset){ 
           FB.Canvas.scrollTo(0, offset); 
          } 
         }); 
       }); 
      }  

,並用它作爲

$("#button1").click(function(){ 
     scrollTo("#button1"); 
    } 

沒有任何反應依然。發生了什麼 ?

回答

0

scrollTo函數的第二個參數是scoll to的y值。

在第一個代碼中,您沒有定義「偏移」變量。您應該看到有關您的瀏覽器控制檯的錯誤。

在第二個代碼(帶動畫的自定義scrollTo函數)中,嘗試使用字符串(#button1),但它應該是y值(數字)。

試試這個測試,它應滾動100個像素:

$("#button1").click(function(){ 
    FB.Canvas.scrollTo(0, 100); 
} 
+0

我就像你說的,嘗試最簡單的滾動爲'FB.Canvas.scrollTo(0,1000)做了;'但沒有工作或者。難道我的sdk啓動有問題嗎?我檢查了fb文檔,它說scrollTo必須與FB.Canvas.setSize()和FB.Canvas.setAutoGrow()一起使用。但我認爲在我的應用程序中,我只使用了FB.Canvas.setSize(),那麼這可能是封鎖? [鏈接](https://developers.facebook.com/docs/reference/javascript/FB.Canvas.scrollTo) –

+0

我想添加另一件事是該應用程序是一個Flash遊戲容器的JSP頁面,加載** top.html **和一個** bottom.html **文件。 ** img **按鈕是** bottom.html **文件的一個元素。所以我不確定jsp的子html文件中的元素是否可以使整個頁面滾動,無論這可能是問題 –

+0

請務必檢查瀏覽器控制檯是否有錯誤 – luschn