1

スクロールなどのイベントが発生した後、後でカラーボックスオプションを設定またはリセットする方法はありますか?

通常、カラーボックスオプションを設定する方法は次のとおりです。

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

必要なのは、FB.canvas.getPageInfo()メソッドが「top」オプションをリセットすることです。したがって、ユーザーは300pxと言って下にスクロールしました。getPageInfoはそれを教えてくれます。しかし、ポップアップを開く前に、getPageinfo()がカラーボックスと通信して設定を変更する方法を理解できません。

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でカラーボックス設定を行う代わりに、必要なのはFBをテストする関数にrel = "pop"要素をフックする必要があるかもしれません(fbの外でこのページを使用するため、 )そしてカラーボックスを設定し、カラーボックスを起動します。

/ * xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx * /
コメントでコーディングする方法がわからないので、ここにほぼ機能するコードがあります:これは以下で機能しますが、2回目のクリックでのみ機能し、それでも前のクリックの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
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 に答える