ユーザーがいずれかのフラットをクリックすると、ダイアログ ボックスが表示されます。
私がやりたいのは、ビューポートの高さが 550px より大きい場合にスクロールバーをロックすることです。bodyに適用するoverflow:hidden
ようになりましたが、スクロールバーが非表示のときにサイト ジャンプが発生します。スクロールを無効にしたいのですが、スクロールバーを表示したままです。出来ますか?
前もって感謝します!
ユーザーがいずれかのフラットをクリックすると、ダイアログ ボックスが表示されます。
私がやりたいのは、ビューポートの高さが 550px より大きい場合にスクロールバーをロックすることです。bodyに適用するoverflow:hidden
ようになりましたが、スクロールバーが非表示のときにサイト ジャンプが発生します。スクロールを無効にしたいのですが、スクロールバーを表示したままです。出来ますか?
前もって感謝します!
スクロールを検出し、スクロールして前の位置に戻ることで、スクロールバーのロックをシミュレートできます..
function lockScroll() {
var lockX = window.scrollX;
var lockY = window.scrollY;
function lockIt() {
window.scrollTo(lockX,lockY);
return false;
}
window.addEventListener("scroll",lockIt,false)
return {
stop: function(){
window.removeEventListener("scroll",lockIt,false)
}
}
}
使用法:
var locker = lockScroll(); // locks scrolling
完了したら、スクロールを再度有効にすることができます
locker.stop(); // unlocks scrolling