2015-07-06 44 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