2012-04-27 88 views
1

有没有办法在事件发生之后(如滚动)发生后再设置或重置颜色框选项?使用FB.CanvasgetPageInfo()动态设置Colorbox选项

这里是如何你通常颜色框设置选项:

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

我需要的是对FB.canvas.getPageInfo()方法来重置“顶”选项。所以,用户向下滚动说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 

也许需要采取什么措施是不是在做颜色框设置(文件)。就绪,我需要挂接我的rel =“流行”元素的功能 试验FB(因为我会也可以在fb之外使用这个页面。) 然后设置colorbox,然后点击colorbox, 。

/* xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx */
我无法弄清楚如何在注释中的代码,所以这里几乎是工作代码:从以前这下面的作品,但只有在第二次点击,即使如此,它使用浏览器对scrollTop单击。我的colorbox设置之前的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

尝试:

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%"}); 
    }); 
}); 
+0

就是这样,兄弟。只需要做一些与顶部玩,让它居中,但这完美的作品:) – 2012-05-01 01:18:55

0

您可以在任何时候重新申请设置:

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

权。但是,当我点击我的缩略图时,如何设置顶部*?要么我需要使用colorbox钩子或回调(我已经尝试了这一堆,我的主要问题似乎是,我不能从FB函数获取信息)或者我需要钩我的rel = pop到一个函数调用FB.getInfo(cb)然后cb()需要设置colorbox并打开它,我想。或者,也许colorbox挂钩或回调或事件会调用FB.getinfo()里面的函数,它会设置顶部,然后让colorbox做它的事情。我不能用jq/js知道如何做到这一点。谢谢你的时间,杰克。 – 2012-04-28 17:56:29

+0

好的,越来越近。下面的代码工作,但只在第二次点击,即使如此,它使用前面的点击 – 2012-04-29 17:15:27

+0

bah,愚蠢的代码格式的scrollTop。那么,事情是,我的colorbox设置之前的alert()在第一次点击时有正确的信息。显然,它为下一次点击设置了“正确”的顶部,但我需要将顶部重置为*此点击。 @jack – 2012-04-29 17:29:38