2008-12-05 9 views
8

Ich arbeite an einer Canvas-App, die in eine Seite eingebettet ist. Ich habe es so, dass Sie mit dem Mausrad in die Zeichnung hineinzoomen können, aber leider scrollt die Seite, da sie Teil eines Artikels ist.Wie kann ich das Scrollen mit dem Fenstermausrad unterdrücken?

Ist es möglich zu verhindern, Mausrad Scrolling auf dem Fenster, wenn ich Mausrad auf einem dom-Element ?!

Antwort

9

einen Ereignishandler für Mausrad Attach (nicht Gecko)/DOMMouseScroll (nicht IE) und seine Standardaktion verhindern (dh Inhalt gescrollt werden):

 
if (element.addEventListener) 
    element.addEventListener("DOMMouseScroll", function(event) { 
     event.preventDefault(); 
    }, false); 
else 
    element.attachEvent("mousewheel", function() { 
     return false; 
    }) 

hoffe, das hilft!

+1

Vielen Dank. Du bist eine Legende! –

+0

und Wenn das Element ein Iframe mit * benötigtem * scrollbarem Inhalt ist? was dann? In diesem Fall funktionierte dieser Trick nicht für mich, indem ich dies für das iframe-Objekt tat. – vsync

0

Ich weiß, das ist alt, aber das kann immer noch hilfreich für Google-Nutzer sein.

Ich habe ein jQuery-Plugin geschrieben, um dies zu behandeln: $.disablescroll.

Nicht nur Mousewheels, sondern auch touchmove und keypress Ereignisse, die normalerweise einen Scroll auslösen würden.

// disable all scrolling: 
$(window).disablescroll(); 

// enable scrolling again: 
$(window).disablescroll("undo");