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 相关文章推荐
Extjs学习笔记之七 布局
Jan 08 Javascript
为Javascript中的String对象添加去除左右空格的方法(示例代码)
Nov 30 Javascript
jQuery使用元素属性attr赋值详解
Feb 27 Javascript
JS对字符串编码的几种方式使用指南
May 14 Javascript
jQuery实现的网页左侧在线客服效果代码
Oct 23 Javascript
js+html制作简单日历的方法
Jun 27 Javascript
redux-saga 初识和使用
Mar 10 Javascript
JS实现的3des+base64加密解密算法完整示例
May 18 Javascript
JS实现自定义弹窗功能
Aug 08 Javascript
Angular服务Request异步请求的实例讲解
Aug 13 Javascript
利用React高阶组件实现一个面包屑导航的示例
Aug 23 Javascript
vue-cli脚手架的.babelrc文件用法说明
Sep 11 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
11个PHP 分页脚本推荐
2011/08/15 PHP
php实现有趣的人品测试程序实例
2015/06/08 PHP
Zend Framework连接Mysql数据库实例分析
2016/03/19 PHP
CI框架整合widget(页面格局)的方法
2016/05/17 PHP
thinkPHP5实现数据库添加内容的方法
2017/10/25 PHP
PHP设计模式(一)工厂模式Factory实例详解【创建型】
2020/05/02 PHP
JavaScript单元测试ABC
2012/04/12 Javascript
使用jQuery清空file文件域的解决方案
2013/04/12 Javascript
node.js中的url.format方法使用说明
2014/12/10 Javascript
jquery分析文本里url或邮件地址为真实链接的方法
2015/06/20 Javascript
js+html5实现canvas绘制网页时钟的方法
2016/05/21 Javascript
用js动态添加html元素,以及属性的简单实例
2016/07/19 Javascript
Vue.js每天必学之过滤器与自定义过滤器
2016/09/07 Javascript
JavaScript结合HTML DOM实现联动菜单
2017/04/05 Javascript
layui 优化button按钮和弹出框的方法
2018/08/15 Javascript
vue实现在线预览pdf文件和下载(pdf.js)
2019/11/26 Javascript
微信小程序点击view动态添加样式过程解析
2020/01/21 Javascript
Vue实现简易购物车页面
2020/12/30 Vue.js
[06:21]完美世界亚洲区首席发行官竺琦TI3采访
2013/08/26 DOTA
Python中不同进制互相转换(二进制、八进制、十进制和十六进制)
2015/04/05 Python
python使用psutil模块获取系统状态
2016/08/27 Python
python实现微信远程控制电脑
2018/02/22 Python
Python使用folium excel绘制point
2019/01/03 Python
Python实现的合并两个有序数组算法示例
2019/03/04 Python
python 实现手机自动拨打电话的方法(通话压力测试)
2019/08/08 Python
python 基于opencv实现图像增强
2020/12/23 Python
css3简单练习实现遨游浏览器logo的绘制
2013/01/30 HTML / CSS
俄罗斯玩具、儿童用品、儿童服装和鞋子网上商店:MyToys.ru
2019/10/14 全球购物
联强国际笔试题面试题
2013/07/10 面试题
技术副厂长岗位职责
2013/12/26 职场文书
女方婚礼新郎答谢词
2014/01/11 职场文书
生物学学生自我评价
2014/01/17 职场文书
寒假实习自荐信
2014/01/26 职场文书
数字化校园建设方案
2014/05/03 职场文书
私人房屋买卖协议书
2014/10/04 职场文书
党员读书活动心得体会
2016/01/14 职场文书