Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/396.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 在Facebook画布中滚动_Javascript_Jquery_Facebook_Facebook Graph Api_Canvas - Fatal编程技术网

Javascript 在Facebook画布中滚动

Javascript 在Facebook画布中滚动,javascript,jquery,facebook,facebook-graph-api,canvas,Javascript,Jquery,Facebook,Facebook Graph Api,Canvas,因此,我在facebook上有这个应用程序,从FB文档中我发现,为了在单击时触发滚动功能,我首先需要通过添加以下代码加载FB SDK: <script> window.fbAsyncInit = function() { FB.init({ appId : 'i put my app id here', xfbml : true, version : 'v2.3' }); }; (functi

因此,我在facebook上有这个应用程序,从FB文档中我发现,为了在单击时触发滚动功能,我首先需要通过添加以下代码加载FB SDK:

<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>
什么也没发生。所以我四处搜索,找到了这个话题

所以我添加了这个函数

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");
    }

什么也没发生。发生了什么事

scrollTo函数的第二个参数是scoll到的y值

在第一个代码中,您没有定义“offset”变量。您应该会看到浏览器控制台中出现的错误

在第二个代码中(自定义scrollTo与动画一起运行),您尝试使用字符串(#button1),但它应该是一个y值(一个数字)

尝试此测试,它应滚动100像素:

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

我只是按照你说的做了,尝试了最简单的滚动,如
FB.Canvas.scrollTo(0,1000)但也不起作用。我启动sdk可能有什么问题吗?我查看了fb文档,它说scrollTo必须与fb.Canvas.setSize()和fb.Canvas.setAutoGrow()一起使用。但我认为在我的应用程序中,我只使用了FB.Canvas.setSize(),所以这可能是拦截器吗?我想补充的另一件事是,该应用程序是一个带有flash游戏容器的JSP页面,加载top.html和bottom.html文件。img按钮是bottom.html文件的一个元素。因此,我不确定jsp子html文件中的元素是否可以使整个页面滚动,这是否是问题所在。我强烈建议不要在页面中使用iframe,这会使一切变得更加复杂。我从两代开发人员那里继承了该结构,因此是否使用iframe不取决于我。我还尝试使用标签链接在页面上导航,但即使这样也不起作用(
$("#button1").click(function(){
   FB.Canvas.scrollTo(0, 100);
}