Отключить прокрутку колесиком мыши на SWF-файлах? - PullRequest
1 голос
/ 15 марта 2010

Я использую прокрутку в 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;
    }
  }
);

});

1 Ответ

1 голос
/ 21 июля 2010

С помощью некоторых сценариев из Интернета и 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;
  }

}); 
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...