2012-04-27 12 views
1

スクロールのようなイベントが発生した後、後でカラーボックスオプションを設定またはリセットする方法はありますか?ここFB.CanvasgetPageInfo()を使用してカラーボックスオプションを動的に設定する

は、あなたが正常に設定する方法カラーボックスのオプションである:私は必要なもの

 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 

多分起こるために必要なものの代わりに(ドキュメント).readyでカラーボックスの設定を行うので、私はFB用 テストという関数に私のrel =「ポップ」の要素をフックする必要がありますされて(Iだろうからfbの外でもこのページを使用してください。) 次にcolorboxを設定し、 はcolorboxを起動します。この作品の下のが、唯一の第二のクリックで、その後も、それは以前からscrollTopスプライトを使用しています:

/* xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx */
私はほとんどのコードを働いているどのようにここでは、コメントでコードに把握カントクリック。私のカラーボックス設定前の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

をdothethingコールバック } //、弟。ちょうどそれを中心にするために、少し上を演奏する必要がありますが、これは完全に動作します:) –

0

あなたは、任意の時点で設定を再適用することができます。

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

右を。しかし、サムネイルをクリックしたときにトップを設定するにはどうしたらいいですか?どちらか私は、カラーボックスのフックまたはコールバック(私は束をしようとした私の主な問題は、私はFBOOFの情報を得ることができないようだ)または私のrel = pop関数を呼ぶ必要があるFB.getInfo(cb)、次にcb()はカラーボックスを設定して開く必要があります。または、おそらくカラーボックスのフックやコールバックやイベントがFB.getinfo()でfuncを呼び出し、その中でトップを設定してからcolorboxにそのことをさせます。私はそれを行う方法を知るにはjq/jsで十分ではありません。あなたのお時間をありがとう、ジャック。 –

+0

よろしくお願いします。その後も作品以下のコードが、唯一の第二のクリックで、そして、それは以前のクリック –

+0

BAH、愚かなコードのフォーマットからscrollTopスプライトを使用しています。さて、問題は、私のカラーボックス設定が最初のクリックで正しい情報を持つ前に警告()です。どうやら、それは次のクリックのためにトップを '正しく'設定していますが、このクリックのためにトップをリセットする必要があります。 @jack –

関連する問題