ライトボックスとしてFeatherlightを使用しています。私が持っている1つの問題は、それが開かれたことです、背景はスクロール可能なままです。ほとんどのライトボックスが必要とする修正は、ボディにクラスを追加することです。overflow:hidden;
がその上にあります。ライトボックスの開いた状態での背景スクロールの防止
ライトボックスを開いたときにどうすればいいですか?閉じるときにクラスを削除しますか?
ライトボックスとしてFeatherlightを使用しています。私が持っている1つの問題は、それが開かれたことです、背景はスクロール可能なままです。ほとんどのライトボックスが必要とする修正は、ボディにクラスを追加することです。overflow:hidden;
がその上にあります。ライトボックスの開いた状態での背景スクロールの防止
ライトボックスを開いたときにどうすればいいですか?閉じるときにクラスを削除しますか?
あなたが好きbeforeOpen
とafterClose
オプションを使用して、プラグインコールのオプションを使用することができます:あなたがステップの下に試すことができ
$.featherlight({
beforeOpen: function() {
document.body.style.overflow = 'hidden';
},
afterEnd: function() {
document.body.style.overflow = '';
}
});
これはスクロールバーも非表示にします再ペイントを引き起こす可能性があります –
:
: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
},
これはスクロールバーも隠し、再描画を引き起こす可能性があります –
https://github.com/noelboss/featherlight/#configuration - ドキュメントのこの部分は、あなたがこれを達成するために結合することができる上、すべてのコールバックを明らかに... –
のhttp://scrolloverflow.com/questions/4770025/how-to-disable-scrolling-temporarilyオーバーフローをしたくありません:スクロールバーを隠しているため、ペイントが遅くなります(遅い) –