Just disable global mice and scroll keys when the mouse is on the body element.
var disableKeys = [33,34,35,36,37,38,39,40]; var mouseOverElement; $('*').on('mouseover', function(e) { if(e.target === e.currentTarget) { mouseOverElement = e.target; } }); $(document).keydown(function(e) { var key = e.which; if(disableKeys.indexOf(key) > -1 && mouseOverElement.tagName == "BODY") { e.preventDefault(); } }); $(document).on("mousewheel", function(e) { if(mouseOverElement.tagName == "BODY"){ e.preventDefault(); }; });
Working example: http://jsfiddle.net/9cSeq/2/
motivast
source share