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的左右滚动实现代码
Dec 03 Javascript
JavaScript Title、alt提示(Tips)实现源码解读
Dec 12 Javascript
jquery插件制作 表单验证实现代码
Aug 17 Javascript
select、radio表单回显功能实现避免使用jquery载入赋值
Jun 08 Javascript
display和visibility的区别示例介绍
Feb 26 Javascript
jQuery及JS实现循环中暂停的方法
Feb 02 Javascript
正则中的回溯定义与用法分析【JS与java实现】
Dec 27 Javascript
Mongoose学习全面理解(推荐)
Jan 21 Javascript
详解微信小程序调起键盘性能优化
Jul 24 Javascript
javascript中关于类型判断的一些疑惑小结
Oct 14 Javascript
解决layer弹出层自适应页面大小的问题
Sep 16 Javascript
Vue3为什么这么快
Sep 23 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
获取远程文件大小的php函数
2010/01/11 PHP
PHP中$_FILES的使用方法及注意事项说明
2014/02/14 PHP
Twig模板引擎用法入门教程
2016/01/20 PHP
PHP的mysqli_ssl_set()函数讲解
2019/01/23 PHP
PHP7.0连接DB操作实例分析【基于mysqli】
2019/09/26 PHP
用js脚本控制asp.net下treeview的NodeCheck的实现代码
2010/03/02 Javascript
js 函数的副作用分析
2011/08/23 Javascript
jQuery(1.6.3) 中css方法对浮动的实现缺陷分析
2011/09/09 Javascript
鼠标移到导航当前位置的LI变色处于选中状态
2013/08/23 Javascript
jquery获得keycode的示例代码
2013/12/30 Javascript
JS实现仿新浪微博发布内容为空时提示功能代码
2015/08/19 Javascript
vue与vue-i18n结合实现后台数据的多语言切换方法
2018/03/08 Javascript
jQuery pjax 应用简单示例
2018/09/20 jQuery
详解离线安装npm包的几种方法
2018/11/25 Javascript
VUE UPLOAD 通过ACTION返回上传结果操作
2020/09/07 Javascript
[31:47]夜魇凡尔赛茶话会 第三期01:选手知多少
2021/03/11 DOTA
使用Python发送各种形式的邮件的方法汇总
2015/11/09 Python
在Windows系统上搭建Nginx+Python+MySQL环境的教程
2015/12/25 Python
Pycharm学习教程(1) 定制外观
2017/05/02 Python
CSS3实现多样的边框效果
2018/05/04 HTML / CSS
Canvas globalCompositeOperation
2018/12/18 HTML / CSS
介绍一下EJB的体系结构
2012/08/01 面试题
AJax面试题
2014/11/25 面试题
学生的自我鉴定范文
2013/10/24 职场文书
法人授权委托书范本
2014/04/04 职场文书
大学生党员自我评价范文
2014/04/09 职场文书
父母寄语大全
2014/04/12 职场文书
室内设计专业自荐信
2014/05/31 职场文书
大学生翘课检讨书范文
2014/10/06 职场文书
2014年创先争优工作总结
2014/12/11 职场文书
2014年精神文明工作总结
2014/12/23 职场文书
写给导师的自荐信
2015/03/06 职场文书
学校后勤工作总结2015
2015/05/15 职场文书
阿凡达观后感
2015/06/10 职场文书
生日宴会家属答谢词
2015/09/29 职场文书
MySQL批量更新不同表中的数据
2022/05/11 MySQL