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 组件之旅(四):测试 JavaScript 组件
Oct 28 Javascript
Ext JS 4实现带week(星期)的日期选择控件(实战一)
Aug 21 Javascript
jquery对table中各数据的增加、保存、删除操作示例
May 14 Javascript
使用jquery+CSS实现控制打印样式
Dec 31 Javascript
jquery自定义表格样式
Nov 23 Javascript
vue.js 表格分页ajax 异步加载数据
Oct 18 Javascript
微信JS SDK接入的几点注意事项(必看篇)
Jun 23 Javascript
详解Vuex管理登录状态
Nov 13 Javascript
vue数据操作之点击事件实现num加减功能示例
Jan 19 Javascript
基于vue实现一个禅道主页拖拽效果
May 27 Javascript
Vue Extends 扩展选项用法完整实例
Sep 17 Javascript
Node.js API详解之 net模块实例分析
May 18 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
2.PHP入门
2006/10/09 PHP
PHP开发过程中常用函数收藏
2009/12/14 PHP
PHP如何实现阿里云短信sdk灵活应用在项目中的方法
2019/06/14 PHP
Javascript 面向对象 对象(Object)
2010/05/13 Javascript
javscript对象原型的一些看法
2010/09/19 Javascript
判断用户是否在线的代码
2011/03/05 Javascript
文本框回车提交与禁止提交示例
2013/09/27 Javascript
jquery选择器之内容过滤选择器详解
2014/01/27 Javascript
ExtJS4给Combobox设置列表中的默认值示例
2014/05/02 Javascript
nodejs实现获取某宝商品分类
2015/05/28 NodeJs
jQuery过滤HTML标签并高亮显示关键字的方法
2015/08/07 Javascript
javascript基于prototype实现类似OOP继承的方法
2015/12/16 Javascript
JavaScript设计模式经典之工厂模式
2016/02/24 Javascript
Angular ng-repeat 对象和数组遍历实例
2016/09/14 Javascript
JS实现拖动滚动条评分的效果代码分享
2016/09/29 Javascript
jQuery实现加入收藏夹功能(主流浏览器兼职)
2016/12/24 Javascript
js实现文本上下来回滚动
2017/02/03 Javascript
vue.js实例对象+组件树的详细介绍
2017/10/20 Javascript
jquery动态添加带有样式的HTML标签元素方法
2018/02/24 jQuery
解决Vue使用bus总线时,第一次路由跳转时数据没成功传递问题
2020/07/28 Javascript
[00:23]DOTA2群星共贺开放测试 25日无码时代来袭
2013/09/23 DOTA
python解析html开发库pyquery使用方法
2014/02/07 Python
Python文件的读写和异常代码示例
2017/10/31 Python
python 中if else 语句的作用及示例代码
2018/03/05 Python
OPENCV去除小连通区域,去除孔洞的实例讲解
2018/06/21 Python
浅谈Pandas Series 和 Numpy array中的相同点
2019/06/28 Python
python plotly画柱状图代码实例
2019/12/13 Python
解决HTML5中滚动到底部的事件问题
2019/08/22 HTML / CSS
html2canvas生成清晰的图片实现打印的示例代码
2019/09/30 HTML / CSS
捷克移动配件网上商店:ProMobily.cz
2019/03/15 全球购物
介绍一下内联、左联、右联
2013/12/31 面试题
计算机应用职专应届生求职信
2013/11/12 职场文书
遗愿清单观后感
2015/06/09 职场文书
收入证明怎么写
2015/06/12 职场文书
vue+element ui实现锚点定位
2021/06/29 Vue.js
游戏《我的世界》澄清Xbox版暂无计划加入光追
2022/04/03 其他游戏