在SWF文件上禁用滚轮滚动? [英] Disable mousewheel scroll on swf files?

查看:184
本文介绍了在SWF文件上禁用滚轮滚动?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我在swf文件中使用滚动..反正有禁用所有浏览器的滚动mousewheel ..我得到它的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;
}
}
);

});

解决方案

在web和JQuery的一些脚本的帮助下,我已经为这个问题组装了下面的Javascript解决方案,它在所有浏览器上都能正常工作。

基于: http://adomas.org/javascript-mouse-wheel/

只要禁用鼠标进入容器分区a nd重新启用鼠标 onMouseLeave



$ p $ j $($) {
$(#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。** /
窗口。 onmousewheel = document.onmousewheel = wheelOn;
}
);

function wheelOff(event)
{
var delta = 0;
if(!event)/ *对于IE。 * /
event = window.event;
if(event.wheelDelta){/ * IE / Opera。 * /
delta = event.wheelDelta / 120;
} else if(event.detail){/ ** Mozilla case。 * /
/ **在Mozilla中,delta的符号与IE中的不同。
*另外,delta是3的倍数。
* /
// delta = -event.detail / 3;


if(event.preventDefault)
event.preventDefault();
event.returnValue = false;


函数wheelOn(event)
{
var delta = 0;
if(!event)/ *对于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;
}
返回true;
}

});


I am using the scroll in a swf file.. is there anyway to disable the scroll mousewheel on all browsers.. I get it working for IE and FF but Webkit is not working:

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

});

解决方案

With the help of some scripts from the web and JQuery i have assembled the following Javascript solution for the problem and it works fine on all browsers.
Based on: http://adomas.org/javascript-mouse-wheel/
Just disable when the mouse enters the container div and re-enable the mouse 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;
  }

}); 

这篇关于在SWF文件上禁用滚轮滚动?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆