mirror of
https://github.com/locomotivemtl/locomotive-boilerplate.git
synced 2026-01-15 00:55:08 +08:00
37 lines
734 B
JavaScript
37 lines
734 B
JavaScript
/* jshint esnext: true */
|
|
import { $document, $window, $html, $body } from '../utils/environment';
|
|
|
|
const CALLBACKS = {
|
|
hidden: [],
|
|
visible: []
|
|
};
|
|
|
|
// Main event
|
|
$document.on('visibilitychange', function(event) {
|
|
if(document.hidden){
|
|
onDocumentChange('hidden');
|
|
}else{
|
|
onDocumentChange('visible');
|
|
}
|
|
});
|
|
|
|
function registerDocumentHiddenCallback(callback) {
|
|
CALLBACKS['hidden'].push(callback);
|
|
}
|
|
|
|
function registerDocumentVisibleCallback(callback) {
|
|
CALLBACKS['visible'].push(callback);
|
|
}
|
|
|
|
function onDocumentChange(state) {
|
|
let callbacks = CALLBACKS[state];
|
|
let i = 0;
|
|
let len = callbacks.length;
|
|
|
|
for (; i < len; i++) {
|
|
callbacks[i]();
|
|
}
|
|
}
|
|
|
|
export {registerDocumentHiddenCallback, registerDocumentVisibleCallback};
|