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 相关文章推荐
Javascript实例教程(19) 使用HoTMetal(7)
Dec 23 Javascript
JavaScript高级程序设计 客户端存储学习笔记
Sep 10 Javascript
jquery和javascript的区别(常用方法比较)
Jul 04 Javascript
js简单实现让文本框内容逐个字的显示出来
Oct 22 Javascript
JS读取XML文件数据并以table形式显示数据的方法(兼容IE与火狐)
Jun 02 Javascript
jQuery实用密码强度检测
Mar 02 Javascript
微信小程序支付之c#后台实现方法
Oct 19 Javascript
Vue源码解析之数据响应系统的使用
Apr 24 Javascript
Node.js 的 GC 机制详解
Jun 03 Javascript
vue.js实现三级菜单效果
Oct 19 Javascript
JavaScript提升机制Hoisting详解
Oct 23 Javascript
JQuery表单元素取值赋值方法总结
May 12 jQuery
原生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
一些星际专用术语解释
2020/03/04 星际争霸
php环境配置 php5 MySQL5 apache2 phpmyadmin安装与配置图文教程
2007/03/16 PHP
表单复选框向PHP传输数据的代码
2007/11/13 PHP
10 个经典PHP函数
2013/10/17 PHP
php中isset与empty函数的困惑与用法分析
2019/07/05 PHP
如何在PHP中使用AES加密算法加密数据
2020/06/24 PHP
30个最佳jQuery Lightbox效果插件分享
2011/04/11 Javascript
在javascript中执行任意html代码的方法示例解读
2013/12/25 Javascript
JS实现的最简Table选项卡效果
2015/10/14 Javascript
纯JS前端实现分页代码
2016/06/21 Javascript
浅谈AngularJS中ng-class的使用方法
2016/11/11 Javascript
基于iScroll实现下拉刷新和上滑加载效果
2017/07/18 Javascript
JS实现标签滚动切换效果
2017/12/25 Javascript
angular 实现的输入框数字千分位及保留几位小数点功能示例
2018/06/19 Javascript
JS使用百度地图API自动获取地址和经纬度操作示例
2019/04/16 Javascript
js实现继承的方法及优缺点总结
2019/05/08 Javascript
javascript获取元素的计算样式
2019/05/24 Javascript
vue使用一些外部插件及样式的配置代码
2019/11/18 Javascript
matplotlib设置legend图例代码示例
2017/12/19 Python
Python常见排序操作示例【字典、列表、指定元素等】
2018/08/15 Python
python实现感知机线性分类模型示例代码
2019/06/02 Python
Python上下文管理器用法及实例解析
2019/11/11 Python
python数据化运营的重要意义
2019/11/25 Python
解决tensorflow添加ptb库的问题
2020/02/10 Python
Python垃圾回收机制三种实现方法
2020/04/27 Python
基于python计算并显示日间、星期客流高峰
2020/05/07 Python
Python 用__new__方法实现单例的操作
2020/12/11 Python
贝玲妃美国官方网站:Benefit美国
2016/08/28 全球购物
台湾演唱会订票网站:StubHub台湾
2019/06/11 全球购物
C#面试题问题集
2016/04/02 面试题
大学生实习证明范本
2014/01/15 职场文书
农林环境专业求职信
2014/03/13 职场文书
开业主持词
2014/03/21 职场文书
护士求职信范文
2014/05/24 职场文书
导游词之镜泊湖
2019/12/09 职场文书
Windows Server 2019 配置远程控制以及管理方法
2022/04/28 Servers