/* * Swiper 3D Flow 2.1.0 * 3D Flow plugin for Swiper * * http://www.idangero.us/sliders/swiper/plugins/3dflow.php * * Copyright 2010-2014, Vladimir Kharlampidi * The iDangero.us * http://www.idangero.us/ * * Licensed under GPL & MIT * * Released on: January 28, 2014 */ Swiper.prototype.plugins.tdFlow = function(swiper, params) { if (!swiper.support.transforms3d) return; var slides, wrapperSize, slideSize, initialized; var isH = swiper.params.mode == 'horizontal'; if(!params) return; /*========================= Default Parameters ===========================*/ var defaults = { rotate : 50, stretch :0, depth: 100, modifier : 1, shadows : true } params = params || {}; for (var prop in defaults) { if (! (prop in params)) { params[prop] = defaults[prop] } } function init() { initialized = true; slides = swiper.slides for (var i=0; i0 ? (-offsetMultiplier) : 0; shadowBefore.style.opacity = offsetMultiplier>0 ? offsetMultiplier : 0; } } //Set correct perspective for IE10 if (swiper.browser.ie10 || swiper.browser.ie11) { var ws = swiper.wrapper.style; ws.perspectiveOrigin = center+'px 50%' } } //Plugin Hooks var hooks = { onFirstInit : function(args){ slides = swiper.slides; if (params.shadows) { //Add Shadows var shadowEl1 = document.createElement('div') var shadowEl2 = document.createElement('div') shadowEl1.className = isH ? 'swiper-slide-shadow-left' : 'swiper-slide-shadow-top' shadowEl2.className = isH ? 'swiper-slide-shadow-right' : 'swiper-slide-shadow-bottom' for (var i=0; i<slides.length; i++) { slides[i].appendChild(shadowEl1.cloneNode()) slides[i].appendChild(shadowEl2.cloneNode()) } } //Update Dimensions init(); //Set in 3D threeDSlides({x:swiper.getWrapperTranslate('x'), y:swiper.getWrapperTranslate('y'), z:swiper.getWrapperTranslate('z')}); }, onInit : function(args) { init(); //Set in 3D threeDSlides({x:swiper.getWrapperTranslate('x'), y:swiper.getWrapperTranslate('y'), z:swiper.getWrapperTranslate('z')}); }, onSetWrapperTransform: function(transform){ threeDSlides(transform); }, onSetWrapperTransition: function(args){ for (var i=0; i<swiper.slides.length; i++) { swiper.setTransition(swiper.slides[i], args.duration) if (isH && params.shadows) { swiper.setTransition(swiper.slides[i].querySelector('.swiper-slide-shadow-left'), args.duration) swiper.setTransition(swiper.slides[i].querySelector('.swiper-slide-shadow-right'), args.duration) } else if(params.shadows) { swiper.setTransition(swiper.slides[i].querySelector('.swiper-slide-shadow-top'), args.duration) swiper.setTransition(swiper.slides[i].querySelector('.swiper-slide-shadow-bottom'), args.duration) } } } } return hooks }