4

ポップアップ div (フォト ギャラリー ビューアーなど) がある場合はボディ スクロールを無効にしたいのですが、子要素のスクロールを無効にしたくありません。

私は現在これを使用しています。これにより、すべてのスクロールが無効になります。

$('body').bind('mousewheel DOMMouseScroll', function(e) {
    var scrollTo = null;

    if (e.type == 'mousewheel') {
        scrollTo = (e.originalEvent.wheelDelta * -1);
    }
    else if (e.type == 'DOMMouseScroll') {
        scrollTo = 40 * e.originalEvent.detail;
    }

    if (scrollTo) {
        e.preventDefault();
        $(this).scrollTop(scrollTo + $(this).scrollTop());
    }
});

「popup」という名前の要素クラスがある場合、どうすればそれを受け入れることができるでしょうか? または、さらに良いことに、イベントが body タグ以外に影響を与えないようにするにはどうすればよいでしょうか?

4

2 に答える 2

0

これを子要素に追加してみてください

onmouseover="document.body.style.overflow='hidden';" 
onmouseout="document.body.style.overflow='auto';"

子要素でマウスアウトするまでボディスクロールバーを非表示にしますが、それ以外の場合は目的の効果があります。

于 2013-10-16T16:14:51.543 に答える
0

このページでご覧いただけます

jQueryでページスクロールをプログラムで無効にする方法

その人は同じ動作を望んでいると思います.Yスクロールバーが消えるかもしれないと感じていますが、何かを理解するか、常に表示することができます

于 2012-10-02T18:11:39.543 に答える