js实现鼠标滑动到某个div禁止滚动


Posted in Javascript onSeptember 17, 2020

本文实例为大家分享了js实现鼠标滑动到某个div禁止滚动的具体代码,供大家参考,具体内容如下

项目中碰到一个场景就是当鼠标滑倒某个div的时候,滑动鼠标页面不再滚动。

这里主要是当鼠标滑动到该div时,监听滚轮事件并通过preventDefault()事件来阻止滚动事件,以下是例子

eg:

js实现鼠标滑动到某个div禁止滚动

#wrap {
  position:absolute;
  top:200px;
  background:#000000;
  font-size: 40px;
  width:50vw;
  text-align: center;
  color: #ffffff;
  line-height: 300px;
  height:300px;
}
<div id="wrap">
 鼠标移动进入该区域,页面禁止滚动
</div>
window.onload = function () {
  for (i = 0; i < 50; i++) {
  var x = document.createElement('div');
  x.innerHTML = "test<br/>";
  document.body.appendChild(x);
  }
 
  function $(x) {
  return document.getElementById(x);
  };
  $("wrap").onmousewheel = function scrollWheel(e) {
  var sl;
  e = e || window.event;
  if (navigator.userAgent.toLowerCase().indexOf('msie') >= 0) {
   event.returnValue = false;
  } else {
   e.preventDefault();
  };
  };
  if (navigator.userAgent.toLowerCase().indexOf('firefox') >= 0) {
  //firefox支持onmousewheel
  addEventListener('DOMMouseScroll',
   function (e) {
   var obj = e.target;
   var onmousewheel;
   while (obj) {
    onmousewheel = obj.getAttribute('onmousewheel') || obj.onmousewheel;
    if (onmousewheel) break;
    if (obj.tagName == 'BODY') break;
    obj = obj.parentNode;
   };
   if (onmousewheel) {
    if (e.preventDefault) e.preventDefault();
    e.returnValue = false; //禁止页面滚动
    if (typeof obj.onmousewheel != 'function') {
    //将onmousewheel转换成function
    eval('window._tmpFun = function(event){' + onmousewheel + '}');
    obj.onmousewheel = window._tmpFun;
    window._tmpFun = null;
    };
    // 不直接执行是因为若onmousewheel(e)运行时间较长的话,会导致锁定滚动失效,使用setTimeout可避免
    setTimeout(function () {
     obj.onmousewheel(e);
    },
    1);
   };
   },
   false);
  };
}

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
myeclipse安装jQuery插件的方法
Mar 29 Javascript
获取客户端网卡MAC地址和IP地址实现JS代码
Mar 17 Javascript
JQuery 常用方法和事件详细介绍
Apr 18 Javascript
jquery 实现返回顶部功能
Nov 17 Javascript
JQuery中节点遍历方法实例
May 18 Javascript
RequireJS入门一之实现第一个例子
Sep 30 Javascript
javascript+HTML5 Canvas绘制转盘抽奖
May 16 Javascript
jQuery的Each比JS原生for循环性能慢很多的原因
Jul 05 Javascript
jsp 自动编译机制详细介绍
Dec 01 Javascript
ES2015 Symbol 一种绝不重复的值
Dec 25 Javascript
React 组件转 Vue 组件的命令写法
Feb 28 Javascript
JavaScript观察者模式原理与用法实例详解
Mar 10 Javascript
原生js+css实现tab切换功能
Sep 17 #Javascript
vue使用screenfull插件实现全屏功能
Sep 17 #Javascript
Vue使用screenfull实现全屏效果
Sep 17 #Javascript
详解JavaScript中的数据类型,以及检测数据类型的方法
Sep 17 #Javascript
JavaScript编码小技巧分享
Sep 17 #Javascript
如何利用node转发请求详解
Sep 17 #Javascript
前端性能优化建议
Sep 17 #Javascript
You might like
php查找任何页面上的所有链接的方法
2013/12/03 PHP
yii实现级联下拉菜单的方法
2014/07/31 PHP
详解php设置session(过期、失效、有效期)
2015/11/12 PHP
PHP命名空间与自动加载机制的基础介绍
2019/08/25 PHP
JavaScript高级程序设计 阅读笔记(二十一) JavaScript中的XML
2012/09/14 Javascript
Google Dart编程语法和基本类型学习教程
2013/11/27 Javascript
Extjs4中的分页应用结合前后台
2013/12/13 Javascript
Javascript中设置默认参数值示例
2014/09/11 Javascript
javascript异步处理工作机制详解
2015/04/13 Javascript
javascript中eval和with用法实例总结
2015/11/30 Javascript
鼠标悬停小图标显示大图标
2016/01/22 Javascript
JS 全屏和退出全屏详解及实例代码
2016/11/07 Javascript
简单实现js选项卡切换效果
2017/02/09 Javascript
Angular2 自定义validators的实现方法
2017/07/05 Javascript
JS中使用media实现响应式布局
2017/08/04 Javascript
编写React组件项目实践分析
2018/03/04 Javascript
JS实现的JSON数组去重算法示例
2018/04/11 Javascript
[33:17]OG vs VGJ.T 2018国际邀请赛小组赛BO2 第二场 8.18
2018/08/19 DOTA
[34:10]Secret vs VG 2019国际邀请赛淘汰赛 败者组 BO3 第二场 8.24
2019/09/10 DOTA
python线程池的实现实例
2013/11/18 Python
python批量同步web服务器代码核心程序
2014/09/01 Python
使用IPython下的Net-SNMP来管理类UNIX系统的教程
2015/04/15 Python
python实现将pvr格式转换成pvr.ccz的方法
2015/04/28 Python
深入了解Python中pop和remove的使用方法
2018/01/09 Python
Python I/O与进程的详细讲解
2019/03/08 Python
如何利用Pyecharts可视化微信好友
2019/07/04 Python
python解析yaml文件过程详解
2019/08/30 Python
pytorch 自定义卷积核进行卷积操作方式
2019/12/30 Python
html5实现多图片预览上传及点击可拖拽控件
2018/03/15 HTML / CSS
西班牙最好的在线购买葡萄酒的商店:Vinoseleccion
2019/10/30 全球购物
CheapTickets泰国:廉价航班,查看促销价格并预订机票
2019/12/28 全球购物
光电信息专业应届生求职信
2013/10/07 职场文书
股东合作协议书
2014/04/14 职场文书
学校安全工作汇报材料
2014/08/16 职场文书
2015年党员创先争优承诺书
2015/01/22 职场文书
详解CSS开发过程中的20个快速提升技巧
2021/05/21 HTML / CSS