1

私は現在、このコードを持っています:

canvas.onmousewheel = scroll;

function scroll(event) {
    event.preventDefault();
    var mousex = event.clientX - canvas.offsetLeft;
    var mousey = event.clientY - canvas.offsetTop;
    var wheel = parseInt(event.wheelDelta, 10) / 120; //n or -n

    var zoom = 1 + wheel / 2;

    [... do some action on canvas ...]
};

残念ながら、これは Firefox では機能しません。MDNによると:

Gecko には、従来のイベント タイプと非標準のため、このイベントを実装する計画はありません。

コードを Chrome と Firefox で動作させるにはどうすればよいですか?

編集: 完全なコードはこちら(1 つのファイル、約 550 LOC)

4

2 に答える 2

3

次のリンクを試すことができます

ページから: onmousewheel イベントと Firefox の同等物

var mousewheelevt=(/Firefox/i.test(navigator.userAgent))? "DOMMouseScroll" : "mousewheel" //FF doesn't recognize mousewheel as of FF3.x

if (document.attachEvent) //if IE (and Opera depending on user setting)
    document.attachEvent("on"+mousewheelevt, function(e){alert('Mouse wheel movement detected!')})
else if (document.addEventListener) //WC3 browsers
    document.addEventListener(mousewheelevt, function(e){alert('Mouse wheel movement detected!')}, false)
于 2013-06-26T17:31:04.913 に答える