Файл: src/javascript/core/-scale.js
Строк: 60
<?php
module.exports = function (options) {
return function (slider) {
var parent = slider.parent,
firstSlide = slider.slides[0],
slideHeight = firstSlide.offsetHeight,
slideWidth = firstSlide.offsetWidth,
useZoom = options === 'zoom' || ('zoom' in parent.style && options !== 'transform'),
wrap = function (element) {
var wrapper = document.createElement('div');
wrapper.className = 'bespoke-scale-parent';
element.parentNode.insertBefore(wrapper, element);
wrapper.appendChild(element);
return wrapper;
},
elements = useZoom ? slider.slides : slider.slides.map(wrap),
transformProperty = (function (property) {
return ['Moz', 'Webkit', 'O', 'ms'].reduce(function (currentProperty, prefix) {
return prefix + property in parent.style ? prefix + property : currentProperty;
}, property.toLowerCase());
})('Transform'),
scale = useZoom ? function (ratio, element) {
element.style.zoom = ratio;
} : function (ratio, element) {
element.style[transformProperty] = 'scale(' + ratio + ')';
},
scaleAll = function () {
var xScale = parent.offsetWidth / slideWidth,
yScale = parent.offsetHeight / slideHeight;
elements.forEach(scale.bind(null, Math.min(xScale, yScale)));
};
window.addEventListener('resize', scaleAll);
scaleAll();
};
};
?>