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与Image加载事件(onload)、加载状态(complete)
Feb 14 Javascript
淘宝搜索框效果实现分析
Mar 05 Javascript
工作需要写的一个js拖拽组件
Jul 28 Javascript
javascript读取xml实现javascript分页
Dec 13 Javascript
jQuery过滤选择器用法分析
Feb 10 Javascript
jQuery实现的背景动态变化导航菜单效果
Aug 24 Javascript
JavaScript实现父子dom同时绑定两个点击事件,一个用捕获,一个用冒泡时执行顺序的方法
Mar 30 Javascript
《javascript少儿编程》location术语总结
May 27 Javascript
js计时事件实现圆形时钟
Mar 25 Javascript
浅谈webpack构建工具配置和常用插件总结
May 11 Javascript
Angular短信模板校验代码
Sep 23 Javascript
Antd中单个DatePicker限定时间输入范围操作
Oct 29 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
DOTA2 探索永无止境 玩家自创强悍插眼攻略
2020/04/20 DOTA
php中通过smtp发邮件的类,测试通过
2007/01/22 PHP
PHP实现将几张照片拼接到一起的合成图片功能【便于整体打印输出】
2017/11/14 PHP
jQuery 数据缓存data(name, value)详解及实现
2010/01/04 Javascript
javascript 事件查询综合 推荐收藏
2010/03/10 Javascript
JS 去前后空格大全(IE9亲测)
2013/07/15 Javascript
JS字符串处理实例代码
2013/08/05 Javascript
javascript中String对象的slice()方法分析
2014/12/20 Javascript
原生Js实现简易烟花爆炸效果的方法
2015/03/20 Javascript
JavaScript类的写法
2016/09/17 Javascript
Vue.js实现多条件筛选、搜索、排序及分页的表格功能
2020/11/24 Javascript
JavaScript中使用webuploader实现上传视频功能(demo)
2017/04/10 Javascript
Angular 4依赖注入学习教程之Injectable装饰器(六)
2017/06/04 Javascript
微信小程序实现点击按钮修改view标签背景颜色功能示例【附demo源码下载】
2017/12/06 Javascript
jquery在启动页面时,自动加载数据的实例
2018/01/22 jQuery
redux-saga 初识和使用
2018/03/10 Javascript
在vue+element ui框架里实现lodash的debounce防抖
2019/11/13 Javascript
Nodejs使用archiver-zip-encrypted库加密压缩文件时报错(解决方案)
2019/11/18 NodeJs
Vue 中如何将函数作为 props 传递给组件的实现代码
2020/05/12 Javascript
Vue 实现v-for循环的时候更改 class的样式名称
2020/07/17 Javascript
Python中使用语句导入模块或包的机制研究
2015/03/30 Python
python sqlite的Row对象操作示例
2019/09/11 Python
Python连接字符串过程详解
2020/01/06 Python
python 解决pycharm运行py文件只有unittest选项的问题
2020/09/01 Python
Python 使用Opencv实现目标检测与识别的示例代码
2020/09/08 Python
CSS3 transforms应用于背景图像的解决方法
2019/04/16 HTML / CSS
深入浅析CSS3中的Flex布局整理
2020/04/27 HTML / CSS
html5实现多文件的上传示例代码
2014/02/13 HTML / CSS
HTML5之语义标签介绍
2016/07/07 HTML / CSS
Jimmy Choo美国官网:周仰杰鞋子品牌
2018/06/08 全球购物
英国设计师泳装、沙滩装和比基尼在线精品店:Beach Cafe
2019/08/28 全球购物
Crabtree & Evelyn欧盟:豪华洗浴、身体和护发
2021/03/09 全球购物
物流专员岗位职责
2014/02/17 职场文书
检查接待方案
2014/02/27 职场文书
跳蚤市场口号
2014/06/13 职场文书
关于的python五子棋的算法
2022/05/02 Python