2016-11-16 25 views
2

ライトボックスとしてFeatherlightを使用しています。私が持っている1つの問題は、それが開かれたことです、背景はスクロール可能なままです。ほとんどのライトボックスが必要とする修正は、ボディにクラスを追加することです。overflow:hidden;がその上にあります。ライトボックスの開いた状態での背景スクロールの防止

ライトボックスを開いたときにどうすればいいですか?閉じるときにクラスを削除しますか?

+0

https://github.com/noelboss/featherlight/#configuration - ドキュメントのこの部分は、あなたがこれを達成するために結合することができる上、すべてのコールバックを明らかに... –

+0

のhttp://scrolloverflow.com/questions/4770025/how-to-disable-scrolling-temporarilyオーバーフローをしたくありません:スクロールバーを隠しているため、ペイントが遅くなります(遅い) –

答えて

2

あなたが好きbeforeOpenafterCloseオプションを使用して、プラグインコールのオプションを使用することができます:あなたがステップの下に試すことができ

$.featherlight({ 
    beforeOpen: function() { 
     document.body.style.overflow = 'hidden'; 
    }, 
    afterEnd: function() { 
     document.body.style.overflow = ''; 
    } 
}); 
+0

これはスクロールバーも非表示にします再ペイントを引き起こす可能性があります –

0

1)は、新しいCSSクラスを追加します。

.bodyNoOverflow{ 
    overflow:hidden; 
} 

2)Featherlightウィジェットの初期設定を変更し、beforeOpenとを変更しますコールバック関数として:

beforeOpen: function(event){ 

    $("body").addClass("bodyNoOverflow"); 
    //existing code if any 
}, 

beforeClose: function(event){ 

    $("body").removeClass("bodyNoOverflow"); 
    //existing code if any 
}, 
+0

これはスクロールバーも隠し、再描画を引き起こす可能性があります –

関連する問題