js滚轮事件兼容性问题需要注意哪些


Posted in Javascript onNovember 15, 2016

本文实例为大家解析了js滚轮事件需要注意的兼容性问题,供大家参考,具体内容如下

<!DOCTYPE html>
<html lang="en">
<head>
 <meta charset="UTF-8">
 <title>Title</title>
 <style>
  #div {
   width: 300px;
   height: 300px;
   background: red;
  }
 </style>
 <script>
  function addEvent(obj,sEv,fn){
   if(obj.addEventListener){
    return obj.addEventListener(sEv,fn,false);
   }else{
    return obj.attachEvent('on' + sEv,fn);
   }
  }

  function addWheel(obj,fn){
   function wheel(ev){
    var oEvent = ev || event;
    var bDown = true;
    bDown = oEvent.wheelDelta?oEvent.wheelDelta > 0:oEvent.detail < 0;
    fn && fn(bDown);
    oEvent.preventDefault && oEvent.preventDefault();
    return false;
   }
------------------------------------------------------------------
return false阻止浏览器默认行为,遇到绑定添加的事件的时候就失效了;
所有要用oEvent.preventDefault();在使用此方法前要做判断;
------------------------------------------------------------------
   if(window.navigator.userAgent.indexOf('Firefox') !=-1){
    obj.addEventListener('DOMMouseScroll',wheel,false);注:所有以DOM开头的只能通过事件绑定的形式添加此事件;
   }else{
    addEvent(obj,'mousewheel',wheel);
   }
  }
-------------------------------------------------------------------------------------------------
 obj.onmousewheel:滚动鼠标滚轮的时候触发;兼容IE系列和chrome;
 DOMMouseScroll:只能通过事件绑定的形式添加此事件;只兼容FF;
 兼容性问题解决方案:判断浏览器;
 oEvent.wheelDelta:不兼容FF;火狐下报undefined;
  chrome&&IE:
   下:-120;//以具体弹出数字为准
   上:120;

 oEvent.detail:
  FF:
   下:3;//以具体弹出数字为准
---------------------------------------------------------------------------------------------------
  window.onload = function () {
   var oDiv = document.getElementById('div');
   addWheel(oDiv,function(bDown){
    oDiv.onmousewheel = null;
    if(bDown){
     oDiv.style.height = oDiv.offsetHeight - 10 + 'px';
    }else{
     oDiv.style.height = oDiv.offsetHeight + 10 + 'px';
    }
   });
  }
 </script>
</head>
<body>
<div id="div"></div>
</body>
</html>

滚轮事件的兼容性问题比较多,所以大家在实现这个效果的时候也要随时测试兼容性的问题。

暂时整理的大概就这些,还有很多不足的地方,大家多提宝贵意见!

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
javascript结合html5 canvas实现(可调画笔颜色/粗细/橡皮)的涂鸦板
Apr 27 Javascript
12种JavaScript常用的MVC框架比较分析
Nov 16 Javascript
Javascript之Math对象详解
Jun 07 Javascript
jquery选择器中的空格与大于号&gt;、加号+与波浪号~的区别介绍
Jun 24 Javascript
AngularJS基础 ng-value 指令简单示例
Aug 03 Javascript
手机浏览器 后退按钮强制刷新页面方法总结
Oct 09 Javascript
Bootstrap基本样式学习笔记之表单(3)
Dec 07 Javascript
Vue.directive自定义指令的使用详解
Mar 10 Javascript
npm全局模块卸载及默认安装目录修改方法
May 15 Javascript
微信小程序实现天气预报功能
Jul 18 Javascript
webpack HappyPack实战详解
Oct 08 Javascript
KnockoutJS数组比较算法实例详解
Nov 25 Javascript
禁用backspace网页回退功能的实现代码
Nov 15 #Javascript
sea.js常用的api简易文档
Nov 15 #Javascript
js实现倒计时及时间对象
Nov 15 #Javascript
Bootstrap简单表单显示学习笔记
Nov 15 #Javascript
JS实现根据用户输入分钟进行倒计时功能
Nov 14 #Javascript
js调用屏幕宽度的简单方法
Nov 14 #Javascript
jquery心形点赞关注效果的简单实现
Nov 14 #Javascript
You might like
Ajax PHP简单入门教程代码
2008/04/25 PHP
PHPMailer安装方法及简单实例
2008/11/25 PHP
PHP使用GIFEncoder类处理gif图片实例
2014/07/01 PHP
PHP中调用SVN命令更新网站方法
2015/01/07 PHP
PHP实现返回JSON和XML的类分享
2015/01/28 PHP
JavaScript中的稀疏数组与密集数组[译]
2012/09/17 Javascript
在父页面调用子页面的JS方法
2013/09/29 Javascript
js检测网络是否具体连接功能的代码
2014/05/23 Javascript
js获取数组的最后一个元素
2015/04/14 Javascript
jQuery Validate初步体验(二)
2015/12/12 Javascript
复杂的javascript窗口分帧解析
2016/02/19 Javascript
Javascript学习之谈谈JS的全局变量跟局部变量(推荐)
2016/08/28 Javascript
webpack+vue.js快速入门教程
2016/10/12 Javascript
Angular中使用$watch监听object属性值的变化(详解)
2017/04/24 Javascript
js canvas实现二维码和图片合成的海报
2020/11/19 Javascript
新版小程序登录授权的方法
2018/12/12 Javascript
vue-router 中 meta的用法详解
2019/11/01 Javascript
JavaScript设计模式---单例模式详解【四种基本形式】
2020/05/16 Javascript
JS简易计算器实例讲解
2020/06/30 Javascript
JavaScript实现简单日历效果
2020/09/11 Javascript
JavaScript实现无限轮播效果
2020/11/19 Javascript
Python中多线程thread与threading的实现方法
2014/08/18 Python
python实现爬虫下载美女图片
2015/07/14 Python
Python文件的读写和异常代码示例
2017/10/31 Python
解决nohup重定向python输出到文件不成功的问题
2018/05/11 Python
Python 离线工作环境搭建的方法步骤
2019/07/29 Python
python日期与时间戳的各种转换示例
2020/02/12 Python
jupyter 实现notebook中显示完整的行和列
2020/04/09 Python
jupyter notebook 的工作空间设置操作
2020/04/20 Python
办公室文秘自我鉴定
2013/09/21 职场文书
2014社区三八妇女节活动方案
2014/03/30 职场文书
检察机关个人对照检查材料
2014/09/15 职场文书
500字作文之周记
2019/12/13 职场文书
pandas 实现将NaN转换为None
2021/05/14 Python
vue Element-ui表格实现树形结构表格
2021/06/07 Vue.js
Java实现超大Excel文件解析(XSSF,SXSSF,easyExcel)
2022/07/15 Java/Android