JS禁用和启用鼠标滚轮滚动事件

// left: 37, up: 38, right: 39, down: 40,
// spacebar: 32, pageup: 33, pagedown: 34, end: 35, home: 36
var keys = [37, 38, 39, 40];

function preventDefault(e) {
  e = e || window.event;
  if (e.preventDefault)
      e.preventDefault();
  e.returnValue = false;
}

function keydown(e) {
    for (var i = keys.length; i--;) {
        if (e.keyCode === keys[i]) {
            preventDefault(e);
            return;
        }
    }
}

function wheel(e) {
  preventDefault(e);
}

function disable_scroll() {
  if (window.addEventListener) {
      window.addEventListener(‘DOMMouseScroll‘, wheel, false);
  }
  window.onmousewheel = document.onmousewheel = wheel;
  document.onkeydown = keydown;
}

function enable_scroll() {
    if (window.removeEventListener) {
        window.removeEventListener(‘DOMMouseScroll‘, wheel, false);
    }
    window.onmousewheel = document.onmousewheel = document.onkeydown = null;
}

  

时间: 2024-11-01 19:46:43

JS禁用和启用鼠标滚轮滚动事件的相关文章

如何让DbGrid支持鼠标滚轮滚动

如何让DbGrid支持鼠标滚轮滚动 在主窗体上加一个ApplicationEvents控件(控件在Additional面板中), 在它的OnMessage事件中加入下述代码,一切搞定-! procedure TFrm_main_usermanager.ApplicationEvents1Message(var Msg: tagMSG; var Handled: Boolean); var hWnd: THandle; aName: array [0..255] of char; begin //

WPF中关于自定义控件的滚动条鼠标停留在内容上鼠标滚轮滚动无效的问题

问题起因:在一个用户控件里放置了1个TreeView垂直顺序放置. 当用户控件中的内容超过面板大小时,滚动条会自动出现 ,但是只有当鼠标指示在右边滚动条的那一条位置时,才支持鼠标滚轴滚动. 点在控件内部时滚轴无效. 问题分析:由于设置了d:designheight,自定义控件的宽高都是随着父容器的变化而变化的,于是我将Height设为较小的固定高度时,发现鼠标停留在控件内容时,滚轮控制滚动条滚动是有效的.这就说明UI上显示的滚动条并非是这个自定义控件的,而是这个自定义控件所在的父容器的,这样也解

如何让VB6代码编辑器垂直滚动条随鼠标滚轮滚动

VB6毕竟是很老的产品了,它的代码编辑器垂直滚动条并不能随鼠标的滚轮而滚动,这个问题会让我们在编写代码的时候觉得很不方便,不过还是有一种方法可以解决这个问题的.    先下载一个微软发布的"VB6IDEMouseWheelAddin.dll"文件(此文件已经上传到百度网盘,网址:http://pan.baidu.com/s/1c06KY7e,或者也可以自己百度一下该文件名下载),然后按照以下的方法进行(注意:此处介绍的是一种通用的方法,适合是32位和64位的系统上使用): 一.  将下

js监听网页页面滑动滚动事件,实现导航栏自动显示或隐藏

/** * 页面滑动滚动事件 * @param e *///0为隐藏,1为显示var s = 1; function scrollFunc(e) { // e存在就用e不存在就用windon.event e = e || window.event;// 先判断是什么浏览器 if (e.wheelDelta) { // 浏览器IE,谷歌 if (e.wheelDelta > 0) {//当滑轮向上滚动时// console.log("滑轮向上滚动"); if (s == 0) {

鼠标滑轮滚动事件

var wheel = function(event) { var delta = 0; console.log(event); if (!event) /* For IE. */ event = window.event; if (event.wheelDelta) { /* IE/Opera/Chrome. 鼠标向上滑 120*/ delta = event.wheelDelta / 120; } else if (event.detail) { /** Mozilla case. */ /

原生javascript实现鼠标滚轮滚动页面效果

html部分: <div id="gp">  <div id="gunping">         <div class="page1 page">1</div>         <div class="page2 page">2</div>         <div class="page3 page">3</div

jquery鼠标移入某区域屏蔽鼠标滚轮 滚动滚动条

<script> var firefox = navigator.userAgent.indexOf('Firefox') != -1; function MouseWheel(e) { ///对img按下鼠标滚路,阻止视窗滚动 e = e || window.event; if (e.stopPropagation) e.stopPropagation(); else e.cancelBubble = true; if (e.preventDefault) e.preventDefault(

控制鼠标滚轮滚动的两种方法

1 $(function(){ 2 // jquery 兼容的滚轮事件 3 var strat = true; 4 var mark = 0; 5 $(document).on("mousewheel DOMMouseScroll", function (e) { 6 var delta = (e.originalEvent.wheelDelta && (e.originalEvent.wheelDelta > 0 ? 1 : -1)) || // chrome

鼠标滚轮滚动方向

$('#dateYear').on('mousewheel', function(event) { if(window.event.wheelDelta>0){//向上滚动 $("#dateYear").scrollTop("100px"); }else{//向下滚动 $("#dateYear").scrollTop("100px"); } });