1

編集:

おそらく私はこれに間違って近づいています-誰かがマウスホイールでページがスクロールするのを止める方法を知っていますか?これを無効にすることもできますか?

-

マウスホイールをスクロールするとアニメーション化する小さなdivで満たされたdivコンテナがあります。これはoverflow:hiddenのあるdivではなく、スクロール領域もありません。これは単純なjqueryアニメーションです(アニメーションは正常に機能します)。

残念ながら、最善を尽くしたにもかかわらず、マウスがコンテナdiv内にある間は、ページ全体のスクロールを停止できません。

Brandon AaronのjQuery用マウスホイールプラグインを使用しています(これは私の問題を解決するはずですが、残念ながらそうではありません)。

これが私のJavaScriptです:

$('#containerDiv').mousewheel(function(event,delta,deltaX,deltaY){
    /* all of this is supposed to stop the page from scrolling...  but it doesnt*/
    event.bubbles=false;
    event.cancelBubble=true;
    if(event.preventDefault) event.preventDefault();
    if(event.stopPropagation) event.stopPropagation();
    if(event.stopImmediatePropagation) event.stopImmediatePropagation();
    $(document).blur();
    $(this).focus();

    /*this function just animates the divs inside the container divs*/
    animateDivs(delta);
});

私はすでにこれらの質問を経験しました:

親要素のスクロールを防ぎますか?

マウスホイールの継続的な効果を停止します

jqueryでWebページのスクロールを停止します

そしてそれらのどれも役に立たないようです。

誰かがこの問題に対してより良い解決策を提供できますか?

4

1 に答える 1

2

Guilherme Torres Castroが答えたように、 galambalazsのソリューションを使用できます。ただし、イベントはキャンセルされません。スクロールイベントをキャンセルする場合は、追加する必要があります。私のフィドルソリューションは、 ntownsendの投稿によって吸い込まれます。scroll

この解決策の問題は、スクロールバーを「ブリック」(非表示/表示)することです。そこで、window.onScrollイベントの実際のスクロール位置にスクロールを追加すると、最終的な解決策はここにあります

スクロールしようとすると最終的な解決策に問題がありますが、イベントbeforeScrollが存在しませんhttps://stackoverflow.com/a/3352244/1102223

于 2012-07-13T11:17:35.107 に答える