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注入技巧
Jun 22 Javascript
javascript获取当前日期时间及其它操作函数
Jan 11 Javascript
基于jquery的下拉框改变动态添加和删除表格实现代码
Sep 12 Javascript
多种方法实现360浏览器下禁止自动填写用户名密码
Jun 16 Javascript
基于JavaScript实现文字超出部分隐藏
Feb 29 Javascript
JavaScript 对象详细整理总结
Sep 29 Javascript
JS图片压缩(pc端和移动端都适用)
Jan 12 Javascript
AngularJs用户登录问题处理(交互及验证、阻止FQ处理)
Oct 26 Javascript
JS实现带动画的回到顶部效果
Dec 28 Javascript
微信小程序学习笔记之表单提交与PHP后台数据交互处理图文详解
Mar 28 Javascript
js设计模式之代理模式及订阅发布模式实例详解
Aug 15 Javascript
基于JS正则表达式实现模板数据动态渲染(实现思路详解)
Mar 07 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
基于empty函数的输出详解
2013/06/17 PHP
解析smarty模板中类似for的功能实现
2013/06/18 PHP
ThinkPHP防止重复提交表单的方法实例分析
2018/05/10 PHP
php从数据库中获取数据用ajax传送到前台的方法
2018/08/20 PHP
JS实现随机化快速排序的实例代码
2013/08/01 Javascript
JS 去除Array中的null值示例代码
2013/11/20 Javascript
js的Boolean对象初始值示例
2014/03/04 Javascript
Javascript MVC框架Backbone.js详解
2014/09/18 Javascript
javascript使用正则表达式检测IP地址
2014/12/03 Javascript
jQuery旋转木马式幻灯片轮播特效
2015/12/04 Javascript
javascript实现粘贴qq截图功能(clipboardData)
2016/05/29 Javascript
jQuery+Ajax实现限制查询间隔的方法
2016/06/07 Javascript
JS简单设置下拉选择框默认值的方法
2016/08/20 Javascript
Angular ng-class详解及实例代码
2016/09/19 Javascript
pace.js和NProgress.js两个加载进度插件的一点小总结
2018/01/31 Javascript
js回文数的4种判断方法示例
2019/06/04 Javascript
Angular8 实现table表格表头固定效果
2020/01/03 Javascript
JavaScript字符和ASCII实现互相转换
2020/06/03 Javascript
[48:29]2018DOTA2亚洲邀请赛3月30日 小组赛A组 LGD VS KG
2018/03/31 DOTA
[39:18]完美世界DOTA2联赛PWL S3 Forest vs LBZS 第二场 12.17
2020/12/19 DOTA
学习python的几条建议分享
2013/02/10 Python
在Python的Flask中使用WTForms表单框架的基础教程
2016/06/07 Python
Python算法之图的遍历
2017/11/16 Python
python多进程实现文件下载传输功能
2018/07/28 Python
Python实现的特征提取操作示例
2018/12/03 Python
Python对列表的操作知识点详解
2019/08/20 Python
使用Python生成200个激活码的实现方法
2019/11/22 Python
HTML5中的音频和视频媒体播放元素小结
2016/01/29 HTML / CSS
中间件分为哪几类
2016/09/18 面试题
幼儿园英语教学反思
2014/01/30 职场文书
材料成型及控制工程专业求职信
2014/06/19 职场文书
公司聚餐通知
2015/04/22 职场文书
舞蹈社团活动总结
2015/05/07 职场文书
培养联系人考察意见
2015/06/01 职场文书
《攀登者》:“海拔8000米以上,你不能指望任何人”
2019/11/25 职场文书
Python中requests做接口测试的方法
2021/05/30 Python