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 相关文章推荐
Ext.MessageBox工具类简介
Dec 10 Javascript
js 无提示关闭浏览器页面的代码
Mar 09 Javascript
jquery对象和DOM对象的区别介绍
Aug 09 Javascript
jQuery获取Radio,CheckBox选择的Value值(示例代码)
Dec 12 Javascript
如何动态的导入js文件具体该怎么实现
Jan 14 Javascript
21个JavaScript事件(Events)属性汇总
Dec 02 Javascript
Javascript中的getUTCHours()方法使用详解
Jun 10 Javascript
Vue.js 父子组件通讯开发实例
Sep 06 Javascript
如何理解jQuery中的ajaxSubmit方法
Mar 13 Javascript
javascript实现table单元格点击展开隐藏效果(实例代码)
Apr 10 Javascript
JS学习笔记之闭包小案例分析
May 29 Javascript
在vue项目中利用popstate处理页面返回的操作介绍
Aug 06 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
一个程序下载的管理程序(一)
2006/10/09 PHP
php 论坛采集程序 模拟登陆,抓取页面 实现代码
2009/07/09 PHP
drupal 代码实现URL重写
2011/05/04 PHP
form自动提交实例讲解
2017/07/10 PHP
jquery ready函数、css函数及text()使用示例
2013/09/27 Javascript
5分钟理解JavaScript中this用法分享
2013/11/09 Javascript
浅谈javascript中return语句
2015/07/15 Javascript
jQuery+Ajax实现无刷新操作
2016/01/04 Javascript
a标签跳转到指定div,jquery添加和移除class属性的实现方法
2016/10/10 Javascript
Vue导出json数据到Excel电子表格的示例
2017/12/04 Javascript
详解vue-cli 接口代理配置
2017/12/13 Javascript
layui 上传插件 带预览 非自动上传功能的实例(非常实用)
2019/09/23 Javascript
vue.js实现二级菜单效果
2019/10/19 Javascript
Vue中图片Src使用变量的方法
2019/10/30 Javascript
JavaScript实现联动菜单特效
2020/01/07 Javascript
vue 解决无法对未定义的值,空值或基元值设置反应属性报错问题
2020/07/31 Javascript
详解python中 os._exit() 和 sys.exit(), exit(0)和exit(1) 的用法和区别
2017/06/23 Python
Python绘制3D图形
2018/05/03 Python
Python走楼梯问题解决方法示例
2018/07/25 Python
Python简单过滤字母和数字的方法小结
2019/01/09 Python
Python变量访问权限控制详解
2019/06/29 Python
Python序列化与反序列化pickle用法实例
2019/11/11 Python
Python filter过滤器原理及实例应用
2020/08/18 Python
Toppik顶丰增发纤维官网:解决头发稀疏
2017/12/30 全球购物
精灵市场:Pixie Market
2019/06/18 全球购物
如何将整数int转换成字串String
2014/03/21 面试题
大学生自我鉴定评语
2014/01/27 职场文书
建议书怎么写
2014/03/12 职场文书
电工技术比武方案
2014/05/11 职场文书
同意迁入证明模板
2014/10/26 职场文书
市直属机关2016年主题党日活动总结
2016/04/05 职场文书
Python基础之赋值,浅拷贝,深拷贝的区别
2021/04/30 Python
Redis6.0搭建集群Redis-cluster的方法
2021/05/08 Redis
详解Java分布式事务的 6 种解决方案
2021/06/26 Java/Android
Python爬虫中urllib3与urllib的区别是什么
2021/07/21 Python
MYSQL中文乱码问题的解决方案
2022/06/14 MySQL