2012-04-27 84 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