baseframe-js
Version:
A suite of useful Javascript plugins and functions to help with Front-end Development on websites
25 lines (24 loc) • 699 B
JavaScript
const ensureTransitionDelay = 100;
const transition = () => {
let inTransition = false;
let sto = null;
let eto = null;
let currEndTransitionFn = () => { };
return (startFn, endFn, duration = 300) => {
if (inTransition) {
currEndTransitionFn();
clearTimeout(sto);
clearTimeout(eto);
}
sto = setTimeout(() => {
startFn();
}, ensureTransitionDelay);
currEndTransitionFn = endFn;
inTransition = true;
eto = setTimeout(() => {
currEndTransitionFn();
inTransition = false;
}, duration + ensureTransitionDelay);
};
};
export default transition;