0

发现自己在一个角落里 - 我正在尝试在 Facebook 页面应用程序上使用颜色框,并且由于 iframe 而遇到问题。

Colorbox 使用,工作正常,但在框架中间加载:

$(document).ready(function () {
    $('a.popup').colorbox();        
});


<a class='popup' href='xxxxxx' title='title'><img src='xxxxxx'/></a>

我可以从 FB api 获取 scrollTop 值并将其与一串 html 一起发送到 Colorbox:

$("a.popup").click(function () {
    FB.Canvas.getPageInfo(function (fbCanvasInfoObject) {
        var fbPosition = fbCanvasInfoObject.scrollTop;
        $.colorbox({html:"content", pxToTop:fbPosition});
    });
})

在 Colorbox 中稍作更改以使用 pxTotop 值,它将模态窗口设置为距视口顶部 150px:

top = settings.pxToTop + 150;

我需要将两者结合起来,并具有第一个示例中的 Colorbox 功能(图像标题显示为标题的标准功能),以及第二个示例中生成的偏移量。

有任何想法吗?

4

1 回答 1

3

总是会发生 - 问一个问题,然后自己找到答案。如果有人有兴趣,解决方案如下:

$(document).ready(function () {
    $("a.popup").live("click", function () {
        var caption = this.title;
        var image = this.href;
        FB.Canvas.getPageInfo(function (fbCanvasInfoObject) {
            var fbPosition = fbCanvasInfoObject.scrollTop;
            $.colorbox({ href:image, title: caption, fbScrollTop: fbPosition });
        });
        return false;
    })
});

修改了彩盒脚本(~ln518):

var top = settings.fbScrollTop + 150;

排序。奇迹般有效。

于 2012-07-05T04:42:10.213 回答