corporate-frontend-mithril
Version:
Corporate frontend MithrilJS modules
51 lines (44 loc) • 1.29 kB
JavaScript
/**
* Images helper class
*/
/**
* get image ratio: width / height
* @param {Object} data - loaded image data object
*/
let getRatio = function(data) {
return data.width / data.height;
};
exports.getRatio = getRatio;
/**
* fixed width, auto height
* @param {Object} data - image data object
* @param {Object} container - dom element
* @param {Boolean} isOriginal - is original image data or not
*/
let getImageCenterParams = function(data, container, isOriginal=false) {
let originParams = data.originParams;
if(isOriginal){
originParams = {
width: data.width,
height: data.height,
ratio: getRatio(data),
};
}
let result = {
originParams: originParams,
ratio: originParams.ratio || getRatio(data),
width: originParams.width || data.width,
height: originParams.height || data.height,
positionX: 0,
positionY: 0,
};
let containerWidth = container.offsetWidth;
if(result.width > containerWidth){
result.width = containerWidth;
result.height = result.width / result.ratio;
} else {
result.positionX = (containerWidth - data.width) / 2;
}
return result;
};
exports.getImageCenterParams = getImageCenterParams;