1

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

这是您通常设置颜色框选项的方式:

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

我需要的是 FB.canvas.getPageInfo() 方法来重置“顶部”选项。因此,用户向下滚动了 300 像素。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

也许需要发生的不是在 (document).ready 上进行颜色框设置,而是需要将我的 rel="pop" 元素挂钩到一个测试 FB 的函数(因为我将在 fb 之外使用这个页面,太。)然后设置颜色框,然后触发颜色框。

/* xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx*/
我不知道如何在评论中编码,所以这里几乎是工作代码:这下面的工作,但只在第二次点击时,即使那样,它使用的是上一次点击的滚动顶部。我的颜色框设置之前的 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
4

2 回答 2

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%"});
  });
});
于 2012-05-01T01:11:06.967 回答
0

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

jQuery("a[rel='pop']").colorbox({ transition:"none", top:20px;});
jQuery("a[rel='pop']").colorbox({ top:0px;}); // update the top property
于 2012-04-28T09:55:14.087 回答