@sad-systems/frigate-core
Version:
Frontend core library by MrDigger
66 lines (59 loc) • 1.47 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.effectSimpleZoom = effectSimpleZoom;
exports.effectSimpleSlide = effectSimpleSlide;
exports.getEffect = getEffect;
/**
* Functions provide basic animation effects.
*
* @namespace core.scroll
* @class BaseEffects
*/
/**
* Simple zoom effect
*
* @method effectSimpleZoom
*
* @param {Object} element HTML element
* @param {number} value Value in range [0 - 1]
* @param {number} direction Value of the moving direction
*/
function effectSimpleZoom(element, value, direction) {
if (direction > 0) {
var scale = value < 0.9 ? value : 1;
element.style.transform = "scale(".concat(scale, ")");
}
}
/**
* Simple slide effect
*
* @method effectSimpleSlide
*
* @param {Object} element HTML element
* @param {number} value Value in range [0 - 1]
* @param {number} direction Value of the moving direction
*/
function effectSimpleSlide(element, value, direction) {
if (direction > 0) {
var y = element.offsetHeight / 2 * (1 - value) * -direction;
element.style.transform = "translateY(".concat(y, "px)");
}
}
/**
* Effect function factory
*
* @method getEffect
*
* @param name Base animation effect name
*
* @return {effectFunction|effectSimpleZoom} The effect function
*/
function getEffect(name) {
var effects = {
zoom: effectSimpleZoom,
slide: effectSimpleSlide
};
return effects[name] || effectSimpleZoom;
}