javascript - 禁用 swf 文件上的鼠标滚轮滚动?

标签 javascript jquery flash

我在 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;
    }
  }
);

});

最佳答案

在网络和 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;
  }

}); 

关于javascript - 禁用 swf 文件上的鼠标滚轮滚动?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2445094/

相关文章:

javascript - 扫描文件夹内的文本文件名称 HTML5/Javascript

flash - 在Flash CS4中嵌入YouTube视频?

javascript - 提高 Angular 性能: change the view to reactjs or Mithril?

javascript - 正则表达式用另一个字符替换每个字符,除了方括号中的内容

至少一个数字和一个大写字母的javascript正则表达式

javascript - 如何使用 JQuery 动态更改多段线中点的值?

javascript - 图像 slider 导航按钮

actionscript-3 - 在 TableTools 中将什么作为 swf 文件

javascript - 如果我给你一个函数的引用,你能得到函数的名称吗?

javascript - Safari 引用错误 : Can't find variable