在Facebook上的画布应用程序为中心的对话(Centered dialog on Faceboo

2019-07-29 21:10发布

我怎样才能创建撑中心通过我的Facebook应用程序的画布用户滚动页面的对话?

我读过这个关于这个问题的帖子,但所描述的方法(听无证Facebook的事件),我没有工作。

Answer 1:

它看起来像Facebook不再轮询服务器更新pageInfo作为其库的一部分。 然而,这是相当简单的写一些东西,你自己调查它,适当地移动对话框:

var timeout;
var positionDialog = function(){
    FB.Canvas.getPageInfo(function(pageInfo){
         $("#dialog").animate({top: Math.max(parseInt(pageInfo.scrollTop) - parseInt(pageInfo.offsetTop) + 
            ((parseInt(pageInfo.clientHeight)-$("#dialog").outerHeight())/2), 0)}, 100);
         timeout = setTimeout(positionDialog, 250);
    });
};

var showDialog = function(){
    // show your dialog
    $("#dialog").show();
    positionDialog();
};

var hideDialog = function(){
    $("#dialog").hide();
    clearTimeout(timeout);
};

注:我使用的setTimeout,而不是setInterval的,因为你不知道的Ajax调用需要多长时间,不希望被处理乱序响应。



文章来源: Centered dialog on Facebook canvas app