鸦杀's Blog

鼠标滚动距离兼容

2016-06-24

这是在做视差滚动改版需求的时候整理的,这里用useragent做浏览器检测。firefox滚轮的事件是DOMMouseScroll,而其它浏览器用的是mousewheel。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
var mouseEvent = 'mousewheel',  
isFF = navigator.userAgent.toLowerCase().indexOf("firefox") !== -1;

if(isFF){
mouseEvent = DOMMouseScroll;
}

$(document).on(mouseEvent,function(e){
var type=e.type,
oe=e.originalEvent,
dir=null;

if(type==='DOMMouseScroll' || type==='mousewheel'){
//滚动距离
//在非firefox浏览器中,是wheelDelta,它总是返回120的倍数,如果为正表示向上,反之向下。
//而在firefox中,是detail,它总是返回3的倍数。如果为正表示向下,反之向上
dir = (oe.wheelDelta) ? oe.wheelDelta / 120 : -(oe.detail || 0) / 3;
}

if(dir>0){//向上
//...
}
});
Tags: dom

扫描二维码,分享此文章