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 相关文章推荐
jquery.post用法示例代码
Jan 03 Javascript
JS OffsetParent属性深入解析
Jan 13 Javascript
js动态创建标签示例代码
Jun 09 Javascript
JQuery中模拟image的ajaxPrefilter与ajaxTransport处理
Jun 19 Javascript
JavaScript正则表达式匹配 div  style标签
Mar 15 Javascript
jQuery each函数源码分析
May 25 Javascript
总结JavaScript的正则与其他语言的不同之处
Aug 25 Javascript
基于jQuery ligerUI实现分页样式
Sep 18 Javascript
JS触摸与手势事件详解
May 09 Javascript
详解用函数式编程对JavaScript进行断舍离
Sep 18 Javascript
vue+element UI实现树形表格带复选框的示例代码
Apr 16 Javascript
Vue基于vuex、axios拦截器实现loading效果及axios的安装配置
Apr 26 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 论坛采集程序 模拟登陆,抓取页面 实现代码
2009/07/09 PHP
PHP中的按位与和按位或操作示例
2014/01/27 PHP
简单了解PHP编程中数组的指针的使用
2015/11/30 PHP
Laravel与CI框架中截取字符串函数
2016/05/08 PHP
php进行ip地址掩码运算处理的方法
2016/07/11 PHP
脚本收藏iframe
2006/07/21 Javascript
判断控件是否已加载完成的代码
2010/02/24 Javascript
锋利的jQuery 要点归纳(一) jQuery选择器
2010/03/21 Javascript
jquery $.getJSON()跨域请求
2011/12/21 Javascript
ExtJS如何设置与获取radio控件的选取状态
2014/01/22 Javascript
解决jQuery动态获取手机屏幕高和宽的问题
2014/05/07 Javascript
Javascript中call和apply函数的比较和使用实例
2015/02/03 Javascript
AngularJs html compiler详解及示例代码
2016/09/01 Javascript
jQuery实现链接的title快速出现的方法
2017/02/20 Javascript
详解nodejs微信公众号开发——2.自动回复
2017/04/10 NodeJs
详解react-native-fs插件的使用以及遇到的坑
2017/09/12 Javascript
详解node child_process模块学习笔记
2018/01/24 Javascript
koa上传excel文件并解析的实现方法
2018/08/09 Javascript
详解javascript中var与ES6规范中let、const区别与用法
2020/01/11 Javascript
[02:07]DOTA2新英雄展现中国元素,完美“圣典”亮相央视
2016/12/19 DOTA
Python中input和raw_input的一点区别
2014/10/21 Python
Python编程之黑板上排列组合,你舍得解开吗
2017/10/30 Python
python:目标检测模型预测准确度计算方式(基于IoU)
2020/01/18 Python
HTML5实现页面切换激活的PageVisibility API使用初探
2016/05/13 HTML / CSS
Expedia丹麦:全球领先的旅游网站
2018/03/18 全球购物
开展读书活动总结
2014/06/30 职场文书
质检员岗位职责
2015/02/03 职场文书
留学推荐信(中英文版)
2015/03/26 职场文书
地球上的星星观后感
2015/06/02 职场文书
车间安全生产管理制度
2015/08/06 职场文书
导游词之金鞭溪风景区
2019/09/12 职场文书
python编写函数注意事项总结
2021/03/29 Python
Python基础之pandas数据合并
2021/04/27 Python
Python 流媒体播放器的实现(基于VLC)
2021/04/28 Python
基于Redis位图实现用户签到功能
2021/05/08 Redis
css清除浮动clearfix:after的用法详解(附完整代码)
2023/05/21 HTML / CSS