2017-10-03 4 views
0

私はクロムのスクロールイベントをdocument.createEventでカスタムイベントを作成しようとしています。スクロールまたはマウスリスナーにバインドされたすべての関数をトリガーしたいと思います(ブラウザー自体がスクロールしているかどうかわかりません)。私はそれらの値を指定するために使用された場合deltaX == 0 && deltaY == 0を持ってonmousewheelリスナーが、イベントオブジェクトによりイベントをキャッチ:JavaScriptの特定のデルタを使用してスクロール(マウスホイール)イベントを発生させるにはどうすればよいですか?

document.documentElement.onmousewheel = function(e) { 
    console.log(e.deltaX, e.deltaY, e.wheelDeltaX, e.wheelDeltaY) // 0, 0, 0, 0 
} 

var e = document.createEvent('WheelEvent'); 
e.initMouseEvent('mousewheel', true, true, window, 120, 0, 0, 0, 0, 0, 0, 0, 0, 
0, null); 
e.wheelDeltaY = 120; 
e.deltaY = 120; 
document.documentElement.dispatchEvent(e); 

私はこのタイプのイベントと、このinitaliztionタイプを使用しなければならないことはよく分かりません。どうすればイベントのデルタ値を指定できますか?

答えて

0

window.addEventListener('wheel', function(e) { 
 
    console.log(e.deltaY) 
 
    if (e.deltaY < 0) { 
 
    console.log('scrolling up'); 
 
    document.getElementById('status').innerHTML = "scroll up"; 
 
    } 
 
    if (e.deltaY > 0) { 
 
    console.log('scrolling down'); 
 
    document.getElementById('status').innerHTML = "scroll down"; 
 
    } 
 
});
<div id="status"></div>

+0

私が必要とするものではありません。私の質問を読んだことさえありましたか? – Vyacheslav

0

まず第一に、これは廃止され、あなたはまったくinitMouseEventを使用しないでください。

WheelEventdeltaのパラメータhttps://developer.mozilla.org/en-US/docs/Web/API/WheelEvent/WheelEventで作成してから、カスタムデルタ値やそのようなものを処理したい場合は、ディスパッチしてください。

+0

今私はこのようにしています: 'var wheelEvent = new WheelEvent( 'wheel'、{ deltaX:120 }); document.documentElement.dispatchEvent(wheelEvent); ' しかし' onmousewheel'と 'onscroll'リスナーは、私は別のイベントを使用するために必要な、私はそれを得た – Vyacheslav

+0

をトリガしませんでした、最終的な結果は以下のようになります。 'のvar wheelEvent = new WheelEvent( 'マウスホイール' //スクロール {deltaX:120} ); ' u、man! – Vyacheslav

+0

私の喜び。私が助けてくれたら、私の答えをアップアップするように頼んでもいい?私はどこにでもコメントすることができるようにしようとしています:) – sztrzask

関連する問題