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 相关文章推荐
Jquery常用技巧收集整理篇
Nov 14 Javascript
javascript实现TreeView 无刷新展开的实例代码
Jul 13 Javascript
jQuery获取对象简单实现方法小结
Oct 30 Javascript
jQuery增加自定义函数的方法
Jul 18 Javascript
原生js页面滚动延迟加载图片
Dec 20 Javascript
jQuery中的siblings()是什么意思(推荐)
Dec 29 Javascript
BootStrap便签页的简单应用
Jan 06 Javascript
vue实现简单的MVVM框架
Aug 05 Javascript
angularjs 动态从后台获取下拉框的值方法
Aug 13 Javascript
微信小程序有旋转动画效果的音乐组件实例代码
Aug 22 Javascript
layui.use模块外部使用其内部定义的js封装函数方法
Sep 16 Javascript
Javascript中Microtask和Macrotask鲜为人知的知识点
Apr 02 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
在windows iis5下安装php4.0+mysql之我见
2006/10/09 PHP
深入PHP数据加密详解
2013/06/18 PHP
PHP与javascript实现变量交互的示例代码
2013/07/23 PHP
PHP Curl多线程原理实例详解
2013/11/06 PHP
Discuz7.2版的faq.php SQL注入漏洞分析
2014/08/06 PHP
ThinkPHP水印功能实现修复PNG透明水印并增加JPEG图片质量可调整
2014/11/05 PHP
php输出全球各个时区列表的方法
2015/03/31 PHP
有关DOM元素与事件的3个谜题
2010/11/11 Javascript
JQuery拖拽元素改变大小尺寸实现代码
2012/12/10 Javascript
网页右侧悬浮滚动在线qq客服代码示例
2014/04/28 Javascript
js分页代码分享
2014/04/28 Javascript
JavaScript设计模式之适配器模式介绍
2014/12/28 Javascript
以Python代码实例展示kNN算法的实际运用
2015/10/26 Javascript
javascript如何实现暂停功能
2015/11/06 Javascript
原生javascript+css3编写的3D魔方动画旋扭特效
2016/03/14 Javascript
JavaScript中this的四个绑定规则总结
2016/09/26 Javascript
JS实现微信弹出搜索框 多条件查询功能
2016/12/13 Javascript
百度地图API之百度地图退拽标记点获取经纬度的实现代码
2017/01/12 Javascript
基于axios封装fetch方法及调用实例
2018/02/05 Javascript
JavaScript简单实现的仿微博留言功能示例
2019/01/17 Javascript
[01:14]英雄,所敬略同——2018完美盛典宣传视频4K
2018/12/05 DOTA
python使用smtplib模块通过gmail实现邮件发送的方法
2015/05/08 Python
Python松散正则表达式用法分析
2016/04/29 Python
python整小时 整天时间戳获取算法示例
2019/02/20 Python
Python 实现微信防撤回功能
2019/04/29 Python
ipython和python区别详解
2019/06/26 Python
简单了解python高阶函数map/reduce
2019/06/28 Python
python3.6+django2.0+mysql搭建网站过程详解
2019/07/24 Python
python+selenium 脚本实现每天自动登记的思路详解
2020/03/11 Python
39美元购买一副眼镜或太阳镜:39DollarGlasses.com
2018/06/17 全球购物
阿迪达斯越南官网:adidas越南
2020/07/19 全球购物
业务部主管岗位职责
2014/01/29 职场文书
学校课外活动总结
2014/05/08 职场文书
2016入党积极分子党课学习心得体会
2015/10/09 职场文书
《秋思》教学反思
2016/02/23 职场文书
五年级作文之学校的四季
2019/12/05 职场文书