Вход Регистрация
Файл: 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();
    };
};
?>
Онлайн: 1
Реклама