如何创建一个在用户滚动浏览我的 Facebook 画布应用程序时保持居中的对话框?
我已经阅读了有关该主题的这篇文章,但是那里描述的方法(收听未记录的 facebook 事件)对我不起作用。
如何创建一个在用户滚动浏览我的 Facebook 画布应用程序时保持居中的对话框?
我已经阅读了有关该主题的这篇文章,但是那里描述的方法(收听未记录的 facebook 事件)对我不起作用。
看起来 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 调用需要多长时间,并且不想处理乱序响应。