-
Notifications
You must be signed in to change notification settings - Fork 241
/
scrollListener.js
42 lines (36 loc) · 1.5 KB
/
scrollListener.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
37
38
39
40
41
42
function adjustPlayer() {
var p1Container = $('#player-container-1');
var p2Container = $('#player-container-2');
// extract constants for better readabilty
var p1LowerEdge = p1Container.offset().top + p1Container.height();
var p1SwitchToMinPlayerPos = p1LowerEdge - (window.innerHeight / 3) - 100;
var p1SwitchToMaxPlayerPos = p1Container.offset().top - 400;
var p2LowerEdge = p2Container.offset().top + p2Container.height();
var p2SwitchToMinPlayerPos = p2LowerEdge - (window.innerHeight / 3) - 100;
var p2SwitchToMaxPlayerPos = p2Container.offset().top - 400;
var currentScrollPos = document.body.scrollTop || document.documentElement.scrollTop;
p1Timeout = setTimeout(function () {
if (currentScrollPos <= p1SwitchToMinPlayerPos && currentScrollPos >= p1SwitchToMaxPlayerPos) {
clearTimeout(p1Timeout);
p1Timeout = undefined;
player1.unmute();
} else {
clearTimeout(p1Timeout);
p1Timeout = undefined;
player1.mute();
};
}, 300);
p2Timeout = setTimeout(function () {
if (currentScrollPos <= p2SwitchToMinPlayerPos && currentScrollPos >= p2SwitchToMaxPlayerPos) {
clearTimeout(p2Timeout);
p2Timeout = undefined;
player2.unmute();
} else {
clearTimeout(p2Timeout);
p2Timeout = undefined;
player2.mute();
};
}, 300);
};
// listen to scrolling events
window.onscroll = adjustPlayer;