使用FB.CanvasgetPageInfo()动态设置Colorbox选项

时间:2012-04-27 00:02:24

标签: facebook colorbox

有没有办法在事件(如滚动)发生之后设置或重置颜色框选项?

以下是您通常设置彩盒选项的方法:

        jQuery("a[rel='pop']").colorbox({ transition:"none", top:20px;});

我需要的是FB.canvas.getPageInfo()方法重置'top'选项。因此,用户向下滚动说300px。 getPageInfo可以告诉你。但是,在打开弹出窗口之前,我无法弄清楚如何让getPageinfo()与colorbox对话并更改设置。

FB.Canvas.getPageInfo(callbak);
function callbak(info){
       i want to set the 'top' here, with info.scrollTop
        so that when colorbox pops, its positioned correctly.
}//callback

可能需要发生的事情不是在(文档).ready上进行颜色框设置,我需要将我的rel =“pop”元素挂钩到一个函数 FB的测试(因为我也将在fb之外使用此页面。) 然后设置彩盒, 然后激发彩盒。

/ * xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx * /
我无法弄清楚如何在评论中编码,所以这里几乎是有效的代码:这在下面有效,但仅在第二次点击时,即使这样,它也使用了前一次点击的scrollTop。我的颜色框设置之前的alert()在第一次单击时具有正确的信息。显然,它为下一次点击设置了“正确”的顶部,但是我需要重置顶部以进行*点击。

 jQuery("a[rel='pop']").colorbox({ transition:"none", top:"5px", maxWidth:"85%", maxHeight:"85%",
      onOpen:function(){dothething(); }});  

function dothething(){
        FB.Canvas.getPageInfo(callbak);
        function callbak(info){
            var ist = info.scrollTop;
            // alert('callbak'+ist);
            jQuery("a[rel='pop']").colorbox({  top:ist+"px"});
        }//callback
    }//dothething

2 个答案:

答案 0 :(得分:2)

尝试:

jQuery("a[rel='pop']").click(function(e) {
  e.preventDefault();
  link = jQuery(this).attr('href');
  FB.Canvas.getPageInfo(function(info) {
    ist = info.scrollTop;
    jQuery.colorbox({href:link, transition:"none", top:ist+"px;", maxWidth:"85%",maxHeight:"85%"});
  });
});

答案 1 :(得分:0)

您可以随时重新应用设置:

jQuery("a[rel='pop']").colorbox({ transition:"none", top:20px;});
jQuery("a[rel='pop']").colorbox({ top:0px;}); // update the top property