6

グラフを描くためにprotovisライブラリ(http://mbostock.github.com/protovis/)を使用しています。
誰かが見たいと思った場合に備えて、使用しているコードをアップロードしました:http:
//jsfiddle.net/zobel/brEAD/

これが私の問題です。Firefoxでマウスホイールを使用してズームインまたはズームアウトすると、一部のマウスホイールイベントがアプリケーションではなくFirefox自体によってキャプチャされます。その結果、ズームとページスクロールが混在することになります。スクロールバーが表示されるまでFirefoxウィンドウを縮小することで、これをテストできます。
この問題はOperaでは発生しません。なぜそれが起こり、どうすればそれを解決できますか?
よろしくお願いします。

4

1 に答える 1

3

JavaScriptライブラリのバグ(または単純な省略)である可能性があります。図書館preventDefault()DOMMouseScrollイベントに参加する必要があります。

イベントバブリングのおかげで、グラフの親ノードである任意のDOMオブジェクトでこれを自分で行うことができます。簡単な例を次に示します。

document.body.addEventListener('DOMMouseScroll', function(e){
    e.preventDefault();
}, false);

これは、をサポートしていないため、古いバージョンのIEでは機能しませんaddEventListenerが、要点はわかります。別の汎用JavaScriptライブラリ(jQueryなど)を使用し、それを使用してイベントハンドラーを設定することをお勧めします。

于 2011-07-06T21:09:26.553 に答える