2015-11-21 16:26:17 +03:00
|
|
|
export default {
|
2015-09-06 20:29:51 +03:00
|
|
|
getMousePosition (event) {
|
|
|
|
return {
|
2016-06-02 20:26:04 +03:00
|
|
|
x: event.pageX - (window.scrollX || window.pageXOffset),
|
2016-06-02 20:40:38 +03:00
|
|
|
y: event.pageY - (window.scrollY || window.pageYOffset)
|
2015-09-06 20:29:51 +03:00
|
|
|
};
|
|
|
|
},
|
|
|
|
|
|
|
|
getTouchPosition (event) {
|
|
|
|
return {
|
2016-06-02 20:26:04 +03:00
|
|
|
x: event.touches[0].pageX - (window.scrollX || window.pageXOffset),
|
2016-06-02 20:40:38 +03:00
|
|
|
y: event.touches[0].pageY - (window.scrollY || window.pageYOffset)
|
2015-09-06 20:29:51 +03:00
|
|
|
};
|
|
|
|
},
|
|
|
|
|
|
|
|
pauseEvent (event) {
|
|
|
|
event.stopPropagation();
|
|
|
|
event.preventDefault();
|
|
|
|
},
|
|
|
|
|
|
|
|
addEventsToDocument (eventMap) {
|
2015-10-23 11:11:40 +03:00
|
|
|
for (const key in eventMap) {
|
2015-09-06 20:29:51 +03:00
|
|
|
document.addEventListener(key, eventMap[key], false);
|
|
|
|
}
|
|
|
|
},
|
|
|
|
|
|
|
|
removeEventsFromDocument (eventMap) {
|
2015-10-23 11:11:40 +03:00
|
|
|
for (const key in eventMap) {
|
2015-09-06 20:29:51 +03:00
|
|
|
document.removeEventListener(key, eventMap[key], false);
|
|
|
|
}
|
2015-10-17 22:20:15 +03:00
|
|
|
},
|
|
|
|
|
|
|
|
targetIsDescendant (event, parent) {
|
|
|
|
let node = event.target;
|
|
|
|
while (node !== null) {
|
|
|
|
if (node === parent) return true;
|
|
|
|
node = node.parentNode;
|
|
|
|
}
|
|
|
|
return false;
|
2016-04-12 22:41:28 +03:00
|
|
|
},
|
|
|
|
|
|
|
|
addEventListenerOnTransitionEnded (element, fn) {
|
|
|
|
const eventName = transitionEventNamesFor(element);
|
|
|
|
if (!eventName) return false;
|
|
|
|
element.addEventListener(eventName, fn);
|
|
|
|
return true;
|
|
|
|
},
|
|
|
|
|
2016-08-06 15:24:40 +03:00
|
|
|
removeEventListenerOnTransitionEnded (element, fn) {
|
2016-04-12 22:41:28 +03:00
|
|
|
const eventName = transitionEventNamesFor(element);
|
|
|
|
if (!eventName) return false;
|
2016-08-06 15:24:40 +03:00
|
|
|
element.removeEventListener(eventName, fn);
|
2016-04-12 22:41:28 +03:00
|
|
|
return true;
|
2015-10-23 19:30:37 +03:00
|
|
|
}
|
2015-09-05 03:03:32 +03:00
|
|
|
};
|
2016-04-12 22:41:28 +03:00
|
|
|
|
|
|
|
const TRANSITIONS = {
|
|
|
|
'transition': 'transitionend',
|
|
|
|
'OTransition': 'oTransitionEnd',
|
|
|
|
'MozTransition': 'transitionend',
|
|
|
|
'WebkitTransition': 'webkitTransitionEnd'
|
|
|
|
};
|
|
|
|
|
|
|
|
function transitionEventNamesFor (element) {
|
|
|
|
for (const transition in TRANSITIONS) {
|
|
|
|
if (element.style[transition] !== undefined) {
|
|
|
|
return TRANSITIONS[transition];
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|