18

html 要素と body 要素に overflow-x: hidden を設定すると、jquery スクロール イベントが発生しないという問題があります。

CSS:

html, body {
  overflow-x: hidden;
}

JS:

$(function(){
  $(window).on("scroll", function(e){
    console.log("scrolling");    
  });
});

http://jsfiddle.net/r7Fqq/6/

自分で試してみてください。overflow-x: hidden をコメントアウトして、コンソールを開いてください。HTML ボックスを上下にスクロールすると、「スクロール」がログに記録されます。コメントを戻すと、スクロール イベントはサイレントになります。

なぜこれが起こっているのか誰にも分かりますか?オーバーフローを非表示に設定するとスクロールが無効になることは承知していますが、設定している軸に対してのみスクロールを行う必要があります(この場合は x のみ)。助けてくれてありがとう。

4

5 に答える 5

26

同じ問題がありました。解決策は、overflow-x: hidden を html 要素から削除し、body 要素のみに残すことです。これは機能するはずです。

于 2015-12-09T23:02:12.910 に答える
2
$(function() {
    $(window).bind('mousewheel', function(event, delta) {
        console.log("mousewheel");
        return false;
    });
});
于 2013-10-26T14:30:29.567 に答える
0

min-height: 100%body タグに追加するだけです。すべてが軌道に戻るでしょう。

于 2020-03-02T11:44:42.177 に答える