8

ユーザーがいずれかのフラットをクリックすると、ダイアログ ボックスが表示されます。

私がやりたいのは、ビューポートの高さが 550px より大きい場合にスクロールバーをロックすることです。bodyに適用するoverflow:hiddenようになりましたが、スクロールバーが非表示のときにサイト ジャンプが発生します。スクロールを無効にしたいのですが、スクロールバーを表示したままです。出来ますか?

前もって感謝します!

4

1 に答える 1

8

スクロールを検出し、スクロールして前の位置に戻ることで、スクロールバーのロックをシミュレートできます..

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
于 2012-11-29T19:10:11.847 に答える