【问题标题】:Disable mousewheel scroll on swf files?在 swf 文件上禁用鼠标滚轮滚动?
【发布时间】:2010-03-15 04:33:32
【问题描述】:

我在 swf 文件中使用滚动。无论如何,是否可以在所有浏览器上禁用滚动鼠标滚轮。我让它适用于 IE 和 FF,但 Webkit 不工作:

$(document).ready(function() {
$("#ebook").hover(
  function () {
    document.onmousewheel = function(){
        return false
    };
    console.log('On');
  },
  function () {
    console.log('Out');
    document.onmousewheel = function() {
        return true;
    }
  }
);

});

【问题讨论】:

    标签: javascript jquery flash


    【解决方案1】:

    在来自网络和 JQuery 的一些脚本的帮助下,我为该问题组装了以下 Javascript 解决方案,它在所有浏览器上都能正常工作。
    基于:http://adomas.org/javascript-mouse-wheel/
    只需在鼠标进入容器div时禁用,重新启用鼠标onMouseLeave即可。

    jQuery(function(){
      $("#myFlashContainer").mouseenter(
        function () {
          if (window.addEventListener)
          {
            window.removeEventListener('DOMMouseScroll', wheelOn, false);
            window.addEventListener('DOMMouseScroll', wheelOff, false);
          }
          /** IE/Opera. **/
          window.onmousewheel = document.onmousewheel = wheelOff;
        }
      );
    
      $("#myFlashContainer").mouseleave(
        function () {
          if (window.addEventListener)
          {
            window.removeEventListener('DOMMouseScroll', wheelOff, false);
            window.addEventListener('DOMMouseScroll', wheelOn, false);
          }
          /** IE/Opera. **/
          window.onmousewheel = document.onmousewheel = wheelOn;
        }
      );
    
      function wheelOff(event)
      {
        var delta = 0;
        if (!event) /* For IE. */
          event = window.event;
        if (event.wheelDelta) { /* IE/Opera. */
          delta = event.wheelDelta/120;
        } else if (event.detail) { /** Mozilla case. */
          /** In Mozilla, sign of delta is different than in IE.
            * Also, delta is multiple of 3.
            */
          // delta = -event.detail/3;
        }
    
        if (event.preventDefault)
          event.preventDefault();
        event.returnValue = false;
      }
    
      function wheelOn(event)
      {
        var delta = 0;
        if (!event) /* For IE. */
          event = window.event;
        if (event.wheelDelta) { /* IE/Opera. */
          delta = event.wheelDelta/120;
        } else if (event.detail) { /** Mozilla case. */
          // delta = -event.detail/3;
        }
        if (event.preventDefault)
        {
          //event.preventDefault();
          event.returnValue = true;
        }
        return true;
      }
    
    }); 
    

    【讨论】:

    • 这似乎适用于 firefox / webkit.. 但不适用于 IE 8... 它也没有将焦点设置为 .swf
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多