/
scroll.js
36 lines (32 loc) · 989 Bytes
/
scroll.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
/**
* Copyright 2015, Yahoo Inc.
* Copyrights licensed under the New BSD License. See the accompanying LICENSE file for terms.
*/
/*global window, require */
/*jslint nomen: true*/
var eventEmitter = require('./EventEmitter');
(function () {
'use strict';
var handleEvent;
var sendEvent;
var deferTimer;
var THROTTLE = 500;
sendEvent = function (eventName) {
eventEmitter.emit(eventName);
};
handleEvent = function (e) {
if (deferTimer) {
window.clearTimeout(deferTimer);
}
deferTimer = window.setTimeout(sendEvent.bind(this, e.type), THROTTLE);
};
if (typeof window !== 'undefined') {
if (window.addEventListener) {
window.addEventListener('scroll', handleEvent);
window.addEventListener('resize', handleEvent);
} else {
window.attachEvent('onscroll', handleEvent);
window.attachEvent('onresize', handleEvent);
}
}
}());