1

fancyboxが開いているときに、スクロールバーの親ウィンドウへのアクセスを無効にしたいのですが。私は以下を使用してshadowboxで同様のことを達成しました:

function SBopen() {
            document.body.style.overflow = "hidden";  //Hide navigation overflow when SB open
        }
        function SBclose() {
            document.body.style.overflow = "auto";  //Show navigation overflow when SB open
        }
        Shadowbox.init({
            handleOversize: "none",
            modal: false,  //false lets user click outside SB to close window
            onOpen: SBopen,
            onClose: SBclose
        });

ただし、fancyboxでこれを実現する方法がわかりません。fancyboxの現在のinitスクリプトは次のようになります。

  $(document).ready(function() {
    $(".fancybox-thumb").fancybox({
        padding : 2,
        modal : false,
        prevEffect  : 'fade',
        nextEffect  : 'fade',
        nextSpeed   : 'slow',
        prevSpeed   : 'slow',
        openSpeed   : 'slow',
        closeSpeed  : 'slow',
        helpers : {
            title   : {
                type: 'outside'
            },
            overlay : {
                opacity : 0.8,
                css : {
                    'background-color' : '#000'
                }
            },
            thumbs  : {
                width   : 50,
                height  : 50
            }
        }
    });
});

これを達成する方法はありますか?

前もって感謝します!

4

1 に答える 1

14

次のオプションをスクリプトに追加します。

  beforeShow: function(){
   $("body").css({"overflow":"hidden"});
  },
  afterClose: function(){
   $("body").css({"overflow":"visible"});
  }
于 2012-06-14T00:31:48.567 に答える