From 052980d0ea5bc98264e0926157d886f21f4ec697 Mon Sep 17 00:00:00 2001 From: magicbruno Date: Sat, 21 Jan 2017 18:41:08 +0100 Subject: [PATCH 1/6] mbSlider 1.0 --- Gruntfile.js | 28 +- dist/jquery.bxslider.css | 2157 ++++++++++++++++- dist/jquery.bxslider.js | 1150 +++++---- dist/jquery.bxslider.min.css | 8 +- dist/jquery.bxslider.min.js | 4 +- docs_src/assets/img/LogoWinstrap.png | Bin 0 -> 18224 bytes docs_src/assets/img/LogoWinstrap_dark.png | Bin 0 -> 18196 bytes docs_src/assets/js/app.js | 488 ++-- docs_src/templates/partials/head.hbs | 21 +- docs_src/templates/partials/home-carousel.hbs | 31 +- npm-debug.log | 110 + src/config.rb | 28 + src/css/animate_custom.css | 2145 ++++++++++++++++ src/css/jquery.bxslider.css | 9 +- src/js/.jshintrc | 5 +- src/js/jquery.bxslider.js | 1148 +++++---- src/less/jquery.bxslider.less | 320 +-- src/sass/_animate.scss | 98 + src/sass/animate_custom.scss | 112 + .../animations/attention-seekers/_bounce.scss | 19 + .../animations/attention-seekers/_flash.scss | 12 + .../animations/attention-seekers/_pulse.scss | 21 + .../animations/attention-seekers/_shake.scss | 18 + .../animations/attention-seekers/_swing.scss | 25 + .../animations/attention-seekers/_tada.scss | 23 + .../animations/attention-seekers/_wiggle.scss | 36 + .../animations/attention-seekers/_wobble.scss | 29 + .../animations/bounce-enter/_bounceIn.scss | 47 + .../bounce-enter/_bounceInDown.scss | 47 + .../bounce-enter/_bounceInLeft.scss | 47 + .../bounce-enter/_bounceInRight.scss | 47 + .../animations/bounce-enter/_bounceInUp.scss | 47 + .../animations/bounce-exit/_bounceOut.scss | 47 + .../bounce-exit/_bounceOutDown.scss | 39 + .../bounce-exit/_bounceOutLeft.scss | 39 + .../bounce-exit/_bounceOutRight.scss | 39 + .../animations/bounce-exit/_bounceOutUp.scss | 39 + src/sass/animations/fade-enter/_fadeIn.scss | 12 + .../animations/fade-enter/_fadeInDown.scss | 31 + .../animations/fade-enter/_fadeInDownBig.scss | 30 + .../animations/fade-enter/_fadeInLeft.scss | 31 + .../animations/fade-enter/_fadeInLeftBig.scss | 31 + .../animations/fade-enter/_fadeInRight.scss | 30 + .../fade-enter/_fadeInRightBig.scss | 30 + src/sass/animations/fade-enter/_fadeInUp.scss | 31 + .../animations/fade-enter/_fadeInUpBig.scss | 31 + src/sass/animations/fade-exit/_fadeOut.scss | 12 + .../animations/fade-exit/_fadeOutDown.scss | 30 + .../animations/fade-exit/_fadeOutDownBig.scss | 30 + .../animations/fade-exit/_fadeOutLeft.scss | 31 + .../animations/fade-exit/_fadeOutLeftBig.scss | 31 + .../animations/fade-exit/_fadeOutRight.scss | 30 + .../fade-exit/_fadeOutRightBig.scss | 30 + src/sass/animations/fade-exit/_fadeOutUp.scss | 31 + .../animations/fade-exit/_fadeOutUpBig.scss | 31 + src/sass/animations/flippers/_flip.scss | 55 + src/sass/animations/flippers/_flipInX.scss | 48 + src/sass/animations/flippers/_flipInY.scss | 48 + src/sass/animations/flippers/_flipOutX.scss | 30 + src/sass/animations/flippers/_flipOutY.scss | 29 + .../animations/lightspeed/_lightSpeedIn.scss | 22 + .../animations/lightspeed/_lightSpeedOut.scss | 17 + .../animations/rotate-enter/_rotateIn.scss | 35 + .../rotate-enter/_rotateInDownLeft.scss | 35 + .../rotate-enter/_rotateInDownRight.scss | 35 + .../rotate-enter/_rotateInUpLeft.scss | 35 + .../rotate-enter/_rotateInUpRight.scss | 35 + .../animations/rotate-exit/_rotateOut.scss | 35 + .../rotate-exit/_rotateOutDownLeft.scss | 34 + .../rotate-exit/_rotateOutDownRight.scss | 34 + .../rotate-exit/_rotateOutUpLeft.scss | 35 + .../rotate-exit/_rotateOutUpRight.scss | 34 + .../animations/slide-enter/_slideInDown.scss | 29 + .../animations/slide-enter/_slideInLeft.scss | 29 + .../animations/slide-enter/_slideInRight.scss | 29 + .../animations/slide-enter/_slideInUp.scss | 29 + .../animations/slide-exit/_slideOutDown.scss | 29 + .../animations/slide-exit/_slideOutLeft.scss | 29 + .../animations/slide-exit/_slideOutRight.scss | 29 + .../animations/slide-exit/_slideOutUp.scss | 29 + src/sass/animations/special/_hinge.scss | 22 + src/sass/animations/special/_rollIn.scss | 19 + src/sass/animations/special/_rollOut.scss | 33 + src/sass/animations/zoom-enter/_zoomIn.scss | 28 + .../animations/zoom-enter/_zoomInDown.scss | 31 + .../animations/zoom-enter/_zoomInLeft.scss | 31 + .../animations/zoom-enter/_zoomInRight.scss | 31 + src/sass/animations/zoom-enter/_zoomInUp.scss | 31 + src/sass/animations/zoom-exit/_zoomOut.scss | 32 + .../animations/zoom-exit/_zoomOutDown.scss | 32 + .../animations/zoom-exit/_zoomOutLeft.scss | 30 + .../animations/zoom-exit/_zoomOutRight.scss | 30 + src/sass/animations/zoom-exit/_zoomOutUp.scss | 32 + src/sass/helpers/_base.scss | 79 + src/sass/helpers/_delay.scss | 67 + src/sass/helpers/_mixins.scss | 40 + src/sass/helpers/_settings.scss | 184 ++ 97 files changed, 9137 insertions(+), 1439 deletions(-) create mode 100644 docs_src/assets/img/LogoWinstrap.png create mode 100644 docs_src/assets/img/LogoWinstrap_dark.png create mode 100644 npm-debug.log create mode 100644 src/config.rb create mode 100644 src/css/animate_custom.css create mode 100644 src/sass/_animate.scss create mode 100644 src/sass/animate_custom.scss create mode 100644 src/sass/animations/attention-seekers/_bounce.scss create mode 100644 src/sass/animations/attention-seekers/_flash.scss create mode 100644 src/sass/animations/attention-seekers/_pulse.scss create mode 100644 src/sass/animations/attention-seekers/_shake.scss create mode 100644 src/sass/animations/attention-seekers/_swing.scss create mode 100644 src/sass/animations/attention-seekers/_tada.scss create mode 100644 src/sass/animations/attention-seekers/_wiggle.scss create mode 100644 src/sass/animations/attention-seekers/_wobble.scss create mode 100644 src/sass/animations/bounce-enter/_bounceIn.scss create mode 100644 src/sass/animations/bounce-enter/_bounceInDown.scss create mode 100644 src/sass/animations/bounce-enter/_bounceInLeft.scss create mode 100644 src/sass/animations/bounce-enter/_bounceInRight.scss create mode 100644 src/sass/animations/bounce-enter/_bounceInUp.scss create mode 100644 src/sass/animations/bounce-exit/_bounceOut.scss create mode 100644 src/sass/animations/bounce-exit/_bounceOutDown.scss create mode 100644 src/sass/animations/bounce-exit/_bounceOutLeft.scss create mode 100644 src/sass/animations/bounce-exit/_bounceOutRight.scss create mode 100644 src/sass/animations/bounce-exit/_bounceOutUp.scss create mode 100644 src/sass/animations/fade-enter/_fadeIn.scss create mode 100644 src/sass/animations/fade-enter/_fadeInDown.scss create mode 100644 src/sass/animations/fade-enter/_fadeInDownBig.scss create mode 100644 src/sass/animations/fade-enter/_fadeInLeft.scss create mode 100644 src/sass/animations/fade-enter/_fadeInLeftBig.scss create mode 100644 src/sass/animations/fade-enter/_fadeInRight.scss create mode 100644 src/sass/animations/fade-enter/_fadeInRightBig.scss create mode 100644 src/sass/animations/fade-enter/_fadeInUp.scss create mode 100644 src/sass/animations/fade-enter/_fadeInUpBig.scss create mode 100644 src/sass/animations/fade-exit/_fadeOut.scss create mode 100644 src/sass/animations/fade-exit/_fadeOutDown.scss create mode 100644 src/sass/animations/fade-exit/_fadeOutDownBig.scss create mode 100644 src/sass/animations/fade-exit/_fadeOutLeft.scss create mode 100644 src/sass/animations/fade-exit/_fadeOutLeftBig.scss create mode 100644 src/sass/animations/fade-exit/_fadeOutRight.scss create mode 100644 src/sass/animations/fade-exit/_fadeOutRightBig.scss create mode 100644 src/sass/animations/fade-exit/_fadeOutUp.scss create mode 100644 src/sass/animations/fade-exit/_fadeOutUpBig.scss create mode 100644 src/sass/animations/flippers/_flip.scss create mode 100644 src/sass/animations/flippers/_flipInX.scss create mode 100644 src/sass/animations/flippers/_flipInY.scss create mode 100644 src/sass/animations/flippers/_flipOutX.scss create mode 100644 src/sass/animations/flippers/_flipOutY.scss create mode 100644 src/sass/animations/lightspeed/_lightSpeedIn.scss create mode 100644 src/sass/animations/lightspeed/_lightSpeedOut.scss create mode 100644 src/sass/animations/rotate-enter/_rotateIn.scss create mode 100644 src/sass/animations/rotate-enter/_rotateInDownLeft.scss create mode 100644 src/sass/animations/rotate-enter/_rotateInDownRight.scss create mode 100644 src/sass/animations/rotate-enter/_rotateInUpLeft.scss create mode 100644 src/sass/animations/rotate-enter/_rotateInUpRight.scss create mode 100644 src/sass/animations/rotate-exit/_rotateOut.scss create mode 100644 src/sass/animations/rotate-exit/_rotateOutDownLeft.scss create mode 100644 src/sass/animations/rotate-exit/_rotateOutDownRight.scss create mode 100644 src/sass/animations/rotate-exit/_rotateOutUpLeft.scss create mode 100644 src/sass/animations/rotate-exit/_rotateOutUpRight.scss create mode 100644 src/sass/animations/slide-enter/_slideInDown.scss create mode 100644 src/sass/animations/slide-enter/_slideInLeft.scss create mode 100644 src/sass/animations/slide-enter/_slideInRight.scss create mode 100644 src/sass/animations/slide-enter/_slideInUp.scss create mode 100644 src/sass/animations/slide-exit/_slideOutDown.scss create mode 100644 src/sass/animations/slide-exit/_slideOutLeft.scss create mode 100644 src/sass/animations/slide-exit/_slideOutRight.scss create mode 100644 src/sass/animations/slide-exit/_slideOutUp.scss create mode 100644 src/sass/animations/special/_hinge.scss create mode 100644 src/sass/animations/special/_rollIn.scss create mode 100644 src/sass/animations/special/_rollOut.scss create mode 100644 src/sass/animations/zoom-enter/_zoomIn.scss create mode 100644 src/sass/animations/zoom-enter/_zoomInDown.scss create mode 100644 src/sass/animations/zoom-enter/_zoomInLeft.scss create mode 100644 src/sass/animations/zoom-enter/_zoomInRight.scss create mode 100644 src/sass/animations/zoom-enter/_zoomInUp.scss create mode 100644 src/sass/animations/zoom-exit/_zoomOut.scss create mode 100644 src/sass/animations/zoom-exit/_zoomOutDown.scss create mode 100644 src/sass/animations/zoom-exit/_zoomOutLeft.scss create mode 100644 src/sass/animations/zoom-exit/_zoomOutRight.scss create mode 100644 src/sass/animations/zoom-exit/_zoomOutUp.scss create mode 100644 src/sass/helpers/_base.scss create mode 100644 src/sass/helpers/_delay.scss create mode 100644 src/sass/helpers/_mixins.scss create mode 100644 src/sass/helpers/_settings.scss diff --git a/Gruntfile.js b/Gruntfile.js index 03d77c0b..b218004d 100644 --- a/Gruntfile.js +++ b/Gruntfile.js @@ -29,7 +29,8 @@ module.exports = function(grunt) { production: false, assets: '<%= app.docs.dest %>/assets', postprocess: require('pretty'), - mybaseDir: path.resolve('<%= app.docs.dest %>'), + // mybaseDir: path.resolve('<%= app.docs.dest %>'), + mybaseDir: '/<%= app.docs.dest %>', // metadata pkg: '<%= pkg %>', @@ -160,7 +161,8 @@ module.exports = function(grunt) { // jshint jshint: { options: { - jshintrc: 'src/js/.jshintrc' + jshintrc: 'src/js/.jshintrc', + reporterOutput: "" }, dist: { src: ['<%= app.src.scripts %>', 'Gruntfile.js'] @@ -168,16 +170,16 @@ module.exports = function(grunt) { }, //jscs - jscs: { - options: { - config: 'src/js/.jscsrc', - reporter: 'text.js', - reporterOutput: 'jscs.report.txt' - }, - dist: { - src: ['<%= app.src.scripts %>', 'Gruntfile.js'] - } - }, +// jscs: { +// options: { +// config: 'src/js/.jscsrc', +// reporter: 'text.js', +// reporterOutput: 'jscs.report.txt' +// }, +// dist: { +// src: ['<%= app.src.scripts %>', 'Gruntfile.js'] +// } +// }, // uglify uglify: { @@ -313,7 +315,7 @@ module.exports = function(grunt) { grunt.loadNpmTasks('assemble'); // tasks - grunt.registerTask('dist', ['clean:dist', 'less:dist', 'jshint:dist', 'concat:dist', 'cssmin:dist', 'copy:distImages', 'copy:distVendor', 'jscs:dist', 'uglify:dist', 'copy:readme']); + grunt.registerTask('dist', ['clean:dist', 'less:dist', 'jshint:dist', 'concat:dist', 'cssmin:dist', 'copy:distImages', 'copy:distVendor', /*'jscs:dist',*/ 'uglify:dist', 'copy:readme']); grunt.registerTask('docs', ['clean:docs', 'assemble', 'less:docs', 'concat:docs', 'copy:docsAssets', 'copy:docsHighlightAssets', 'copy:distToDocs']); diff --git a/dist/jquery.bxslider.css b/dist/jquery.bxslider.css index ca610490..b44118ae 100644 --- a/dist/jquery.bxslider.css +++ b/dist/jquery.bxslider.css @@ -1,11 +1,2157 @@ /** * bxSlider v4.2.5 - * Copyright 2013-2015 Steven Wanderski + * Copyright 2013-2017 Steven Wanderski * Written while drinking Belgian ales and listening to jazz * Licensed under MIT (http://opensource.org/licenses/MIT) */ +/*! +Animate.css - http://daneden.me/animate +Licensed under the MIT license - http://opensource.org/licenses/MIT +Copyright (c) 2015 Daniel Eden +*/ +/* line 9, ../sass/helpers/_base.scss */ +body { + -webkit-backface-visibility: hidden; +} + +/* line 13, ../sass/helpers/_base.scss */ +.animated { + -webkit-animation-duration: 1s; + animation-duration: 1s; + -webkit-animation-fill-mode: both; + animation-fill-mode: both; +} +/* line 16, ../sass/helpers/_base.scss */ +.animated.infinite { + animation-iteration-count: infinite; +} +/* line 19, ../sass/helpers/_base.scss */ +.animated.hinge { + -webkit-animation-duration: 2s; + animation-duration: 2s; +} +/* line 22, ../sass/helpers/_base.scss */ +.animated.bounceIn, .animated.bounceOut { + -webkit-animation-duration: 0.75s; + animation-duration: 0.75s; +} +/* line 26, ../sass/helpers/_base.scss */ +.animated.flipOutX, .animated.flipOutY { + -webkit-animation-duration: 0.75s; + animation-duration: 0.75s; +} + +/* line 34, ../sass/helpers/_base.scss */ +.in .animated.fast, .in .animated.fastIn { + -webkit-animation-duration: 0.5s; + animation-duration: 0.5s; +} +/* line 38, ../sass/helpers/_base.scss */ +.in .animated.slow, .in .animated.slowIn { + -webkit-animation-duration: 1.5s; + animation-duration: 1.5s; +} +/* line 42, ../sass/helpers/_base.scss */ +.in .animated.xslow, .in .animated.xslowIn { + -webkit-animation-duration: 2.5s; + animation-duration: 2.5s; +} +/* line 47, ../sass/helpers/_base.scss */ +.in .animated.hinge.fast, .in .animated.hinge.fastIn { + -webkit-animation-duration: 1s; + animation-duration: 1s; +} +/* line 51, ../sass/helpers/_base.scss */ +.in .animated.hinge.slow, .in .animated.hinge.slowIn { + -webkit-animation-duration: 3s; + animation-duration: 3s; +} + +/* line 61, ../sass/helpers/_base.scss */ +.out .animated.fastOut { + -webkit-animation-duration: 0.5s; + animation-duration: 0.5s; +} +/* line 64, ../sass/helpers/_base.scss */ +.out .animated.slowOut { + -webkit-animation-duration: 1.5s; + animation-duration: 1.5s; +} +/* line 67, ../sass/helpers/_base.scss */ +.out .animated.xslowOut { + -webkit-animation-duration: 2.5s; + animation-duration: 2.5s; +} +/* line 71, ../sass/helpers/_base.scss */ +.out .animated.hinge.fastOut { + -webkit-animation-duration: 1s; + animation-duration: 1s; +} +/* line 74, ../sass/helpers/_base.scss */ +.out .animated.hinge.slowOut { + -webkit-animation-duration: 3s; + animation-duration: 3s; +} + +/* line 1, ../sass/helpers/_delay.scss */ +.in .animated { + -webkit-animation-delay: 0.5s; + animation-delay: 0.5s; +} +/* line 3, ../sass/helpers/_delay.scss */ +.in .animated.delay500, .in .animated.delayIn500 { + -webkit-animation-delay: 1s; + animation-delay: 1s; +} +/* line 6, ../sass/helpers/_delay.scss */ +.in .animated.delay1, .in .animated.delay1000, .in .animated.delayIn1000 { + -webkit-animation-delay: 1.5s; + animation-delay: 1.5s; +} +/* line 9, ../sass/helpers/_delay.scss */ +.in .animated.delay1500, .in .animated.delayIn1500 { + -webkit-animation-delay: 2s; + animation-delay: 2s; +} +/* line 12, ../sass/helpers/_delay.scss */ +.in .animated.delay2, .in .animated.delay2000, .in .animated.delayIn2000 { + -webkit-animation-delay: 2.5s; + animation-delay: 2.5s; +} +/* line 15, ../sass/helpers/_delay.scss */ +.in .animated.delay2500, .in .animated.delayIn2500 { + -webkit-animation-delay: 3s; + animation-delay: 3s; +} +/* line 18, ../sass/helpers/_delay.scss */ +.in .animated.delay3, .in .animated.delay3000, .in .animated.delayIn3000 { + -webkit-animation-delay: 3.5s; + animation-delay: 3.5s; +} +/* line 21, ../sass/helpers/_delay.scss */ +.in .animated.delay3500, .in .animated.delayIn3500 { + -webkit-animation-delay: 4s; + animation-delay: 4s; +} +/* line 24, ../sass/helpers/_delay.scss */ +.in .animated.delay4, .in .animated.delay4000, .in .animated.delayIn4000 { + -webkit-animation-delay: 4.5s; + animation-delay: 4.5s; +} +/* line 27, ../sass/helpers/_delay.scss */ +.in .animated.delay4500, .in .animated.delayIn4500 { + -webkit-animation-delay: 5s; + animation-delay: 5s; +} +/* line 30, ../sass/helpers/_delay.scss */ +.in .animated.delay5, .in .animateddelay5000, .in .animateddelayIn5000 { + -webkit-animation-delay: 5.5s; + animation-delay: 5.5s; +} + +/* line 37, ../sass/helpers/_delay.scss */ +.out .animated.delayOut500 { + -webkit-animation-delay: 1s; + animation-delay: 1s; +} +/* line 40, ../sass/helpers/_delay.scss */ +.out .animated.delayOut1000 { + -webkit-animation-delay: 1.5s; + animation-delay: 1.5s; +} +/* line 43, ../sass/helpers/_delay.scss */ +.out .animated.delayOut1500 { + -webkit-animation-delay: 2s; + animation-delay: 2s; +} +/* line 46, ../sass/helpers/_delay.scss */ +.out .animated.delayOut2000 { + -webkit-animation-delay: 2.5s; + animation-delay: 2.5s; +} +/* line 49, ../sass/helpers/_delay.scss */ +.out .animated.delayOut2500 { + -webkit-animation-delay: 3s; + animation-delay: 3s; +} +/* line 52, ../sass/helpers/_delay.scss */ +.out .animated.delayOut3000 { + -webkit-animation-delay: 3.5s; + animation-delay: 3.5s; +} +/* line 55, ../sass/helpers/_delay.scss */ +.out .animated.delayOut3500 { + -webkit-animation-delay: 4s; + animation-delay: 4s; +} +/* line 58, ../sass/helpers/_delay.scss */ +.out .animated.delayOut4000 { + -webkit-animation-delay: 4.5s; + animation-delay: 4.5s; +} +/* line 61, ../sass/helpers/_delay.scss */ +.out .animated.delayOut4500 { + -webkit-animation-delay: 5s; + animation-delay: 5s; +} +/* line 64, ../sass/helpers/_delay.scss */ +.out .animateddelayOut5000 { + -webkit-animation-delay: 5.5s; + animation-delay: 5.5s; +} + +@-webkit-keyframes bounce { + 0%, 20%, 50%, 80%, 100% { + -webkit-transform: translateY(0); + } + 40% { + -webkit-transform: translateY(-30px); + } + 60% { + -webkit-transform: translateY(-15px); + } +} +@keyframes bounce { + 0%, 20%, 50%, 80%, 100% { + transform: translateY(0); + } + 40% { + transform: translateY(-30px); + } + 60% { + transform: translateY(-15px); + } +} +/* line 15, ../sass/animations/attention-seekers/_bounce.scss */ +.bounce { + -webkit-animation-name: bounce; + animation-name: bounce; +} + +@-webkit-keyframes bounceIn { + 0% { + opacity: 0; + -webkit-transform: scale(0.3); + } + 50% { + opacity: 1; + -webkit-transform: scale(1.05); + } + 70% { + -webkit-transform: scale(0.9); + } + 100% { + -webkit-transform: scale(1); + } +} +@keyframes bounceIn { + 0% { + opacity: 0; + transform: scale(0.3); + } + 50% { + opacity: 1; + transform: scale(1.05); + } + 70% { + transform: scale(0.9); + } + 100% { + transform: scale(1); + } +} +/* line 43, ../sass/animations/bounce-enter/_bounceIn.scss */ +.in .bounceIn { + -webkit-animation-name: bounceIn; + animation-name: bounceIn; +} + +@-webkit-keyframes bounceInDown { + 0% { + opacity: 0; + -webkit-transform: translateY(-2000px); + } + 60% { + opacity: 1; + -webkit-transform: translateY(30px); + } + 80% { + -webkit-transform: translateY(-10px); + } + 100% { + -webkit-transform: translateY(0); + } +} +@keyframes bounceInDown { + 0% { + opacity: 0; + transform: translateY(-2000px); + } + 60% { + opacity: 1; + transform: translateY(30px); + } + 80% { + transform: translateY(-10px); + } + 100% { + transform: translateY(0); + } +} +/* line 43, ../sass/animations/bounce-enter/_bounceInDown.scss */ +.in .bounceInDown { + -webkit-animation-name: bounceInDown; + animation-name: bounceInDown; +} + +@-webkit-keyframes bounceInLeft { + 0% { + opacity: 0; + -webkit-transform: translateX(-2000px); + } + 60% { + opacity: 1; + -webkit-transform: translateX(30px); + } + 80% { + -webkit-transform: translateX(-10px); + } + 100% { + -webkit-transform: translateX(0); + } +} +@keyframes bounceInLeft { + 0% { + opacity: 0; + transform: translateX(-2000px); + } + 60% { + opacity: 1; + transform: translateX(30px); + } + 80% { + transform: translateX(-10px); + } + 100% { + transform: translateX(0); + } +} +/* line 43, ../sass/animations/bounce-enter/_bounceInLeft.scss */ +.in .bounceInLeft { + -webkit-animation-name: bounceInLeft; + animation-name: bounceInLeft; +} + +@-webkit-keyframes bounceInRight { + 0% { + opacity: 0; + -webkit-transform: translateX(2000px); + } + 60% { + opacity: 1; + -webkit-transform: translateX(-30px); + } + 80% { + -webkit-transform: translateX(10px); + } + 100% { + -webkit-transform: translateX(0); + } +} +@keyframes bounceInRight { + 0% { + opacity: 0; + transform: translateX(2000px); + } + 60% { + opacity: 1; + transform: translateX(-30px); + } + 80% { + transform: translateX(10px); + } + 100% { + transform: translateX(0); + } +} +/* line 43, ../sass/animations/bounce-enter/_bounceInRight.scss */ +.in .bounceInRight { + -webkit-animation-name: bounceInRight; + animation-name: bounceInRight; +} + +@-webkit-keyframes bounceInUp { + 0% { + opacity: 0; + -webkit-transform: translateY(2000px); + } + 60% { + opacity: 1; + -webkit-transform: translateY(-30px); + } + 80% { + -webkit-transform: translateY(10px); + } + 100% { + -webkit-transform: translateY(0); + } +} +@keyframes bounceInUp { + 0% { + opacity: 0; + transform: translateY(2000px); + } + 60% { + opacity: 1; + transform: translateY(-30px); + } + 80% { + transform: translateY(10px); + } + 100% { + transform: translateY(0); + } +} +/* line 43, ../sass/animations/bounce-enter/_bounceInUp.scss */ +.in .bounceInUp { + -webkit-animation-name: bounceInUp; + animation-name: bounceInUp; +} + +@-webkit-keyframes bounceOut { + 0% { + -webkit-transform: scale(1); + } + 25% { + -webkit-transform: scale(0.95); + } + 50% { + opacity: 1; + -webkit-transform: scale(1.1); + } + 100% { + opacity: 0; + -webkit-transform: scale(0.3); + } +} +@keyframes bounceOut { + 0% { + transform: scale(1); + } + 25% { + transform: scale(0.95); + } + 50% { + opacity: 1; + transform: scale(1.1); + } + 100% { + opacity: 0; + transform: scale(0.3); + } +} +/* line 43, ../sass/animations/bounce-exit/_bounceOut.scss */ +.out .bounceOut { + -webkit-animation-name: bounceOut; + animation-name: bounceOut; +} + +@-webkit-keyframes bounceOutDown { + 0% { + -webkit-transform: translateY(0); + } + 20% { + opacity: 1; + -webkit-transform: translateY(-20px); + } + 100% { + opacity: 0; + -webkit-transform: translateY(2000px); + } +} +@keyframes bounceOutDown { + 0% { + transform: translateY(0); + } + 20% { + opacity: 1; + transform: translateY(-20px); + } + 100% { + opacity: 0; + transform: translateY(2000px); + } +} +/* line 35, ../sass/animations/bounce-exit/_bounceOutDown.scss */ +.out .bounceOutDown { + -webkit-animation-name: bounceOutDown; + animation-name: bounceOutDown; +} + +@-webkit-keyframes bounceOutLeft { + 0% { + -webkit-transform: translateX(0); + } + 20% { + opacity: 1; + -webkit-transform: translateX(20px); + } + 100% { + opacity: 0; + -webkit-transform: translateX(-2000px); + } +} +@keyframes bounceOutLeft { + 0% { + transform: translateX(0); + } + 20% { + opacity: 1; + transform: translateX(20px); + } + 100% { + opacity: 0; + transform: translateX(-2000px); + } +} +/* line 35, ../sass/animations/bounce-exit/_bounceOutLeft.scss */ +.out .bounceOutLeft { + -webkit-animation-name: bounceOutLeft; + animation-name: bounceOutLeft; +} + +@-webkit-keyframes bounceOutRight { + 0% { + -webkit-transform: translateX(0); + } + 20% { + opacity: 1; + -webkit-transform: translateX(-20px); + } + 100% { + opacity: 0; + -webkit-transform: translateX(2000px); + } +} +@keyframes bounceOutRight { + 0% { + transform: translateX(0); + } + 20% { + opacity: 1; + transform: translateX(-20px); + } + 100% { + opacity: 0; + transform: translateX(2000px); + } +} +/* line 35, ../sass/animations/bounce-exit/_bounceOutRight.scss */ +.out .bounceOutRight { + -webkit-animation-name: bounceOutRight; + animation-name: bounceOutRight; +} + +@-webkit-keyframes bounceOutUp { + 0% { + -webkit-transform: translateY(0); + } + 20% { + opacity: 1; + -webkit-transform: translateY(20px); + } + 100% { + opacity: 0; + -webkit-transform: translateY(-2000px); + } +} +@keyframes bounceOutUp { + 0% { + transform: translateY(0); + } + 20% { + opacity: 1; + transform: translateY(20px); + } + 100% { + opacity: 0; + transform: translateY(-2000px); + } +} +/* line 35, ../sass/animations/bounce-exit/_bounceOutUp.scss */ +.out .bounceOutUp { + -webkit-animation-name: bounceOutUp; + animation-name: bounceOutUp; +} + +@-webkit-keyframes fadeIn { + 0% { + opacity: 0; + } + 100% { + opacity: 1; + } +} +@keyframes fadeIn { + 0% { + opacity: 0; + } + 100% { + opacity: 1; + } +} +/* line 8, ../sass/animations/fade-enter/_fadeIn.scss */ +.in .fadeIn { + -webkit-animation-name: fadeIn; + animation-name: fadeIn; +} + +@-webkit-keyframes fadeInDown { + 0% { + opacity: 0; + -webkit-transform: translateY(-20px); + } + 100% { + opacity: 1; + -webkit-transform: translateY(0); + } +} +@keyframes fadeInDown { + 0% { + opacity: 0; + transform: translateY(-20px); + } + 100% { + opacity: 1; + transform: translateY(0); + } +} +/* line 27, ../sass/animations/fade-enter/_fadeInDown.scss */ +.in .fadeInDown { + -webkit-animation-name: fadeInDown; + animation-name: fadeInDown; +} + +@-webkit-keyframes fadeInDownBig { + 0% { + opacity: 0; + -webkit-transform: translateY(-2000px); + } + 100% { + opacity: 1; + -webkit-transform: translateY(0); + } +} +@keyframes fadeInDownBig { + 0% { + opacity: 0; + transform: translateY(-2000px); + } + 100% { + opacity: 1; + transform: translateY(0); + } +} +/* line 27, ../sass/animations/fade-enter/_fadeInDownBig.scss */ +.in .fadeInDownBig { + -webkit-animation-name: fadeInDownBig; + animation-name: fadeInDownBig; +} + +@-webkit-keyframes fadeInLeft { + 0% { + opacity: 0; + -webkit-transform: translateX(-20px); + } + 100% { + opacity: 1; + -webkit-transform: translateX(0); + } +} +@keyframes fadeInLeft { + 0% { + opacity: 0; + transform: translateX(-20px); + } + 100% { + opacity: 1; + transform: translateX(0); + } +} +/* line 27, ../sass/animations/fade-enter/_fadeInLeft.scss */ +.in .fadeInLeft { + -webkit-animation-name: fadeInLeft; + animation-name: fadeInLeft; +} + +@-webkit-keyframes fadeInLeftBig { + 0% { + opacity: 0; + -webkit-transform: translateX(-2000px); + } + 100% { + opacity: 1; + -webkit-transform: translateX(0); + } +} +@keyframes fadeInLeftBig { + 0% { + opacity: 0; + transform: translateX(-2000px); + } + 100% { + opacity: 1; + transform: translateX(0); + } +} +/* line 27, ../sass/animations/fade-enter/_fadeInLeftBig.scss */ +.in .fadeInLeftBig { + -webkit-animation-name: fadeInLeftBig; + animation-name: fadeInLeftBig; +} + +@-webkit-keyframes fadeInRight { + 0% { + opacity: 0; + -webkit-transform: translateX(20px); + } + 100% { + opacity: 1; + -webkit-transform: translateX(0); + } +} +@keyframes fadeInRight { + 0% { + opacity: 0; + transform: translateX(20px); + } + 100% { + opacity: 1; + transform: translateX(0); + } +} +/* line 27, ../sass/animations/fade-enter/_fadeInRight.scss */ +.in .fadeInRight { + -webkit-animation-name: fadeInRight; + animation-name: fadeInRight; +} + +@-webkit-keyframes fadeInRightBig { + 0% { + opacity: 0; + -webkit-transform: translateX(2000px); + } + 100% { + opacity: 1; + -webkit-transform: translateX(0); + } +} +@keyframes fadeInRightBig { + 0% { + opacity: 0; + transform: translateX(2000px); + } + 100% { + opacity: 1; + transform: translateX(0); + } +} +/* line 27, ../sass/animations/fade-enter/_fadeInRightBig.scss */ +.in .fadeInRightBig { + -webkit-animation-name: fadeInRightBig; + animation-name: fadeInRightBig; +} + +@-webkit-keyframes fadeInUp { + 0% { + opacity: 0; + -webkit-transform: translateY(20px); + } + 100% { + opacity: 1; + -webkit-transform: translateY(0); + } +} +@keyframes fadeInUp { + 0% { + opacity: 0; + transform: translateY(20px); + } + 100% { + opacity: 1; + transform: translateY(0); + } +} +/* line 27, ../sass/animations/fade-enter/_fadeInUp.scss */ +.in .fadeInUp { + -webkit-animation-name: fadeInUp; + animation-name: fadeInUp; +} + +@-webkit-keyframes fadeInUpBig { + 0% { + opacity: 0; + -webkit-transform: translateY(2000px); + } + 100% { + opacity: 1; + -webkit-transform: translateY(0); + } +} +@keyframes fadeInUpBig { + 0% { + opacity: 0; + transform: translateY(2000px); + } + 100% { + opacity: 1; + transform: translateY(0); + } +} +/* line 27, ../sass/animations/fade-enter/_fadeInUpBig.scss */ +.in .fadeInUpBig { + -webkit-animation-name: fadeInUpBig; + animation-name: fadeInUpBig; +} + +@-webkit-keyframes fadeOut { + 0% { + opacity: 1; + } + 100% { + opacity: 0; + } +} +@keyframes fadeOut { + 0% { + opacity: 1; + } + 100% { + opacity: 0; + } +} +/* line 8, ../sass/animations/fade-exit/_fadeOut.scss */ +.out .fadeOut { + -webkit-animation-name: fadeOut; + animation-name: fadeOut; +} + +@-webkit-keyframes fadeOutDown { + 0% { + opacity: 1; + -webkit-transform: translateY(0); + } + 100% { + opacity: 0; + -webkit-transform: translateY(20px); + } +} +@keyframes fadeOutDown { + 0% { + opacity: 1; + transform: translateY(0); + } + 100% { + opacity: 0; + transform: translateY(20px); + } +} +/* line 27, ../sass/animations/fade-exit/_fadeOutDown.scss */ +.out .fadeOutDown { + -webkit-animation-name: fadeOutDown; + animation-name: fadeOutDown; +} + +@-webkit-keyframes fadeOutDownBig { + 0% { + opacity: 1; + -webkit-transform: translateY(0); + } + 100% { + opacity: 0; + -webkit-transform: translateY(2000px); + } +} +@keyframes fadeOutDownBig { + 0% { + opacity: 1; + transform: translateY(0); + } + 100% { + opacity: 0; + transform: translateY(2000px); + } +} +/* line 27, ../sass/animations/fade-exit/_fadeOutDownBig.scss */ +.out .fadeOutDownBig { + -webkit-animation-name: fadeOutDownBig; + animation-name: fadeOutDownBig; +} + +@-webkit-keyframes fadeOutLeft { + 0% { + opacity: 1; + -webkit-transform: translateX(0); + } + 100% { + opacity: 0; + -webkit-transform: translateX(-20px); + } +} +@keyframes fadeOutLeft { + 0% { + opacity: 1; + transform: translateX(0); + } + 100% { + opacity: 0; + transform: translateX(-20px); + } +} +/* line 27, ../sass/animations/fade-exit/_fadeOutLeft.scss */ +.out .fadeOutLeft { + -webkit-animation-name: fadeOutLeft; + animation-name: fadeOutLeft; +} + +@-webkit-keyframes fadeOutLeftBig { + 0% { + opacity: 1; + -webkit-transform: translateX(0); + } + 100% { + opacity: 0; + -webkit-transform: translateX(-2000px); + } +} +@keyframes fadeOutLeftBig { + 0% { + opacity: 1; + transform: translateX(0); + } + 100% { + opacity: 0; + transform: translateX(-2000px); + } +} +/* line 27, ../sass/animations/fade-exit/_fadeOutLeftBig.scss */ +.out .fadeOutLeftBig { + -webkit-animation-name: fadeOutLeftBig; + animation-name: fadeOutLeftBig; +} + +@-webkit-keyframes fadeOutRight { + 0% { + opacity: 1; + -webkit-transform: translateX(0); + } + 100% { + opacity: 0; + -webkit-transform: translateX(20px); + } +} +@keyframes fadeOutRight { + 0% { + opacity: 1; + transform: translateX(0); + } + 100% { + opacity: 0; + transform: translateX(20px); + } +} +/* line 27, ../sass/animations/fade-exit/_fadeOutRight.scss */ +.out .fadeOutRight { + -webkit-animation-name: fadeOutRight; + animation-name: fadeOutRight; +} + +@-webkit-keyframes fadeOutRightBig { + 0% { + opacity: 1; + -webkit-transform: translateX(0); + } + 100% { + opacity: 0; + -webkit-transform: translateX(2000px); + } +} +@keyframes fadeOutRightBig { + 0% { + opacity: 1; + transform: translateX(0); + } + 100% { + opacity: 0; + transform: translateX(2000px); + } +} +/* line 27, ../sass/animations/fade-exit/_fadeOutRightBig.scss */ +.out .fadeOutRightBig { + -webkit-animation-name: fadeOutRightBig; + animation-name: fadeOutRightBig; +} + +@-webkit-keyframes fadeOutUp { + 0% { + opacity: 1; + -webkit-transform: translateY(0); + } + 100% { + opacity: 0; + -webkit-transform: translateY(-20px); + } +} +@keyframes fadeOutUp { + 0% { + opacity: 1; + transform: translateY(0); + } + 100% { + opacity: 0; + transform: translateY(-20px); + } +} +/* line 27, ../sass/animations/fade-exit/_fadeOutUp.scss */ +.out .fadeOutUp { + -webkit-animation-name: fadeOutUp; + animation-name: fadeOutUp; +} + +@-webkit-keyframes fadeOutUpBig { + 0% { + opacity: 1; + -webkit-transform: translateY(0); + } + 100% { + opacity: 0; + -webkit-transform: translateY(-2000px); + } +} +@keyframes fadeOutUpBig { + 0% { + opacity: 1; + transform: translateY(0); + } + 100% { + opacity: 0; + transform: translateY(-2000px); + } +} +/* line 27, ../sass/animations/fade-exit/_fadeOutUpBig.scss */ +.out .fadeOutUpBig { + -webkit-animation-name: fadeOutUpBig; + animation-name: fadeOutUpBig; +} + +@-webkit-keyframes flipInX { + 0% { + -webkit-transform: perspective(400px) rotateX(90deg); + opacity: 0; + } + 40% { + -webkit-transform: perspective(400px) rotateX(-10deg); + } + 70% { + -webkit-transform: perspective(400px) rotateX(10deg); + } + 100% { + -webkit-transform: perspective(400px) rotateX(0deg); + opacity: 1; + } +} +@keyframes flipInX { + 0% { + transform: perspective(400px) rotateX(90deg); + opacity: 0; + } + 40% { + transform: perspective(400px) rotateX(-10deg); + } + 70% { + transform: perspective(400px) rotateX(10deg); + } + 100% { + transform: perspective(400px) rotateX(0deg); + opacity: 1; + } +} +/* line 43, ../sass/animations/flippers/_flipInX.scss */ +.in .flipInX { + -webkit-backface-visibility: visible !important; + backface-visibility: visible !important; + -webkit-animation-name: flipInX; + animation-name: flipInX; +} + +@-webkit-keyframes flipInY { + 0% { + -webkit-transform: perspective(400px) rotateY(90deg); + opacity: 0; + } + 40% { + -webkit-transform: perspective(400px) rotateY(-10deg); + } + 70% { + -webkit-transform: perspective(400px) rotateY(10deg); + } + 100% { + -webkit-transform: perspective(400px) rotateY(0deg); + opacity: 1; + } +} +@keyframes flipInY { + 0% { + transform: perspective(400px) rotateY(90deg); + opacity: 0; + } + 40% { + transform: perspective(400px) rotateY(-10deg); + } + 70% { + transform: perspective(400px) rotateY(10deg); + } + 100% { + transform: perspective(400px) rotateY(0deg); + opacity: 1; + } +} +/* line 43, ../sass/animations/flippers/_flipInY.scss */ +.in .flipInY { + -webkit-backface-visibility: visible !important; + backface-visibility: visible !important; + -webkit-animation-name: flipInY; + animation-name: flipInY; +} + +@-webkit-keyframes flipOutX { + 0% { + -webkit-transform: perspective(400px) rotateX(0deg); + opacity: 1; + } + 100% { + -webkit-transform: perspective(400px) rotateX(90deg); + opacity: 0; + } +} +@keyframes flipOutX { + 0% { + transform: perspective(400px) rotateX(0deg); + opacity: 1; + } + 100% { + transform: perspective(400px) rotateX(90deg); + opacity: 0; + } +} +/* line 25, ../sass/animations/flippers/_flipOutX.scss */ +.out .flipOutX { + -webkit-animation-name: flipOutX; + animation-name: flipOutX; + -webkit-backface-visibility: visible !important; + backface-visibility: visible !important; +} + +@-webkit-keyframes flipOutY { + 0% { + -webkit-transform: perspective(400px) rotateY(0deg); + opacity: 1; + } + 100% { + -webkit-transform: perspective(400px) rotateY(90deg); + opacity: 0; + } +} +@keyframes flipOutY { + 0% { + transform: perspective(400px) rotateY(0deg); + opacity: 1; + } + 100% { + transform: perspective(400px) rotateY(90deg); + opacity: 0; + } +} +/* line 25, ../sass/animations/flippers/_flipOutY.scss */ +.out .flipOutY { + -webkit-backface-visibility: visible !important; + backface-visibility: visible !important; + -webkit-animation-name: flipOutY; + animation-name: flipOutY; +} + +@-webkit-keyframes lightSpeedIn { + 0% { + -webkit-transform: translateX(100%) skewX(-30deg); + opacity: 0; + } + 60% { + -webkit-transform: translateX(-20%) skewX(30deg); + opacity: 1; + } + 80% { + -webkit-transform: translateX(0%) skewX(-15deg); + opacity: 1; + } + 100% { + -webkit-transform: translateX(0%) skewX(0deg); + opacity: 1; + } +} +@keyframes lightSpeedIn { + 0% { + transform: translateX(100%) skewX(-30deg); + opacity: 0; + } + 60% { + transform: translateX(-20%) skewX(30deg); + opacity: 1; + } + 80% { + transform: translateX(0%) skewX(-15deg); + opacity: 1; + } + 100% { + transform: translateX(0%) skewX(0deg); + opacity: 1; + } +} +/* line 17, ../sass/animations/lightspeed/_lightSpeedIn.scss */ +.in .lightSpeedIn { + -webkit-animation-name: lightSpeedIn; + animation-name: lightSpeedIn; + -webkit-animation-timing-function: ease-out; + animation-timing-function: ease-out; +} + +@-webkit-keyframes lightSpeedOut { + 0% { + -webkit-transform: translateX(0%) skewX(0deg); + opacity: 1; + } + 100% { + -webkit-transform: translateX(100%) skewX(-30deg); + opacity: 0; + } +} +@keyframes lightSpeedOut { + 0% { + transform: translateX(0%) skewX(0deg); + opacity: 1; + } + 100% { + transform: translateX(100%) skewX(-30deg); + opacity: 0; + } +} +/* line 13, ../sass/animations/lightspeed/_lightSpeedOut.scss */ +.out .lightSpeedOut { + -webkit-animation-name: lightSpeedOut; + animation-name: lightSpeedOut; + -webkit-animation-timing-function: ease-in; + animation-timing-function: ease-in; +} + +@-webkit-keyframes rotateIn { + 0% { + -webkit-transform-origin: center center; + -webkit-transform: rotate(-200deg); + opacity: 0; + } + 100% { + -webkit-transform-origin: center center; + -webkit-transform: rotate(0); + opacity: 1; + } +} +@keyframes rotateIn { + 0% { + transform-origin: center center; + transform: rotate(-200deg); + opacity: 0; + } + 100% { + transform-origin: center center; + transform: rotate(0); + opacity: 1; + } +} +/* line 31, ../sass/animations/rotate-enter/_rotateIn.scss */ +.in .rotateIn { + -webkit-animation-name: rotateIn; + animation-name: rotateIn; +} + +@-webkit-keyframes rotateInDownLeft { + 0% { + -webkit-transform-origin: left bottom; + -webkit-transform: rotate(-90deg); + opacity: 0; + } + 100% { + -webkit-transform-origin: left bottom; + -webkit-transform: rotate(0); + opacity: 1; + } +} +@keyframes rotateInDownLeft { + 0% { + transform-origin: left bottom; + transform: rotate(-90deg); + opacity: 0; + } + 100% { + transform-origin: left bottom; + transform: rotate(0); + opacity: 1; + } +} +/* line 31, ../sass/animations/rotate-enter/_rotateInDownLeft.scss */ +.in .rotateInDownLeft { + -webkit-animation-name: rotateInDownLeft; + animation-name: rotateInDownLeft; +} + +@-webkit-keyframes rotateInDownRight { + 0% { + -webkit-transform-origin: right bottom; + -webkit-transform: rotate(90deg); + opacity: 0; + } + 100% { + -webkit-transform-origin: right bottom; + -webkit-transform: rotate(0); + opacity: 1; + } +} +@keyframes rotateInDownRight { + 0% { + transform-origin: right bottom; + transform: rotate(90deg); + opacity: 0; + } + 100% { + transform-origin: right bottom; + transform: rotate(0); + opacity: 1; + } +} +/* line 31, ../sass/animations/rotate-enter/_rotateInDownRight.scss */ +.in .rotateInDownRight { + -webkit-animation-name: rotateInDownRight; + animation-name: rotateInDownRight; +} + +@-webkit-keyframes rotateInUpLeft { + 0% { + -webkit-transform-origin: left bottom; + -webkit-transform: rotate(90deg); + opacity: 0; + } + 100% { + -webkit-transform-origin: left bottom; + -webkit-transform: rotate(0); + opacity: 1; + } +} +@keyframes rotateInUpLeft { + 0% { + transform-origin: left bottom; + transform: rotate(90deg); + opacity: 0; + } + 100% { + transform-origin: left bottom; + transform: rotate(0); + opacity: 1; + } +} +/* line 31, ../sass/animations/rotate-enter/_rotateInUpLeft.scss */ +.in .rotateInUpLeft { + -webkit-animation-name: rotateInUpLeft; + animation-name: rotateInUpLeft; +} + +@-webkit-keyframes rotateInUpRight { + 0% { + -webkit-transform-origin: right bottom; + -webkit-transform: rotate(-90deg); + opacity: 0; + } + 100% { + -webkit-transform-origin: right bottom; + -webkit-transform: rotate(0); + opacity: 1; + } +} +@keyframes rotateInUpRight { + 0% { + transform-origin: right bottom; + transform: rotate(-90deg); + opacity: 0; + } + 100% { + transform-origin: right bottom; + transform: rotate(0); + opacity: 1; + } +} +/* line 31, ../sass/animations/rotate-enter/_rotateInUpRight.scss */ +.in .rotateInUpRight { + -webkit-animation-name: rotateInUpRight; + animation-name: rotateInUpRight; +} + +@-webkit-keyframes rotateOut { + 0% { + -webkit-transform-origin: center center; + -webkit-transform: rotate(0); + opacity: 1; + } + 100% { + -webkit-transform-origin: center center; + -webkit-transform: rotate(200deg); + opacity: 0; + } +} +@keyframes rotateOut { + 0% { + transform-origin: center center; + transform: rotate(0); + opacity: 1; + } + 100% { + transform-origin: center center; + transform: rotate(200deg); + opacity: 0; + } +} +/* line 31, ../sass/animations/rotate-exit/_rotateOut.scss */ +.out .rotateOut { + -webkit-animation-name: rotateOut; + animation-name: rotateOut; +} + +@-webkit-keyframes rotateOutDownLeft { + 0% { + -webkit-transform-origin: left bottom; + -webkit-transform: rotate(0); + opacity: 1; + } + 100% { + -webkit-transform-origin: left bottom; + -webkit-transform: rotate(90deg); + opacity: 0; + } +} +@keyframes rotateOutDownLeft { + 0% { + transform-origin: left bottom; + transform: rotate(0); + opacity: 1; + } + 100% { + transform-origin: left bottom; + transform: rotate(90deg); + opacity: 0; + } +} +/* line 31, ../sass/animations/rotate-exit/_rotateOutDownLeft.scss */ +.out .rotateOutDownLeft { + -webkit-animation-name: rotateOutDownLeft; + animation-name: rotateOutDownLeft; +} + +@-webkit-keyframes rotateOutDownRight { + 0% { + -webkit-transform-origin: right bottom; + -webkit-transform: rotate(0); + opacity: 1; + } + 100% { + -webkit-transform-origin: right bottom; + -webkit-transform: rotate(-90deg); + opacity: 0; + } +} +@keyframes rotateOutDownRight { + 0% { + transform-origin: right bottom; + transform: rotate(0); + opacity: 1; + } + 100% { + transform-origin: right bottom; + transform: rotate(-90deg); + opacity: 0; + } +} +/* line 31, ../sass/animations/rotate-exit/_rotateOutDownRight.scss */ +.out .rotateOutDownRight { + -webkit-animation-name: rotateOutDownRight; + animation-name: rotateOutDownRight; +} + +@-webkit-keyframes rotateOutUpLeft { + 0% { + -webkit-transform-origin: left bottom; + -webkit-transform: rotate(0); + opacity: 1; + } + 100% { + -webkit-transform-origin: left bottom; + -webkit-transform: rotate(-90deg); + opacity: 0; + } +} +@keyframes rotateOutUpLeft { + 0% { + transform-origin: left bottom; + transform: rotate(0); + opacity: 1; + } + 100% { + -transform-origin: left bottom; + -transform: rotate(-90deg); + opacity: 0; + } +} +/* line 31, ../sass/animations/rotate-exit/_rotateOutUpLeft.scss */ +.out .rotateOutUpLeft { + -webkit-animation-name: rotateOutUpLeft; + animation-name: rotateOutUpLeft; +} + +@-webkit-keyframes rotateOutUpRight { + 0% { + -webkit-transform-origin: right bottom; + -webkit-transform: rotate(0); + opacity: 1; + } + 100% { + -webkit-transform-origin: right bottom; + -webkit-transform: rotate(90deg); + opacity: 0; + } +} +@keyframes rotateOutUpRight { + 0% { + transform-origin: right bottom; + transform: rotate(0); + opacity: 1; + } + 100% { + transform-origin: right bottom; + transform: rotate(90deg); + opacity: 0; + } +} +/* line 30, ../sass/animations/rotate-exit/_rotateOutUpRight.scss */ +.out .rotateOutUpRight { + -webkit-animation-name: rotateOutUpRight; + animation-name: rotateOutUpRight; +} + +@-webkit-keyframes slideInDown { + 0% { + -webkit-transform: translate3d(0, -100%, 0); + visibility: visible; + } + 100% { + -webkit-transform: translate3d(0, 0, 0); + } +} +@keyframes slideInDown { + 0% { + transform: translate3d(0, -100%, 0); + visibility: visible; + } + 100% { + transform: translate3d(0, 0, 0); + } +} +/* line 25, ../sass/animations/slide-enter/_slideInDown.scss */ +.in .slideInDown { + -webkit-animation-name: slideInDown; + animation-name: slideInDown; +} + +@-webkit-keyframes slideInLeft { + 0% { + -webkit-transform: translate3d(-100%, 0, 0); + visibility: visible; + } + 100% { + -webkit-transform: translate3d(0, 0, 0); + } +} +@keyframes slideInLeft { + 0% { + transform: translate3d(-100%, 0, 0); + visibility: visible; + } + 100% { + transform: translate3d(0, 0, 0); + } +} +/* line 25, ../sass/animations/slide-enter/_slideInLeft.scss */ +.in .slideInLeft { + -webkit-animation-name: slideInLeft; + animation-name: slideInLeft; +} + +@-webkit-keyframes slideInRight { + 0% { + -webkit-transform: translate3d(100%, 0, 0); + visibility: visible; + } + 100% { + -webkit-transform: translate3d(0, 0, 0); + } +} +@keyframes slideInRight { + 0% { + transform: translate3d(100%, 0, 0); + visibility: visible; + } + 100% { + transform: translate3d(0, 0, 0); + } +} +/* line 25, ../sass/animations/slide-enter/_slideInRight.scss */ +.in .slideInRight { + -webkit-animation-name: slideInRight; + animation-name: slideInRight; +} + +@-webkit-keyframes slideInUp { + 0% { + -webkit-transform: translate3d(0, 100%, 0); + visibility: visible; + } + 100% { + -webkit-transform: translate3d(0, 0, 0); + } +} +@keyframes slideInUp { + 0% { + transform: translate3d(0, 100%, 0); + visibility: visible; + } + 100% { + transform: translate3d(0, 0, 0); + } +} +/* line 25, ../sass/animations/slide-enter/_slideInUp.scss */ +.in .slideInUp { + -webkit-animation-name: slideInUp; + animation-name: slideInUp; +} + +@-webkit-keyframes slideOutDown { + 0% { + -webkit-transform: translate3d(0, 0, 0); + visibility: visible; + } + 100% { + -webkit-transform: translate3d(0, 100%, 0); + } +} +@keyframes slideOutDown { + 0% { + transform: translate3d(0, 0, 0); + visibility: visible; + } + 100% { + transform: translate3d(0, 100%, 0); + } +} +/* line 25, ../sass/animations/slide-exit/_slideOutDown.scss */ +.out .slideOutDown { + -webkit-animation-name: slideOutDown; + animation-name: slideOutDown; +} + +@-webkit-keyframes slideOutLeft { + 0% { + -webkit-transform: translate3d(0, 0, 0); + visibility: visible; + } + 100% { + -webkit-transform: translate3d(-100%, 0, 0); + } +} +@keyframes slideOutLeft { + 0% { + transform: translate3d(0, 0, 0); + visibility: visible; + } + 100% { + transform: translate3d(-100%, 0, 0); + } +} +/* line 25, ../sass/animations/slide-exit/_slideOutLeft.scss */ +.out .slideOutLeft { + -webkit-animation-name: slideOutLeft; + animation-name: slideOutLeft; +} + +@-webkit-keyframes slideOutRight { + 0% { + -webkit-transform: translate3d(0, 0, 0); + visibility: visible; + } + 100% { + -webkit-transform: translate3d(100%, 0, 0); + } +} +@keyframes slideOutRight { + 0% { + transform: translate3d(0, 0, 0); + visibility: visible; + } + 100% { + transform: translate3d(100%, 0, 0); + } +} +/* line 25, ../sass/animations/slide-exit/_slideOutRight.scss */ +.out .slideOutRight { + -webkit-animation-name: slideOutRight; + animation-name: slideOutRight; +} + +@-webkit-keyframes slideOutUp { + 0% { + -webkit-transform: translate3d(0, 0, 0); + visibility: visible; + } + 100% { + -webkit-transform: translate3d(0, -100%, 0); + } +} +@keyframes slideOutUp { + 0% { + transform: translate3d(0, 0, 0); + visibility: visible; + } + 100% { + transform: translate3d(0, -100%, 0); + } +} +/* line 25, ../sass/animations/slide-exit/_slideOutUp.scss */ +.out .slideOutUp { + -webkit-animation-name: slideOutUp; + animation-name: slideOutUp; +} + +@-webkit-keyframes hinge { + 0% { + -webkit-transform: rotate(0); + -webkit-transform-origin: top left; + -webkit-animation-timing-function: ease-in-out; + } + 20%, 60% { + -webkit-transform: rotate(80deg); + -webkit-transform-origin: top left; + -webkit-animation-timing-function: ease-in-out; + } + 40% { + -webkit-transform: rotate(60deg); + -webkit-transform-origin: top left; + -webkit-animation-timing-function: ease-in-out; + } + 80% { + -webkit-transform: rotate(60deg) translateY(0); + opacity: 1; + -webkit-transform-origin: top left; + -webkit-animation-timing-function: ease-in-out; + } + 100% { + -webkit-transform: translateY(700px); + opacity: 0; + } +} +@keyframes hinge { + 0% { + transform: rotate(0); + transform-origin: top left; + animation-timing-function: ease-in-out; + } + 20%, 60% { + transform: rotate(80deg); + transform-origin: top left; + animation-timing-function: ease-in-out; + } + 40% { + transform: rotate(60deg); + transform-origin: top left; + animation-timing-function: ease-in-out; + } + 80% { + transform: rotate(60deg) translateY(0); + opacity: 1; + transform-origin: top left; + animation-timing-function: ease-in-out; + } + 100% { + transform: translateY(700px); + opacity: 0; + } +} +/* line 19, ../sass/animations/special/_hinge.scss */ +.out .hingeOut { + -webkit-animation-name: hinge; + animation-name: hinge; +} + +@-webkit-keyframes rollIn { + 0% { + opacity: 0; + -webkit-transform: translateX(-100%) rotate(-120deg); + } + 100% { + opacity: 1; + -webkit-transform: translateX(0px) rotate(0deg); + } +} +@keyframes rollIn { + 0% { + opacity: 0; + transform: translateX(-100%) rotate(-120deg); + } + 100% { + opacity: 1; + transform: translateX(0px) rotate(0deg); + } +} +/* line 15, ../sass/animations/special/_rollIn.scss */ +.in .rollIn { + -webkit-animation-name: rollIn; + animation-name: rollIn; +} + +@-webkit-keyframes rollOut { + 0% { + opacity: 1; + -webkit-transform: translateX(0px) rotate(0deg); + } + 100% { + opacity: 0; + -webkit-transform: translateX(100%) rotate(120deg); + } +} +@keyframes rollOut { + 0% { + opacity: 1; + transform: translateX(0px) rotate(0deg); + } + 100% { + opacity: 0; + transform: translateX(100%) rotate(120deg); + } +} +/* line 29, ../sass/animations/special/_rollOut.scss */ +.out .rollOut { + -webkit-animation-name: rollOut; + animation-name: rollOut; +} + +@-webkit-keyframes zoomIn { + 0% { + opacity: 0; + -webkit-transform: scale3d(0.3, 0.3, 0.3); + } + 50% { + opacity: 1; + } +} +@keyframes zoomIn { + 0% { + opacity: 0; + transform: scale3d(0.3, 0.3, 0.3); + } + 50% { + opacity: 1; + } +} +/* line 24, ../sass/animations/zoom-enter/_zoomIn.scss */ +.in .zoomIn { + -webkit-animation-name: zoomIn; + animation-name: zoomIn; +} + +@-webkit-keyframes zoomInDown { + 0% { + opacity: 0; + -webkit-transform: scale3d(0.1, 0.1, 0.1) translate3d(0, -1000px, 0); + -webkit-animation-timing-function: cubic-bezier(0.55, 0.055, 0.675, 0.19); + } + 60% { + opacity: 1; + -webkit-transform: scale3d(0.475, 0.475, 0.475) translate3d(0, 60px, 0); + -webkit-animation-timing-function: cubic-bezier(0.175, 0.885, 0.32, 1); + } +} +@keyframes zoomInDown { + 0% { + opacity: 0; + transform: scale3d(0.1, 0.1, 0.1) translate3d(0, -1000px, 0); + animation-timing-function: cubic-bezier(0.55, 0.055, 0.675, 0.19); + } + 60% { + opacity: 1; + transform: scale3d(0.475, 0.475, 0.475) translate3d(0, 60px, 0); + animation-timing-function: cubic-bezier(0.175, 0.885, 0.32, 1); + } +} +/* line 27, ../sass/animations/zoom-enter/_zoomInDown.scss */ +.in .zoomInDown { + -webkit-animation-name: zoomInDown; + animation-name: zoomInDown; +} + +@-webkit-keyframes zoomInLeft { + 0% { + opacity: 0; + -webkit-transform: scale3d(0.1, 0.1, 0.1) translate3d(-1000px, 0, 0); + -webkit-animation-timing-function: cubic-bezier(0.55, 0.055, 0.675, 0.19); + } + 60% { + opacity: 1; + -webkit-transform: scale3d(0.475, 0.475, 0.475) translate3d(10px, 0, 0); + -webkit-animation-timing-function: cubic-bezier(0.175, 0.885, 0.32, 1); + } +} +@keyframes zoomInLeft { + 0% { + opacity: 0; + transform: scale3d(0.1, 0.1, 0.1) translate3d(-1000px, 0, 0); + animation-timing-function: cubic-bezier(0.55, 0.055, 0.675, 0.19); + } + 60% { + opacity: 1; + transform: scale3d(0.475, 0.475, 0.475) translate3d(10px, 0, 0); + animation-timing-function: cubic-bezier(0.175, 0.885, 0.32, 1); + } +} +/* line 27, ../sass/animations/zoom-enter/_zoomInLeft.scss */ +.in .zoomInLeft { + -webkit-animation-name: zoomInLeft; + animation-name: zoomInLeft; +} + +@-webkit-keyframes zoomInRight { + 0% { + opacity: 0; + -webkit-transform: scale3d(0.1, 0.1, 0.1) translate3d(1000px, 0, 0); + -webkit-animation-timing-function: cubic-bezier(0.55, 0.055, 0.675, 0.19); + } + 60% { + opacity: 1; + -webkit-transform: scale3d(0.475, 0.475, 0.475) translate3d(-10px, 0, 0); + -webkit-animation-timing-function: cubic-bezier(0.175, 0.885, 0.32, 1); + } +} +@keyframes zoomInRight { + 0% { + opacity: 0; + transform: scale3d(0.1, 0.1, 0.1) translate3d(1000px, 0, 0); + animation-timing-function: cubic-bezier(0.55, 0.055, 0.675, 0.19); + } + 60% { + opacity: 1; + transform: scale3d(0.475, 0.475, 0.475) translate3d(-10px, 0, 0); + animation-timing-function: cubic-bezier(0.175, 0.885, 0.32, 1); + } +} +/* line 27, ../sass/animations/zoom-enter/_zoomInRight.scss */ +.in .zoomInRight { + -webkit-animation-name: zoomInRight; + animation-name: zoomInRight; +} + +@-webkit-keyframes zoomInUp { + 0% { + opacity: 0; + -webkit-transform: scale3d(0.1, 0.1, 0.1) translate3d(0, 1000px, 0); + -webkit-animation-timing-function: cubic-bezier(0.55, 0.055, 0.675, 0.19); + } + 60% { + opacity: 1; + -webkit-transform: scale3d(0.475, 0.475, 0.475) translate3d(0, -60px, 0); + -webkit-animation-timing-function: cubic-bezier(0.175, 0.885, 0.32, 1); + } +} +@keyframes zoomInUp { + 0% { + opacity: 0; + transform: scale3d(0.1, 0.1, 0.1) translate3d(0, 1000px, 0); + animation-timing-function: cubic-bezier(0.55, 0.055, 0.675, 0.19); + } + 60% { + opacity: 1; + transform: scale3d(0.475, 0.475, 0.475) translate3d(0, -60px, 0); + animation-timing-function: cubic-bezier(0.175, 0.885, 0.32, 1); + } +} +/* line 27, ../sass/animations/zoom-enter/_zoomInUp.scss */ +.in .zoomInUp { + -webkit-animation-name: zoomInUp; + animation-name: zoomInUp; +} + +@-webkit-keyframes zoomOut { + 0% { + opacity: 1; + } + 50% { + opacity: 0; + -webkit-transform: scale3d(0.3, 0.3, 0.3); + } + 100% { + opacity: 0; + } +} +@keyframes zoomOut { + 0% { + opacity: 1; + } + 50% { + opacity: 0; + transform: scale3d(0.3, 0.3, 0.3); + } + 100% { + opacity: 0; + } +} +/* line 28, ../sass/animations/zoom-exit/_zoomOut.scss */ +.out .zoomOut { + -webkit-animation-name: zoomOut; + animation-name: zoomOut; +} + +@-webkit-keyframes zoomOutDown { + 40% { + opacity: 1; + -webkit-transform: scale3d(0.475, 0.475, 0.475) translate3d(0, -60px, 0); + -webkit-animation-timing-function: cubic-bezier(0.55, 0.055, 0.675, 0.19); + } + 100% { + opacity: 0; + -webkit-transform: scale3d(0.1, 0.1, 0.1) translate3d(0, 2000px, 0); + -webkit-transform-origin: center bottom; + -webkit-animation-timing-function: cubic-bezier(0.175, 0.885, 0.32, 1); + } +} +@keyframes zoomOutDown { + 40% { + opacity: 1; + transform: scale3d(0.475, 0.475, 0.475) translate3d(0, -60px, 0); + animation-timing-function: cubic-bezier(0.55, 0.055, 0.675, 0.19); + } + 100% { + opacity: 0; + transform: scale3d(0.1, 0.1, 0.1) translate3d(0, 2000px, 0); + transform-origin: center bottom; + animation-timing-function: cubic-bezier(0.175, 0.885, 0.32, 1); + } +} +/* line 28, ../sass/animations/zoom-exit/_zoomOutDown.scss */ +.out .zoomOutDown { + -webkit-animation-name: zoomOutDown; + animation-name: zoomOutDown; +} + +@-webkit-keyframes zoomOutLeft { + 40% { + opacity: 1; + -webkit-transform: scale3d(0.475, 0.475, 0.475) translate3d(42px, 0, 0); + } + 100% { + opacity: 0; + -webkit-transform: scale3d(0.1) translate3d(-2000px, 0, 0); + -webkit-transform-origin: left center; + } +} +@keyframes zoomOutLeft { + 40% { + opacity: 1; + transform: scale3d(0.475, 0.475, 0.475) translate3d(42px, 0, 0); + } + 100% { + opacity: 0; + transform: scale3d(0.1) translate3d(-2000px, 0, 0); + transform-origin: left center; + } +} +/* line 26, ../sass/animations/zoom-exit/_zoomOutLeft.scss */ +.out .zoomOutLeft { + -webkit-animation-name: zoomOutLeft; + animation-name: zoomOutLeft; +} + +@-webkit-keyframes zoomOutRight { + 40% { + opacity: 1; + -webkit-transform: scale3d(0.475, 0.475, 0.475) translate3d(-42px, 0, 0); + } + 100% { + opacity: 0; + -webkit-transform: scale3d(0.1) translate3d(2000px, 0, 0); + -webkit-transform-origin: right center; + } +} +@keyframes zoomOutRight { + 40% { + opacity: 1; + transform: scale3d(0.475, 0.475, 0.475) translate3d(-42px, 0, 0); + } + 100% { + opacity: 0; + transform: scale3d(0.1) translate3d(2000px, 0, 0); + transform-origin: right center; + } +} +/* line 26, ../sass/animations/zoom-exit/_zoomOutRight.scss */ +.out .zoomOutRight { + -webkit-animation-name: zoomOutRight; + animation-name: zoomOutRight; +} + +@-webkit-keyframes zoomOutUp { + 40% { + opacity: 1; + -webkit-transform: scale3d(0.475, 0.475, 0.475) translate3d(0, 60px, 0); + -webkit-animation-timing-function: cubic-bezier(0.55, 0.055, 0.675, 0.19); + } + 100% { + opacity: 0; + -webkit-transform: scale3d(0.1, 0.1, 0.1) translate3d(0, -2000px, 0); + -webkit-transform-origin: center bottom; + -webkit-animation-timing-function: cubic-bezier(0.175, 0.885, 0.32, 1); + } +} +@keyframes zoomOutUp { + 40% { + opacity: 1; + transform: scale3d(0.475, 0.475, 0.475) translate3d(0, 60px, 0); + animation-timing-function: cubic-bezier(0.55, 0.055, 0.675, 0.19); + } + 100% { + opacity: 0; + transform: scale3d(0.1, 0.1, 0.1) translate3d(0, -2000px, 0); + transform-origin: center bottom; + animation-timing-function: cubic-bezier(0.175, 0.885, 0.32, 1); + } +} +/* line 28, ../sass/animations/zoom-exit/_zoomOutUp.scss */ +.out .zoomOutUp { + -webkit-animation-name: zoomOutUp; + animation-name: zoomOutUp; +} + /** VARIABLES ===================================*/ /** RESET AND LAYOUT @@ -35,13 +2181,6 @@ ul.bxslider { } /** THEME ===================================*/ -.bx-wrapper { - -moz-box-shadow: 0 0 5px #ccc; - -webkit-box-shadow: 0 0 5px #ccc; - box-shadow: 0 0 5px #ccc; - border: 5px solid #fff; - background: #fff; -} .bx-wrapper .bx-pager, .bx-wrapper .bx-controls-auto { position: absolute; @@ -51,7 +2190,7 @@ ul.bxslider { /* LOADER */ .bx-wrapper .bx-loading { min-height: 50px; - background: url('images/bx_loader.gif') center center no-repeat #ffffff; + background: url('images/bx_loader.gif') center center no-repeat #fff; height: 100%; width: 100%; position: absolute; diff --git a/dist/jquery.bxslider.js b/dist/jquery.bxslider.js index 62b400f5..4d07c219 100644 --- a/dist/jquery.bxslider.js +++ b/dist/jquery.bxslider.js @@ -1,134 +1,125 @@ /** * bxSlider v4.2.5 - * Copyright 2013-2015 Steven Wanderski + * Copyright 2013-2017 Steven Wanderski * Written while drinking Belgian ales and listening to jazz * Licensed under MIT (http://opensource.org/licenses/MIT) */ -;(function($) { - +;(function ($) { var defaults = { - // GENERAL - mode: 'horizontal', - slideSelector: '', - infiniteLoop: true, - hideControlOnEnd: false, - speed: 500, - easing: null, - slideMargin: 0, - startSlide: 0, - randomStart: false, - captions: false, - ticker: false, - tickerHover: false, - adaptiveHeight: false, - adaptiveHeightSpeed: 500, - video: false, - useCSS: true, - preloadImages: 'visible', - responsive: true, - slideZIndex: 50, - wrapperClass: 'bx-wrapper', - - // TOUCH - touchEnabled: true, - swipeThreshold: 50, - oneToOneTouch: true, - preventDefaultSwipeX: true, - preventDefaultSwipeY: false, - - // ACCESSIBILITY - ariaLive: true, - ariaHidden: true, - - // KEYBOARD - keyboardEnabled: false, - - // PAGER - pager: true, - pagerType: 'full', - pagerShortSeparator: ' / ', - pagerSelector: null, - buildPager: null, - pagerCustom: null, - - // CONTROLS - controls: true, - nextText: 'Next', - prevText: 'Prev', - nextSelector: null, - prevSelector: null, - autoControls: false, - startText: 'Start', - stopText: 'Stop', - autoControlsCombine: false, - autoControlsSelector: null, - - // AUTO - auto: false, - pause: 4000, - autoStart: true, - autoDirection: 'next', - stopAutoOnClick: false, - autoHover: false, - autoDelay: 0, - autoSlideForOnePage: false, - - // CAROUSEL - minSlides: 1, - maxSlides: 1, - moveSlides: 0, - slideWidth: 0, - shrinkItems: false, - - // CALLBACKS - onSliderLoad: function() { return true; }, - onSlideBefore: function() { return true; }, - onSlideAfter: function() { return true; }, - onSlideNext: function() { return true; }, - onSlidePrev: function() { return true; }, - onSliderResize: function() { return true; } + mode: 'horizontal' + , slideSelector: '' + , infiniteLoop: true + , hideControlOnEnd: false + , speed: 500 + , easing: null + , slideMargin: 0 + , startSlide: 0 + , randomStart: false + , captions: false + , ticker: false + , tickerHover: false + , adaptiveHeight: false + , adaptiveHeightSpeed: 500 + , video: false + , useCSS: true + , preloadImages: 'visible' + , responsive: true + , slideZIndex: 50 + , wrapperClass: 'bx-wrapper', // TOUCH + touchEnabled: true + , swipeThreshold: 50 + , oneToOneTouch: true + , preventDefaultSwipeX: true + , preventDefaultSwipeY: false, // ACCESSIBILITY + ariaLive: true + , ariaHidden: true, // KEYBOARD + keyboardEnabled: false, // PAGER + pager: true + , pagerType: 'full' + , pagerShortSeparator: ' / ' + , pagerSelector: null + , buildPager: null + , pagerCustom: null, // CONTROLS + controls: true + , nextText: 'Next' + , prevText: 'Prev' + , nextSelector: null + , prevSelector: null + , autoControls: false + , startText: 'Start' + , stopText: 'Stop' + , autoControlsCombine: false + , autoControlsSelector: null + , pauseBeforeOut: 1000 + , pauseAfterIn: 3000, // AUTO + auto: false + , pause: 4000 + , autoStart: true + , autoDirection: 'next' + , stopAutoOnClick: false + , autoHover: false + , autoDelay: 0 + , autoSlideForOnePage: false, // CAROUSEL + minSlides: 1 + , maxSlides: 1 + , moveSlides: 0 + , slideWidth: 0 + , shrinkItems: false, // CALLBACKS + onSliderLoad: function () { + return true; + } + , onSlideBefore: function () { + return true; + } + , onSlideAfter: function () { + return true; + } + , onSlideNext: function () { + return true; + } + , onSlidePrev: function () { + return true; + } + , onSliderResize: function () { + return true; + } }; - - $.fn.bxSlider = function(options) { - + $.fn.bxSlider = function (options) { if (this.length === 0) { return this; } - // support multiple elements if (this.length > 1) { - this.each(function() { + this.each(function () { $(this).bxSlider(options); }); return this; } - // create a namespace to be used throughout the plugin - var slider = {}, - // set a reference to our slider element - el = this, - // get the original window dimens (thanks a lot IE) - windowWidth = $(window).width(), - windowHeight = $(window).height(); - + var slider = {}, // set a reference to our slider element + el = this, // get the original window dimens (thanks a lot IE) + windowWidth = $(window).width() + , windowHeight = $(window).height(); // Return if slider is already initialized - if ($(el).data('bxSlider')) { return; } - + if ($(el).data('bxSlider')) { + return; + } /** * =================================================================================== * = PRIVATE FUNCTIONS * =================================================================================== */ - /** * Initializes namespace settings to be used throughout plugin */ - var init = function() { + var init = function () { // Return if slider is already initialized - if ($(el).data('bxSlider')) { return; } + if ($(el).data('bxSlider')) { + return; + } // merge user-supplied options with the defaults slider.settings = $.extend({}, defaults, options); // parse slideWidth setting @@ -136,16 +127,26 @@ // store the original children slider.children = el.children(slider.settings.slideSelector); // check if actual number of slides is less than minSlides / maxSlides - if (slider.children.length < slider.settings.minSlides) { slider.settings.minSlides = slider.children.length; } - if (slider.children.length < slider.settings.maxSlides) { slider.settings.maxSlides = slider.children.length; } + if (slider.children.length < slider.settings.minSlides) { + slider.settings.minSlides = slider.children.length; + } + if (slider.children.length < slider.settings.maxSlides) { + slider.settings.maxSlides = slider.children.length; + } // if random start, set the startSlide setting to random number - if (slider.settings.randomStart) { slider.settings.startSlide = Math.floor(Math.random() * slider.children.length); } + if (slider.settings.randomStart) { + slider.settings.startSlide = Math.floor(Math.random() * slider.children.length); + } // store active slide information - slider.active = { index: slider.settings.startSlide }; + slider.active = { + index: slider.settings.startSlide + }; // store if the slider is in carousel mode (displaying / moving multiple slides) slider.carousel = slider.settings.minSlides > 1 || slider.settings.maxSlides > 1 ? true : false; // if carousel, force preloadImages = 'all' - if (slider.carousel) { slider.settings.preloadImages = 'all'; } + if (slider.carousel) { + slider.settings.preloadImages = 'all'; + } // calculate the min / max width thresholds based on min / max number of slides // used to setup and update carousel slides dimensions slider.minThreshold = (slider.settings.minSlides * slider.settings.slideWidth) + ((slider.settings.minSlides - 1) * slider.settings.slideMargin); @@ -159,11 +160,10 @@ // determine which property to use for transitions slider.animProp = slider.settings.mode === 'vertical' ? 'top' : 'left'; // determine if hardware acceleration can be used - slider.usingCSS = slider.settings.useCSS && slider.settings.mode !== 'fade' && (function() { + slider.usingCSS = slider.settings.useCSS && slider.settings.mode !== 'fade' && (function () { // create our test div element - var div = document.createElement('div'), - // css transition properties - props = ['WebkitPerspective', 'MozPerspective', 'OPerspective', 'msPerspective']; + var div = document.createElement('div'), // css transition properties + props = ['WebkitPerspective', 'MozPerspective', 'OPerspective', 'msPerspective']; // test for each property for (var i = 0; i < props.length; i++) { if (div.style[props[i]] !== undefined) { @@ -175,28 +175,26 @@ return false; }()); // if vertical mode always make maxSlides and minSlides equal - if (slider.settings.mode === 'vertical') { slider.settings.maxSlides = slider.settings.minSlides; } + if (slider.settings.mode === 'vertical') { + slider.settings.maxSlides = slider.settings.minSlides; + } // save original style data el.data('origStyle', el.attr('style')); - el.children(slider.settings.slideSelector).each(function() { + el.children(slider.settings.slideSelector).each(function () { $(this).data('origStyle', $(this).attr('style')); }); - // perform all DOM / CSS modifications setup(); }; - /** * Performs all DOM and CSS modifications */ - var setup = function() { + var setup = function () { var preloadSelector = slider.children.eq(slider.settings.startSlide); // set the default preload selector (visible) - // wrap el in a wrapper el.wrap('
'); // store a namespace reference to .bx-viewport slider.viewport = el.parent(); - // add aria-live if the setting is enabled and ticker mode is disabled if (slider.settings.ariaLive && !slider.settings.ticker) { slider.viewport.attr('aria-live', 'polite'); @@ -207,21 +205,22 @@ // set el to a massive width, to hold any needed slides // also strip any margin and padding from el el.css({ - width: slider.settings.mode === 'horizontal' ? (slider.children.length * 1000 + 215) + '%' : 'auto', - position: 'relative' + width: slider.settings.mode === 'horizontal' ? (slider.children.length * 1000 + 215) + '%' : 'auto' + , position: 'relative' }); // if using CSS, add the easing property if (slider.usingCSS && slider.settings.easing) { el.css('-' + slider.cssPrefix + '-transition-timing-function', slider.settings.easing); - // if not using CSS and no easing value was supplied, use the default JS animation easing (swing) - } else if (!slider.settings.easing) { + // if not using CSS and no easing value was supplied, use the default JS animation easing (swing) + } + else if (!slider.settings.easing) { slider.settings.easing = 'swing'; } // make modifications to the viewport (.bx-viewport) slider.viewport.css({ - width: '100%', - overflow: 'hidden', - position: 'relative' + width: '100%' + , overflow: 'hidden' + , position: 'relative' }); slider.viewport.parent().css({ maxWidth: getViewportMaxWidth() @@ -234,76 +233,103 @@ } // apply css to all slider children slider.children.css({ - float: slider.settings.mode === 'horizontal' ? 'left' : 'none', - listStyle: 'none', - position: 'relative' + float: slider.settings.mode === 'horizontal' ? 'left' : 'none' + , listStyle: 'none' + , position: 'relative' }); // apply the calculated width after the float is applied to prevent scrollbar interference slider.children.css('width', getSlideWidth()); // if slideMargin is supplied, add the css - if (slider.settings.mode === 'horizontal' && slider.settings.slideMargin > 0) { slider.children.css('marginRight', slider.settings.slideMargin); } - if (slider.settings.mode === 'vertical' && slider.settings.slideMargin > 0) { slider.children.css('marginBottom', slider.settings.slideMargin); } + if (slider.settings.mode === 'horizontal' && slider.settings.slideMargin > 0) { + slider.children.css('marginRight', slider.settings.slideMargin); + } + if (slider.settings.mode === 'vertical' && slider.settings.slideMargin > 0) { + slider.children.css('marginBottom', slider.settings.slideMargin); + } // if "fade" mode, add positioning and z-index CSS if (slider.settings.mode === 'fade') { slider.children.css({ - position: 'absolute', - zIndex: 0, - display: 'none' + position: 'absolute' + , zIndex: 0 + , display: 'none' }); // prepare the z-index on the showing element - slider.children.eq(slider.settings.startSlide).css({zIndex: slider.settings.slideZIndex, display: 'block'}); + slider.children.eq(slider.settings.startSlide).css({ + zIndex: slider.settings.slideZIndex + , display: 'block' + }); } + // Set animation class to 'out' + slider.children.removeClass('in').addClass('out'); + // create an element to contain all slider controls (pager, start / stop, etc) slider.controls.el = $('
'); // if captions are requested, add them - if (slider.settings.captions) { appendCaptions(); } + if (slider.settings.captions) { + appendCaptions(); + } // check if startSlide is last slide slider.active.last = slider.settings.startSlide === getPagerQty() - 1; // if video is true, set up the fitVids plugin - if (slider.settings.video) { el.fitVids(); } - if (slider.settings.preloadImages === 'all' || slider.settings.ticker) { preloadSelector = slider.children; } + if (slider.settings.video) { + el.fitVids(); + } + if (slider.settings.preloadImages === 'all' || slider.settings.ticker) { + preloadSelector = slider.children; + } // only check for control addition if not in "ticker" mode if (!slider.settings.ticker) { // if controls are requested, add them - if (slider.settings.controls) { appendControls(); } + if (slider.settings.controls) { + appendControls(); + } // if auto is true, and auto controls are requested, add them - if (slider.settings.auto && slider.settings.autoControls) { appendControlsAuto(); } + if (slider.settings.auto && slider.settings.autoControls) { + appendControlsAuto(); + } // if pager is requested, add it - if (slider.settings.pager) { appendPager(); } + if (slider.settings.pager) { + appendPager(); + } // if any control option is requested, add the controls wrapper - if (slider.settings.controls || slider.settings.autoControls || slider.settings.pager) { slider.viewport.after(slider.controls.el); } - // if ticker mode, do not allow a pager - } else { + if (slider.settings.controls || slider.settings.autoControls || slider.settings.pager) { + slider.viewport.after(slider.controls.el); + } + // if ticker mode, do not allow a pager + } + else { slider.settings.pager = false; } loadElements(preloadSelector, start); }; - - var loadElements = function(selector, callback) { - var total = selector.find('img:not([src=""]), iframe').length, - count = 0; + var loadElements = function (selector, callback) { + var total = selector.find('img:not([src=""]), iframe').length + , count = 0; if (total === 0) { callback(); return; } - selector.find('img:not([src=""]), iframe').each(function() { - $(this).one('load error', function() { - if (++count === total) { callback(); } - }).each(function() { - if (this.complete) { $(this).load(); } + selector.find('img:not([src=""]), iframe').each(function () { + $(this).one('load error', function () { + if (++count === total) { + callback(); + } + }).each(function () { + if (this.complete) { + $(this).load(); + } }); }); }; - /** * Start the slider */ - var start = function() { + var start = function () { // if infinite loop, prepare additional slides if (slider.settings.infiniteLoop && slider.settings.mode !== 'fade' && !slider.settings.ticker) { - var slice = slider.settings.mode === 'vertical' ? slider.settings.minSlides : slider.settings.maxSlides, - sliceAppend = slider.children.slice(0, slice).clone(true).addClass('bx-clone'), - slicePrepend = slider.children.slice(-slice).clone(true).addClass('bx-clone'); + var slice = slider.settings.mode === 'vertical' ? slider.settings.minSlides : slider.settings.maxSlides + , sliceAppend = slider.children.slice(0, slice).clone(true).addClass('bx-clone') + , slicePrepend = slider.children.slice(-slice).clone(true).addClass('bx-clone'); if (slider.settings.ariaHidden) { sliceAppend.attr('aria-hidden', true); slicePrepend.attr('aria-hidden', true); @@ -315,49 +341,67 @@ // set the left / top position of "el" setSlidePosition(); // if "vertical" mode, always use adaptiveHeight to prevent odd behavior - if (slider.settings.mode === 'vertical') { slider.settings.adaptiveHeight = true; } + if (slider.settings.mode === 'vertical') { + slider.settings.adaptiveHeight = true; + } // set the viewport height slider.viewport.height(getViewportHeight()); // make sure everything is positioned just right (same as a window resize) el.redrawSlider(); // onSliderLoad callback slider.settings.onSliderLoad.call(el, slider.active.index); + setTimeout(function() { + slider.children.eq(slider.active.index).removeClass('out').addClass('in'); + }, 1500); // slider has been fully initialized slider.initialized = true; // bind the resize call to the window - if (slider.settings.responsive) { $(window).bind('resize', resizeWindow); } + if (slider.settings.responsive) { + $(window).bind('resize', resizeWindow); + } // if auto is true and has more than 1 page, start the show - if (slider.settings.auto && slider.settings.autoStart && (getPagerQty() > 1 || slider.settings.autoSlideForOnePage)) { initAuto(); } + if (slider.settings.auto && slider.settings.autoStart && (getPagerQty() > 1 || slider.settings.autoSlideForOnePage)) { + initAuto(); + } // if ticker is true, start the ticker - if (slider.settings.ticker) { initTicker(); } + if (slider.settings.ticker) { + initTicker(); + } // if pager is requested, make the appropriate pager link active - if (slider.settings.pager) { updatePagerActive(slider.settings.startSlide); } + if (slider.settings.pager) { + updatePagerActive(slider.settings.startSlide); + } // check for any updates to the controls (like hideControlOnEnd updates) - if (slider.settings.controls) { updateDirectionControls(); } + if (slider.settings.controls) { + updateDirectionControls(); + } // if touchEnabled is true, setup the touch events - if (slider.settings.touchEnabled && !slider.settings.ticker) { initTouch(); } + if (slider.settings.touchEnabled && !slider.settings.ticker) { + initTouch(); + } // if keyboardEnabled is true, setup the keyboard events if (slider.settings.keyboardEnabled && !slider.settings.ticker) { $(document).keydown(keyPress); } }; - /** * Returns the calculated height of the viewport, used to determine either adaptiveHeight or the maxHeight value */ - var getViewportHeight = function() { + var getViewportHeight = function () { var height = 0; // first determine which children (slides) should be used in our height calculation var children = $(); // if mode is not "vertical" and adaptiveHeight is false, include all children if (slider.settings.mode !== 'vertical' && !slider.settings.adaptiveHeight) { children = slider.children; - } else { + } + else { // if not carousel, return the single active child if (!slider.carousel) { children = slider.children.eq(slider.active.index); - // if carousel, return a slice of children - } else { + // if carousel, return a slice of children + } + else { // get the individual slide index var currentIndex = slider.settings.moveSlides === 1 ? slider.active.index : slider.active.index * getMoveBy(); // add the current slide to the children @@ -367,7 +411,8 @@ // if looped back to the start if (currentIndex + i >= slider.children.length) { children = children.add(slider.children.eq(i - 1)); - } else { + } + else { children = children.add(slider.children.eq(currentIndex + i)); } } @@ -375,107 +420,107 @@ } // if "vertical" mode, calculate the sum of the heights of the children if (slider.settings.mode === 'vertical') { - children.each(function(index) { + children.each(function (index) { height += $(this).outerHeight(); }); // add user-supplied margins if (slider.settings.slideMargin > 0) { height += slider.settings.slideMargin * (slider.settings.minSlides - 1); } - // if not "vertical" mode, calculate the max height of the children - } else { - height = Math.max.apply(Math, children.map(function() { + // if not "vertical" mode, calculate the max height of the children + } + else { + height = Math.max.apply(Math, children.map(function () { return $(this).outerHeight(false); }).get()); } - if (slider.viewport.css('box-sizing') === 'border-box') { - height += parseFloat(slider.viewport.css('padding-top')) + parseFloat(slider.viewport.css('padding-bottom')) + - parseFloat(slider.viewport.css('border-top-width')) + parseFloat(slider.viewport.css('border-bottom-width')); - } else if (slider.viewport.css('box-sizing') === 'padding-box') { + height += parseFloat(slider.viewport.css('padding-top')) + parseFloat(slider.viewport.css('padding-bottom')) + parseFloat(slider.viewport.css('border-top-width')) + parseFloat(slider.viewport.css('border-bottom-width')); + } + else if (slider.viewport.css('box-sizing') === 'padding-box') { height += parseFloat(slider.viewport.css('padding-top')) + parseFloat(slider.viewport.css('padding-bottom')); } - return height; }; - /** * Returns the calculated width to be used for the outer wrapper / viewport */ - var getViewportMaxWidth = function() { + var getViewportMaxWidth = function () { var width = '100%'; if (slider.settings.slideWidth > 0) { if (slider.settings.mode === 'horizontal') { width = (slider.settings.maxSlides * slider.settings.slideWidth) + ((slider.settings.maxSlides - 1) * slider.settings.slideMargin); - } else { + } + else { width = slider.settings.slideWidth; } } return width; }; - /** * Returns the calculated width to be applied to each slide */ - var getSlideWidth = function() { + var getSlideWidth = function () { var newElWidth = slider.settings.slideWidth, // start with any user-supplied slide width - wrapWidth = slider.viewport.width(); // get the current viewport width + wrapWidth = slider.viewport.width(); // get the current viewport width // if slide width was not supplied, or is larger than the viewport use the viewport width - if (slider.settings.slideWidth === 0 || - (slider.settings.slideWidth > wrapWidth && !slider.carousel) || - slider.settings.mode === 'vertical') { + if (slider.settings.slideWidth === 0 || (slider.settings.slideWidth > wrapWidth && !slider.carousel) || slider.settings.mode === 'vertical') { newElWidth = wrapWidth; - // if carousel, use the thresholds to determine the width - } else if (slider.settings.maxSlides > 1 && slider.settings.mode === 'horizontal') { + // if carousel, use the thresholds to determine the width + } + else if (slider.settings.maxSlides > 1 && slider.settings.mode === 'horizontal') { if (wrapWidth > slider.maxThreshold) { return newElWidth; - } else if (wrapWidth < slider.minThreshold) { + } + else if (wrapWidth < slider.minThreshold) { newElWidth = (wrapWidth - (slider.settings.slideMargin * (slider.settings.minSlides - 1))) / slider.settings.minSlides; - } else if (slider.settings.shrinkItems) { + } + else if (slider.settings.shrinkItems) { newElWidth = Math.floor((wrapWidth + slider.settings.slideMargin) / (Math.ceil((wrapWidth + slider.settings.slideMargin) / (newElWidth + slider.settings.slideMargin))) - slider.settings.slideMargin); } } return newElWidth; }; - /** * Returns the number of slides currently visible in the viewport (includes partially visible slides) */ - var getNumberSlidesShowing = function() { - var slidesShowing = 1, - childWidth = null; + var getNumberSlidesShowing = function () { + var slidesShowing = 1 + , childWidth = null; if (slider.settings.mode === 'horizontal' && slider.settings.slideWidth > 0) { // if viewport is smaller than minThreshold, return minSlides if (slider.viewport.width() < slider.minThreshold) { slidesShowing = slider.settings.minSlides; - // if viewport is larger than maxThreshold, return maxSlides - } else if (slider.viewport.width() > slider.maxThreshold) { + // if viewport is larger than maxThreshold, return maxSlides + } + else if (slider.viewport.width() > slider.maxThreshold) { slidesShowing = slider.settings.maxSlides; - // if viewport is between min / max thresholds, divide viewport width by first child width - } else { + // if viewport is between min / max thresholds, divide viewport width by first child width + } + else { childWidth = slider.children.first().width() + slider.settings.slideMargin; - slidesShowing = Math.floor((slider.viewport.width() + - slider.settings.slideMargin) / childWidth); + slidesShowing = Math.floor((slider.viewport.width() + slider.settings.slideMargin) / childWidth); } - // if "vertical" mode, slides showing will always be minSlides - } else if (slider.settings.mode === 'vertical') { + // if "vertical" mode, slides showing will always be minSlides + } + else if (slider.settings.mode === 'vertical') { slidesShowing = slider.settings.minSlides; } return slidesShowing; }; - /** * Returns the number of pages (one full viewport of slides is one "page") */ - var getPagerQty = function() { - var pagerQty = 0, - breakPoint = 0, - counter = 0; + var getPagerQty = function () { + var pagerQty = 0 + , breakPoint = 0 + , counter = 0; // if moveSlides is specified by the user if (slider.settings.moveSlides > 0) { if (slider.settings.infiniteLoop) { pagerQty = Math.ceil(slider.children.length / getMoveBy()); - } else { + } + else { // when breakpoint goes above children length, counter is the number of pages while (breakPoint < slider.children.length) { ++pagerQty; @@ -483,17 +528,17 @@ counter += slider.settings.moveSlides <= getNumberSlidesShowing() ? slider.settings.moveSlides : getNumberSlidesShowing(); } } - // if moveSlides is 0 (auto) divide children length by sides showing, then round up - } else { + // if moveSlides is 0 (auto) divide children length by sides showing, then round up + } + else { pagerQty = Math.ceil(slider.children.length / getNumberSlidesShowing()); } return pagerQty; }; - /** * Returns the number of individual slides by which to shift the slider */ - var getMoveBy = function() { + var getMoveBy = function () { // if moveSlides was set by the user and moveSlides is less than number of slides showing if (slider.settings.moveSlides > 0 && slider.settings.moveSlides <= getNumberSlidesShowing()) { return slider.settings.moveSlides; @@ -501,11 +546,10 @@ // if moveSlides is 0 (auto) return getNumberSlidesShowing(); }; - /** * Sets the slider's (el) left or top position */ - var setSlidePosition = function() { + var setSlidePosition = function () { var position, lastChild, lastShowingIndex; // if last slide, not infinite loop, and number of children is larger than specified maxSlides if (slider.children.length > slider.settings.maxSlides && slider.active.last && !slider.settings.infiniteLoop) { @@ -515,27 +559,34 @@ position = lastChild.position(); // set the left position setPositionProperty(-(position.left - (slider.viewport.width() - lastChild.outerWidth())), 'reset', 0); - } else if (slider.settings.mode === 'vertical') { + } + else if (slider.settings.mode === 'vertical') { // get the last showing index's position lastShowingIndex = slider.children.length - slider.settings.minSlides; position = slider.children.eq(lastShowingIndex).position(); // set the top position setPositionProperty(-position.top, 'reset', 0); } - // if not last slide - } else { + // if not last slide + } + else { // get the position of the first showing slide position = slider.children.eq(slider.active.index * getMoveBy()).position(); // check for last slide - if (slider.active.index === getPagerQty() - 1) { slider.active.last = true; } + if (slider.active.index === getPagerQty() - 1) { + slider.active.last = true; + } // set the respective position if (position !== undefined) { - if (slider.settings.mode === 'horizontal') { setPositionProperty(-position.left, 'reset', 0); } - else if (slider.settings.mode === 'vertical') { setPositionProperty(-position.top, 'reset', 0); } + if (slider.settings.mode === 'horizontal') { + setPositionProperty(-position.left, 'reset', 0); + } + else if (slider.settings.mode === 'vertical') { + setPositionProperty(-position.top, 'reset', 0); + } } } }; - /** * Sets the el's animating property position (which in turn will sometimes animate el). * If using CSS, sets the transform property. If not using CSS, sets the top / left property. @@ -552,7 +603,7 @@ * @param params (array) optional * - an optional parameter containing any variables that need to be passed in */ - var setPositionProperty = function(value, type, duration, params) { + var setPositionProperty = function (value, type, duration, params) { var animateObj, propValue; // use CSS transform if (slider.usingCSS) { @@ -565,26 +616,33 @@ el.css(slider.animProp, propValue); if (duration !== 0) { // bind a callback method - executes when CSS transition completes - el.bind('transitionend webkitTransitionEnd oTransitionEnd MSTransitionEnd', function(e) { + el.bind('transitionend webkitTransitionEnd oTransitionEnd MSTransitionEnd', function (e) { //make sure it's the correct one - if (!$(e.target).is(el)) { return; } + if (!$(e.target).is(el)) { + return; + } // unbind the callback el.unbind('transitionend webkitTransitionEnd oTransitionEnd MSTransitionEnd'); updateAfterSlideTransition(); }); - } else { //duration = 0 + } + else { //duration = 0 updateAfterSlideTransition(); } - } else if (type === 'reset') { + } + else if (type === 'reset') { el.css(slider.animProp, propValue); - } else if (type === 'ticker') { + } + else if (type === 'ticker') { // make the transition use 'linear' el.css('-' + slider.cssPrefix + '-transition-timing-function', 'linear'); el.css(slider.animProp, propValue); if (duration !== 0) { - el.bind('transitionend webkitTransitionEnd oTransitionEnd MSTransitionEnd', function(e) { + el.bind('transitionend webkitTransitionEnd oTransitionEnd MSTransitionEnd', function (e) { //make sure it's the correct one - if (!$(e.target).is(el)) { return; } + if (!$(e.target).is(el)) { + return; + } // unbind the callback el.unbind('transitionend webkitTransitionEnd oTransitionEnd MSTransitionEnd'); // reset the position @@ -592,23 +650,27 @@ // start the loop again tickerLoop(); }); - } else { //duration = 0 + } + else { //duration = 0 setPositionProperty(params.resetValue, 'reset', 0); tickerLoop(); } } - // use JS animate - } else { + // use JS animate + } + else { animateObj = {}; animateObj[slider.animProp] = value; if (type === 'slide') { - el.animate(animateObj, duration, slider.settings.easing, function() { + el.animate(animateObj, duration, slider.settings.easing, function () { updateAfterSlideTransition(); }); - } else if (type === 'reset') { + } + else if (type === 'reset') { el.css(slider.animProp, value); - } else if (type === 'ticker') { - el.animate(animateObj, duration, 'linear', function() { + } + else if (type === 'ticker') { + el.animate(animateObj, duration, 'linear', function () { setPositionProperty(params.resetValue, 'reset', 0); // run the recursive loop after animation tickerLoop(); @@ -616,14 +678,13 @@ } } }; - /** * Populates the pager with proper amount of pages */ - var populatePager = function() { - var pagerHtml = '', - linkContent = '', - pagerQty = getPagerQty(); + var populatePager = function () { + var pagerHtml = '' + , linkContent = '' + , pagerQty = getPagerQty(); // loop through each pager item for (var i = 0; i < pagerQty; i++) { linkContent = ''; @@ -631,7 +692,8 @@ if (slider.settings.buildPager && $.isFunction(slider.settings.buildPager) || slider.settings.pagerCustom) { linkContent = slider.settings.buildPager(i); slider.pagerEl.addClass('bx-custom-pager'); - } else { + } + else { linkContent = i + 1; slider.pagerEl.addClass('bx-default-pager'); } @@ -642,34 +704,34 @@ // populate the pager element with pager links slider.pagerEl.html(pagerHtml); }; - /** * Appends the pager to the controls element */ - var appendPager = function() { + var appendPager = function () { if (!slider.settings.pagerCustom) { // create the pager DOM element slider.pagerEl = $('
'); // if a pager selector was supplied, populate it with the pager if (slider.settings.pagerSelector) { $(slider.settings.pagerSelector).html(slider.pagerEl); - // if no pager selector was supplied, add it after the wrapper - } else { + // if no pager selector was supplied, add it after the wrapper + } + else { slider.controls.el.addClass('bx-has-pager').append(slider.pagerEl); } // populate the pager populatePager(); - } else { + } + else { slider.pagerEl = $(slider.settings.pagerCustom); } // assign the pager click binding slider.pagerEl.on('click touchend', 'a', clickPagerBind); }; - /** * Appends prev / next controls to the controls element */ - var appendControls = function() { + var appendControls = function () { slider.controls.next = $('' + slider.settings.nextText + ''); slider.controls.prev = $('' + slider.settings.prevText + ''); // bind click actions to the controls @@ -693,11 +755,10 @@ slider.controls.el.addClass('bx-has-controls-direction').append(slider.controls.directionEl); } }; - /** * Appends start / stop auto controls to the controls element */ - var appendControlsAuto = function() { + var appendControlsAuto = function () { slider.controls.start = $(''); slider.controls.stop = $(''); // add the controls to the DOM @@ -708,27 +769,28 @@ // if autoControlsCombine, insert only the "start" control if (slider.settings.autoControlsCombine) { slider.controls.autoEl.append(slider.controls.start); - // if autoControlsCombine is false, insert both controls - } else { + // if autoControlsCombine is false, insert both controls + } + else { slider.controls.autoEl.append(slider.controls.start).append(slider.controls.stop); } // if auto controls selector was supplied, populate it with the controls if (slider.settings.autoControlsSelector) { $(slider.settings.autoControlsSelector).html(slider.controls.autoEl); - // if auto controls selector was not supplied, add it after the wrapper - } else { + // if auto controls selector was not supplied, add it after the wrapper + } + else { slider.controls.el.addClass('bx-has-controls-auto').append(slider.controls.autoEl); } // update the auto controls updateAutoControls(slider.settings.autoStart ? 'stop' : 'start'); }; - /** * Appends image captions to the DOM */ - var appendCaptions = function() { + var appendCaptions = function () { // cycle through each child - slider.children.each(function(index) { + slider.children.each(function (index) { // get the image title attribute var title = $(this).find('img:first').attr('title'); // append the caption @@ -737,86 +799,92 @@ } }); }; - /** * Click next binding * * @param e (event) * - DOM event object */ - var clickNextBind = function(e) { + var clickNextBind = function (e) { e.preventDefault(); - if (slider.controls.el.hasClass('disabled')) { return; } + if (slider.controls.el.hasClass('disabled')) { + return; + } // if auto show is running, stop it - if (slider.settings.auto && slider.settings.stopAutoOnClick) { el.stopAuto(); } + if (slider.settings.auto && slider.settings.stopAutoOnClick) { + el.stopAuto(); + } el.goToNextSlide(); }; - /** * Click prev binding * * @param e (event) * - DOM event object */ - var clickPrevBind = function(e) { + var clickPrevBind = function (e) { e.preventDefault(); - if (slider.controls.el.hasClass('disabled')) { return; } + if (slider.controls.el.hasClass('disabled')) { + return; + } // if auto show is running, stop it - if (slider.settings.auto && slider.settings.stopAutoOnClick) { el.stopAuto(); } + if (slider.settings.auto && slider.settings.stopAutoOnClick) { + el.stopAuto(); + } el.goToPrevSlide(); }; - /** * Click start binding * * @param e (event) * - DOM event object */ - var clickStartBind = function(e) { + var clickStartBind = function (e) { el.startAuto(); e.preventDefault(); }; - /** * Click stop binding * * @param e (event) * - DOM event object */ - var clickStopBind = function(e) { + var clickStopBind = function (e) { el.stopAuto(); e.preventDefault(); }; - /** * Click pager binding * * @param e (event) * - DOM event object */ - var clickPagerBind = function(e) { + var clickPagerBind = function (e) { var pagerLink, pagerIndex; e.preventDefault(); if (slider.controls.el.hasClass('disabled')) { return; } // if auto show is running, stop it - if (slider.settings.auto && slider.settings.stopAutoOnClick) { el.stopAuto(); } + if (slider.settings.auto && slider.settings.stopAutoOnClick) { + el.stopAuto(); + } pagerLink = $(e.currentTarget); if (pagerLink.attr('data-slide-index') !== undefined) { pagerIndex = parseInt(pagerLink.attr('data-slide-index')); // if clicked pager link is not active, continue with the goToSlide call - if (pagerIndex !== slider.active.index) { el.goToSlide(pagerIndex); } + if (pagerIndex !== slider.active.index) { + el.goToSlideDelayed(pagerIndex); + } } }; - /** * Updates the pager links with an active class * * @param slideIndex (int) * - index of slide to make active */ - var updatePagerActive = function(slideIndex) { + var updatePagerActive = function (slideIndex) { // if "short" pager type var len = slider.children.length; // nb of children if (slider.settings.pagerType === 'short') { @@ -829,13 +897,14 @@ // remove all pager active classes slider.pagerEl.find('a').removeClass('active'); // apply the active class for all pagers - slider.pagerEl.each(function(i, el) { $(el).find('a').eq(slideIndex).addClass('active'); }); + slider.pagerEl.each(function (i, el) { + $(el).find('a').eq(slideIndex).addClass('active'); + }); }; - /** * Performs needed actions after a slide transition */ - var updateAfterSlideTransition = function() { + var updateAfterSlideTransition = function () { // if infinite loop is true if (slider.settings.infiniteLoop) { var position = ''; @@ -843,16 +912,22 @@ if (slider.active.index === 0) { // set the new position position = slider.children.eq(0).position(); - // carousel, last slide - } else if (slider.active.index === getPagerQty() - 1 && slider.carousel) { + // carousel, last slide + } + else if (slider.active.index === getPagerQty() - 1 && slider.carousel) { position = slider.children.eq((getPagerQty() - 1) * getMoveBy()).position(); - // last slide - } else if (slider.active.index === slider.children.length - 1) { + // last slide + } + else if (slider.active.index === slider.children.length - 1) { position = slider.children.eq(slider.children.length - 1).position(); } if (position) { - if (slider.settings.mode === 'horizontal') { setPositionProperty(-position.left, 'reset', 0); } - else if (slider.settings.mode === 'vertical') { setPositionProperty(-position.top, 'reset', 0); } + if (slider.settings.mode === 'horizontal') { + setPositionProperty(-position.left, 'reset', 0); + } + else if (slider.settings.mode === 'vertical') { + setPositionProperty(-position.top, 'reset', 0); + } } } // declare that the transition is complete @@ -860,70 +935,71 @@ // onSlideAfter callback slider.settings.onSlideAfter.call(el, slider.children.eq(slider.active.index), slider.oldIndex, slider.active.index); }; - /** * Updates the auto controls state (either active, or combined switch) * * @param state (string) "start", "stop" * - the new state of the auto show */ - var updateAutoControls = function(state) { + var updateAutoControls = function (state) { // if autoControlsCombine is true, replace the current control with the new state if (slider.settings.autoControlsCombine) { slider.controls.autoEl.html(slider.controls[state]); - // if autoControlsCombine is false, apply the "active" class to the appropriate control - } else { + // if autoControlsCombine is false, apply the "active" class to the appropriate control + } + else { slider.controls.autoEl.find('a').removeClass('active'); slider.controls.autoEl.find('a:not(.bx-' + state + ')').addClass('active'); } }; - /** * Updates the direction controls (checks if either should be hidden) */ - var updateDirectionControls = function() { + var updateDirectionControls = function () { if (getPagerQty() === 1) { slider.controls.prev.addClass('disabled'); slider.controls.next.addClass('disabled'); - } else if (!slider.settings.infiniteLoop && slider.settings.hideControlOnEnd) { + } + else if (!slider.settings.infiniteLoop && slider.settings.hideControlOnEnd) { // if first slide if (slider.active.index === 0) { slider.controls.prev.addClass('disabled'); slider.controls.next.removeClass('disabled'); - // if last slide - } else if (slider.active.index === getPagerQty() - 1) { + // if last slide + } + else if (slider.active.index === getPagerQty() - 1) { slider.controls.next.addClass('disabled'); slider.controls.prev.removeClass('disabled'); - // if any slide in the middle - } else { + // if any slide in the middle + } + else { slider.controls.prev.removeClass('disabled'); slider.controls.next.removeClass('disabled'); } } }; - /** * Initializes the auto process */ - var initAuto = function() { + var initAuto = function () { // if autoDelay was supplied, launch the auto show using a setTimeout() call if (slider.settings.autoDelay > 0) { var timeout = setTimeout(el.startAuto, slider.settings.autoDelay); - // if autoDelay was not supplied, start the auto show normally - } else { + // if autoDelay was not supplied, start the auto show normally + } + else { el.startAuto(); - //add focus and blur events to ensure its running if timeout gets paused - $(window).focus(function() { + $(window).focus(function () { el.startAuto(); - }).blur(function() { + }).blur(function () { el.stopAuto(); }); } // if autoHover is requested if (slider.settings.autoHover) { // on el hover - el.hover(function() { + el.hover(function () { // if the auto show is currently playing (has an active interval) if (slider.interval) { // stop the auto show and pass true argument which will prevent control update @@ -931,7 +1007,7 @@ // create a new autoPaused value which will be used by the relative "mouseout" event slider.autoPaused = true; } - }, function() { + }, function () { // if the autoPaused value was created be the prior "mouseover" event if (slider.autoPaused) { // start the auto show and pass true argument which will prevent control update @@ -942,18 +1018,18 @@ }); } }; - /** * Initializes the ticker process */ - var initTicker = function() { - var startPosition = 0, - position, transform, value, idx, ratio, property, newSpeed, totalDimens; + var initTicker = function () { + var startPosition = 0 + , position, transform, value, idx, ratio, property, newSpeed, totalDimens; // if autoDirection is "next", append a clone of the entire slider if (slider.settings.autoDirection === 'next') { el.append(slider.children.clone().addClass('bx-clone')); - // if autoDirection is "prev", prepend a clone of the entire slider, and set the left position - } else { + // if autoDirection is "prev", prepend a clone of the entire slider, and set the left position + } + else { el.prepend(slider.children.clone().addClass('bx-clone')); position = slider.children.first().position(); startPosition = slider.settings.mode === 'horizontal' ? -position.left : -position.top; @@ -967,13 +1043,13 @@ if (slider.settings.tickerHover) { if (slider.usingCSS) { idx = slider.settings.mode === 'horizontal' ? 4 : 5; - slider.viewport.hover(function() { + slider.viewport.hover(function () { transform = el.css('-' + slider.cssPrefix + '-transform'); value = parseFloat(transform.split(',')[idx]); setPositionProperty(value, 'reset', 0); - }, function() { + }, function () { totalDimens = 0; - slider.children.each(function(index) { + slider.children.each(function (index) { totalDimens += slider.settings.mode === 'horizontal' ? $(this).outerWidth(true) : $(this).outerHeight(true); }); // calculate the speed ratio (used to determine the new speed to finish the paused animation) @@ -984,14 +1060,15 @@ newSpeed = ratio * (totalDimens - (Math.abs(parseInt(value)))); tickerLoop(newSpeed); }); - } else { + } + else { // on el hover - slider.viewport.hover(function() { + slider.viewport.hover(function () { el.stop(); - }, function() { + }, function () { // calculate the total width of children (used to calculate the speed ratio) totalDimens = 0; - slider.children.each(function(index) { + slider.children.each(function (index) { totalDimens += slider.settings.mode === 'horizontal' ? $(this).outerWidth(true) : $(this).outerHeight(true); }); // calculate the speed ratio (used to determine the new speed to finish the paused animation) @@ -1007,111 +1084,116 @@ // start the ticker loop tickerLoop(); }; - /** * Runs a continuous loop, news ticker-style */ - var tickerLoop = function(resumeSpeed) { - var speed = resumeSpeed ? resumeSpeed : slider.settings.speed, - position = {left: 0, top: 0}, - reset = {left: 0, top: 0}, - animateProperty, resetValue, params; - + var tickerLoop = function (resumeSpeed) { + var speed = resumeSpeed ? resumeSpeed : slider.settings.speed + , position = { + left: 0 + , top: 0 + } + , reset = { + left: 0 + , top: 0 + } + , animateProperty, resetValue, params; // if "next" animate left position to last child, then reset left to 0 if (slider.settings.autoDirection === 'next') { position = el.find('.bx-clone').first().position(); - // if "prev" animate left position to 0, then reset left to first non-clone child - } else { + // if "prev" animate left position to 0, then reset left to first non-clone child + } + else { reset = slider.children.first().position(); } animateProperty = slider.settings.mode === 'horizontal' ? -position.left : -position.top; resetValue = slider.settings.mode === 'horizontal' ? -reset.left : -reset.top; - params = {resetValue: resetValue}; + params = { + resetValue: resetValue + }; setPositionProperty(animateProperty, 'ticker', speed, params); }; - /** * Check if el is on screen */ - var isOnScreen = function(el) { - var win = $(window), - viewport = { - top: win.scrollTop(), - left: win.scrollLeft() - }, - bounds = el.offset(); - + var isOnScreen = function (el) { + var win = $(window) + , viewport = { + top: win.scrollTop() + , left: win.scrollLeft() + } + , bounds = el.offset(); viewport.right = viewport.left + win.width(); viewport.bottom = viewport.top + win.height(); bounds.right = bounds.left + el.outerWidth(); bounds.bottom = bounds.top + el.outerHeight(); - return (!(viewport.right < bounds.left || viewport.left > bounds.right || viewport.bottom < bounds.top || viewport.top > bounds.bottom)); }; - /** * Initializes keyboard events */ - var keyPress = function(e) { - var activeElementTag = document.activeElement.tagName.toLowerCase(), - tagFilters = 'input|textarea', - p = new RegExp(activeElementTag,['i']), - result = p.exec(tagFilters); - + var keyPress = function (e) { + var activeElementTag = document.activeElement.tagName.toLowerCase() + , tagFilters = 'input|textarea' + , p = new RegExp(activeElementTag, ['i']) + , result = p.exec(tagFilters); if (result == null && isOnScreen(el)) { if (e.keyCode === 39) { clickNextBind(e); return false; - } else if (e.keyCode === 37) { + } + else if (e.keyCode === 37) { clickPrevBind(e); return false; } } }; - /** * Initializes touch events */ - var initTouch = function() { + var initTouch = function () { // initialize object to contain all touch values slider.touch = { - start: {x: 0, y: 0}, - end: {x: 0, y: 0} + start: { + x: 0 + , y: 0 + } + , end: { + x: 0 + , y: 0 + } }; slider.viewport.bind('touchstart MSPointerDown pointerdown', onTouchStart); - //for browsers that have implemented pointer events and fire a click after //every pointerup regardless of whether pointerup is on same screen location as pointerdown or not - slider.viewport.on('click', '.bxslider a', function(e) { + slider.viewport.on('click', '.bxslider a', function (e) { if (slider.viewport.hasClass('click-disabled')) { e.preventDefault(); slider.viewport.removeClass('click-disabled'); } }); }; - /** * Event handler for "touchstart" * * @param e (event) * - DOM event object */ - var onTouchStart = function(e) { + var onTouchStart = function (e) { //disable slider controls while user is interacting with slides to avoid slider freeze that happens on touch devices when a slide swipe happens immediately after interacting with slider controls slider.controls.el.addClass('disabled'); - if (slider.working) { e.preventDefault(); slider.controls.el.removeClass('disabled'); - } else { + } + else { // record the original position when touch starts slider.touch.originalPos = el.position(); - var orig = e.originalEvent, - touchPoints = (typeof orig.changedTouches !== 'undefined') ? orig.changedTouches : [orig]; + var orig = e.originalEvent + , touchPoints = (typeof orig.changedTouches !== 'undefined') ? orig.changedTouches : [orig]; // record the starting touch x, y coordinates slider.touch.start.x = touchPoints[0].pageX; slider.touch.start.y = touchPoints[0].pageY; - if (slider.viewport.get(0).setPointerCapture) { slider.pointerId = orig.pointerId; slider.viewport.get(0).setPointerCapture(slider.pointerId); @@ -1123,18 +1205,16 @@ slider.viewport.bind('MSPointerCancel pointercancel', onPointerCancel); } }; - /** * Cancel Pointer for Windows Phone * * @param e (event) * - DOM event object */ - var onPointerCancel = function(e) { + var onPointerCancel = function (e) { /* onPointerCancel handler is needed to deal with situations when a touchend doesn't fire after a touchstart (this happens on windows phones only) */ setPositionProperty(slider.touch.originalPos.left, 'reset', 0); - //remove handlers slider.controls.el.removeClass('disabled'); slider.viewport.unbind('MSPointerCancel pointercancel', onPointerCancel); @@ -1144,27 +1224,25 @@ slider.viewport.get(0).releasePointerCapture(slider.pointerId); } }; - /** * Event handler for "touchmove" * * @param e (event) * - DOM event object */ - var onTouchMove = function(e) { - var orig = e.originalEvent, - touchPoints = (typeof orig.changedTouches !== 'undefined') ? orig.changedTouches : [orig], - // if scrolling on y axis, do not prevent default - xMovement = Math.abs(touchPoints[0].pageX - slider.touch.start.x), - yMovement = Math.abs(touchPoints[0].pageY - slider.touch.start.y), - value = 0, - change = 0; - + var onTouchMove = function (e) { + var orig = e.originalEvent + , touchPoints = (typeof orig.changedTouches !== 'undefined') ? orig.changedTouches : [orig], // if scrolling on y axis, do not prevent default + xMovement = Math.abs(touchPoints[0].pageX - slider.touch.start.x) + , yMovement = Math.abs(touchPoints[0].pageY - slider.touch.start.y) + , value = 0 + , change = 0; // x axis swipe if ((xMovement * 3) > yMovement && slider.settings.preventDefaultSwipeX) { e.preventDefault(); - // y axis swipe - } else if ((yMovement * 3) > xMovement && slider.settings.preventDefaultSwipeY) { + // y axis swipe + } + else if ((yMovement * 3) > xMovement && slider.settings.preventDefaultSwipeY) { e.preventDefault(); } if (slider.settings.mode !== 'fade' && slider.settings.oneToOneTouch) { @@ -1172,29 +1250,29 @@ if (slider.settings.mode === 'horizontal') { change = touchPoints[0].pageX - slider.touch.start.x; value = slider.touch.originalPos.left + change; - // if vertical, drag along y axis - } else { + // if vertical, drag along y axis + } + else { change = touchPoints[0].pageY - slider.touch.start.y; value = slider.touch.originalPos.top + change; } setPositionProperty(value, 'reset', 0); } }; - /** * Event handler for "touchend" * * @param e (event) * - DOM event object */ - var onTouchEnd = function(e) { + var onTouchEnd = function (e) { slider.viewport.unbind('touchmove MSPointerMove pointermove', onTouchMove); //enable slider controls as soon as user stops interacing with slides slider.controls.el.removeClass('disabled'); - var orig = e.originalEvent, - touchPoints = (typeof orig.changedTouches !== 'undefined') ? orig.changedTouches : [orig], - value = 0, - distance = 0; + var orig = e.originalEvent + , touchPoints = (typeof orig.changedTouches !== 'undefined') ? orig.changedTouches : [orig] + , value = 0 + , distance = 0; // record end x, y positions slider.touch.end.x = touchPoints[0].pageX; slider.touch.end.y = touchPoints[0].pageY; @@ -1204,34 +1282,40 @@ if (distance >= slider.settings.swipeThreshold) { if (slider.touch.start.x > slider.touch.end.x) { el.goToNextSlide(); - } else { + } + else { el.goToPrevSlide(); } el.stopAuto(); } - // not fade mode - } else { + // not fade mode + } + else { // calculate distance and el's animate property if (slider.settings.mode === 'horizontal') { distance = slider.touch.end.x - slider.touch.start.x; value = slider.touch.originalPos.left; - } else { + } + else { distance = slider.touch.end.y - slider.touch.start.y; value = slider.touch.originalPos.top; } // if not infinite loop and first / last slide, do not attempt a slide transition if (!slider.settings.infiniteLoop && ((slider.active.index === 0 && distance > 0) || (slider.active.last && distance < 0))) { setPositionProperty(value, 'reset', 200); - } else { + } + else { // check if distance clears threshold if (Math.abs(distance) >= slider.settings.swipeThreshold) { if (distance < 0) { el.goToNextSlide(); - } else { + } + else { el.goToPrevSlide(); } el.stopAuto(); - } else { + } + else { // el.animate(property, 200); setPositionProperty(value, 'reset', 200); } @@ -1242,20 +1326,22 @@ slider.viewport.get(0).releasePointerCapture(slider.pointerId); } }; - /** * Window resize event callback */ - var resizeWindow = function(e) { + var resizeWindow = function (e) { // don't do anything if slider isn't initialized. - if (!slider.initialized) { return; } + if (!slider.initialized) { + return; + } // Delay if slider working. if (slider.working) { window.setTimeout(resizeWindow, 10); - } else { + } + else { // get the new window dimens (again, thank you IE) - var windowWidthNew = $(window).width(), - windowHeightNew = $(window).height(); + var windowWidthNew = $(window).width() + , windowHeightNew = $(window).height(); // make sure that it is a true window resize // *we must check this because our dinosaur friend IE fires a window resize event when certain DOM elements // are resized. Can you just die already?* @@ -1270,14 +1356,13 @@ } } }; - /** * Adds an aria-hidden=true attribute to each element * * @param startVisibleIndex (int) * - the first visible element's index */ - var applyAriaHiddenAttributes = function(startVisibleIndex) { + var applyAriaHiddenAttributes = function (startVisibleIndex) { var numberOfSlidesShowing = getNumberSlidesShowing(); // only apply attributes if the setting is enabled and not in ticker mode if (slider.settings.ariaHidden && !slider.settings.ticker) { @@ -1287,41 +1372,42 @@ slider.children.slice(startVisibleIndex, startVisibleIndex + numberOfSlidesShowing).attr('aria-hidden', 'false'); } }; - /** * Returns index according to present page range * * @param slideOndex (int) * - the desired slide index */ - var setSlideIndex = function(slideIndex) { + var setSlideIndex = function (slideIndex) { if (slideIndex < 0) { if (slider.settings.infiniteLoop) { return getPagerQty() - 1; - }else { + } + else { //we don't go to undefined slides return slider.active.index; } - // if slideIndex is greater than children length, set active index to 0 (this happens during infinite loop) - } else if (slideIndex >= getPagerQty()) { + // if slideIndex is greater than children length, set active index to 0 (this happens during infinite loop) + } + else if (slideIndex >= getPagerQty()) { if (slider.settings.infiniteLoop) { return 0; - } else { + } + else { //we don't move to undefined pages return slider.active.index; } - // set active index to requested slide - } else { + // set active index to requested slide + } + else { return slideIndex; } }; - /** * =================================================================================== * = PUBLIC FUNCTIONS * =================================================================================== */ - /** * Performs slide transition to the specified slide * @@ -1331,69 +1417,81 @@ * @param direction (string) * - INTERNAL USE ONLY - the direction of travel ("prev" / "next") */ - el.goToSlide = function(slideIndex, direction) { + el.goToSlide = function (slideIndex, direction) { // onSlideBefore, onSlideNext, onSlidePrev callbacks // Allow transition canceling based on returned value - var performTransition = true, - moveBy = 0, - position = {left: 0, top: 0}, - lastChild = null, - lastShowingIndex, eq, value, requestEl; + var performTransition = true + , moveBy = 0 + , position = { + left: 0 + , top: 0 + } + , lastChild = null + , lastShowingIndex, eq, value, requestEl; // store the old index slider.oldIndex = slider.active.index; //set new index slider.active.index = setSlideIndex(slideIndex); - // if plugin is currently in motion, ignore request - if (slider.working || slider.active.index === slider.oldIndex) { return; } + if (slider.working || slider.active.index === slider.oldIndex) { + return; + } // declare that plugin is in motion slider.working = true; - performTransition = slider.settings.onSlideBefore.call(el, slider.children.eq(slider.active.index), slider.oldIndex, slider.active.index); - // If transitions canceled, reset and return if (typeof (performTransition) !== 'undefined' && !performTransition) { slider.active.index = slider.oldIndex; // restore old index slider.working = false; // is not in motion return; } - if (direction === 'next') { // Prevent canceling in future functions or lack there-of from negating previous commands to cancel if (!slider.settings.onSlideNext.call(el, slider.children.eq(slider.active.index), slider.oldIndex, slider.active.index)) { performTransition = false; } - } else if (direction === 'prev') { + } + else if (direction === 'prev') { // Prevent canceling in future functions or lack there-of from negating previous commands to cancel if (!slider.settings.onSlidePrev.call(el, slider.children.eq(slider.active.index), slider.oldIndex, slider.active.index)) { performTransition = false; } } - // check if last slide slider.active.last = slider.active.index >= getPagerQty() - 1; // update the pager with active class - if (slider.settings.pager || slider.settings.pagerCustom) { updatePagerActive(slider.active.index); } + if (slider.settings.pager || slider.settings.pagerCustom) { + updatePagerActive(slider.active.index); + } // // check for direction control update - if (slider.settings.controls) { updateDirectionControls(); } + if (slider.settings.controls) { + updateDirectionControls(); + } // if slider is set to mode: "fade" if (slider.settings.mode === 'fade') { // if adaptiveHeight is true and next height is different from current height, animate to the new height if (slider.settings.adaptiveHeight && slider.viewport.height() !== getViewportHeight()) { - slider.viewport.animate({height: getViewportHeight()}, slider.settings.adaptiveHeightSpeed); + slider.viewport.animate({ + height: getViewportHeight() + }, slider.settings.adaptiveHeightSpeed); } // fade out the visible child and reset its z-index value - slider.children.filter(':visible').fadeOut(slider.settings.speed).css({zIndex: 0}); + slider.children.filter(':visible').fadeOut(slider.settings.speed).css({ + zIndex: 0 + }); // fade in the newly requested slide - slider.children.eq(slider.active.index).css('zIndex', slider.settings.slideZIndex + 1).fadeIn(slider.settings.speed, function() { + slider.children.eq(slider.active.index).css('zIndex', slider.settings.slideZIndex + 1).fadeIn(slider.settings.speed, function () { $(this).css('zIndex', slider.settings.slideZIndex); updateAfterSlideTransition(); }); - // slider mode is not "fade" - } else { + // slider mode is not "fade" + } + else { // if adaptiveHeight is true and next height is different from current height, animate to the new height if (slider.settings.adaptiveHeight && slider.viewport.height() !== getViewportHeight()) { - slider.viewport.animate({height: getViewportHeight()}, slider.settings.adaptiveHeightSpeed); + slider.viewport.animate({ + height: getViewportHeight() + }, slider.settings.adaptiveHeightSpeed); } // if carousel and not infinite loop if (!slider.settings.infiniteLoop && slider.carousel && slider.active.last) { @@ -1403,29 +1501,32 @@ position = lastChild.position(); // calculate the position of the last slide moveBy = slider.viewport.width() - lastChild.outerWidth(); - } else { + } + else { // get last showing index position lastShowingIndex = slider.children.length - slider.settings.minSlides; position = slider.children.eq(lastShowingIndex).position(); } // horizontal carousel, going previous while on first slide (infiniteLoop mode) - } else if (slider.carousel && slider.active.last && direction === 'prev') { + } + else if (slider.carousel && slider.active.last && direction === 'prev') { // get the last child position eq = slider.settings.moveSlides === 1 ? slider.settings.maxSlides - getMoveBy() : ((getPagerQty() - 1) * getMoveBy()) - (slider.children.length - slider.settings.maxSlides); lastChild = el.children('.bx-clone').eq(eq); position = lastChild.position(); - // if infinite loop and "Next" is clicked on the last slide - } else if (direction === 'next' && slider.active.index === 0) { + // if infinite loop and "Next" is clicked on the last slide + } + else if (direction === 'next' && slider.active.index === 0) { // get the last clone position position = el.find('> .bx-clone').eq(slider.settings.maxSlides).position(); slider.active.last = false; - // normal non-zero requests - } else if (slideIndex >= 0) { + // normal non-zero requests + } + else if (slideIndex >= 0) { //parseInt is applied to allow floats for slides/page requestEl = slideIndex * parseInt(getMoveBy()); position = slider.children.eq(requestEl).position(); } - /* If the position doesn't exist * (e.g. if you destroy the slider on a next click), * it doesn't throw an error. @@ -1434,181 +1535,240 @@ value = slider.settings.mode === 'horizontal' ? -(position.left - moveBy) : -position.top; // plugin values to be animated setPositionProperty(value, 'slide', slider.settings.speed); - } else { + } + else { slider.working = false; } } - if (slider.settings.ariaHidden) { applyAriaHiddenAttributes(slider.active.index * getMoveBy()); } + if (slider.settings.ariaHidden) { + applyAriaHiddenAttributes(slider.active.index * getMoveBy()); + } + setTimeout(function () { + slider.children.eq(slider.active.index).removeClass('out').addClass('in'); + }, 200); }; - /** - * Transitions to the next slide in the show - */ - el.goToNextSlide = function() { + * Performs slide transition to the specified slide with dela + + to allow perform single elemnts out animation + * + * @param slideIndex (int) + * - the destination slide's index (zero-based) + * + * @param direction (string) + * - INTERNAL USE ONLY - the direction of travel ("prev" / "next") + **/ + el.goToSlideDelayed = function (slideIndex, direction) { + var theSlide = slider.children.eq(slideIndex); + var customDelay = parseInt(theSlide.attr('data-pauseBeforeOut')) || slider.settings.pauseBeforeOut; + slider.children.eq(slider.active.index).removeClass('in').addClass('out'); + if (!customDelay) { + el.goToSlide(slideIndex, direction); + } + else { + setTimeout(function () { + el.goToSlide(slideIndex, direction); + }, customDelay); + } + }; + /** + * Transitions to the next slide in the show + */ + el.goToNextSlide = function () { // if infiniteLoop is false and last page is showing, disregard call - if (!slider.settings.infiniteLoop && slider.active.last) { return; } + if (!slider.settings.infiniteLoop && slider.active.last) { + return; + } var pagerIndex = parseInt(slider.active.index) + 1; - el.goToSlide(pagerIndex, 'next'); + el.goToSlideDelayed(pagerIndex, 'next'); }; - /** * Transitions to the prev slide in the show */ - el.goToPrevSlide = function() { + el.goToPrevSlide = function () { // if infiniteLoop is false and last page is showing, disregard call - if (!slider.settings.infiniteLoop && slider.active.index === 0) { return; } + if (!slider.settings.infiniteLoop && slider.active.index === 0) { + return; + } var pagerIndex = parseInt(slider.active.index) - 1; - el.goToSlide(pagerIndex, 'prev'); + el.goToSlideDelayed(pagerIndex, 'prev'); }; - /** * Starts the auto show * * @param preventControlUpdate (boolean) * - if true, auto controls state will not be updated */ - el.startAuto = function(preventControlUpdate) { + el.startAuto = function (preventControlUpdate) { // if an interval already exists, disregard call - if (slider.interval) { return; } + var theSlide = slider.children.eq(slider.active.index); + var customDelay = parseInt(theSlide.attr('data-pauseAfterInt')) || slider.settings.pauseAfterInt || 0; + customDelay += parseInt(theSlide.attr('data-pause')) || slider.settings.pause || 0; + if (slider.interval || (!customDelay)) { + return; + } // create an interval - slider.interval = setInterval(function() { + slider.interval = setTimeout(function () { if (slider.settings.autoDirection === 'next') { el.goToNextSlide(); - } else { + } + else { el.goToPrevSlide(); } - }, slider.settings.pause); + slider.interval = 0; + el.startAuto(preventControlUpdate); + }, customDelay); // if auto controls are displayed and preventControlUpdate is not true - if (slider.settings.autoControls && preventControlUpdate !== true) { updateAutoControls('stop'); } + if (slider.settings.autoControls && preventControlUpdate !== true) { + updateAutoControls('stop'); + } }; - /** * Stops the auto show * * @param preventControlUpdate (boolean) * - if true, auto controls state will not be updated */ - el.stopAuto = function(preventControlUpdate) { + el.stopAuto = function (preventControlUpdate) { // if no interval exists, disregard call - if (!slider.interval) { return; } + if (!slider.interval) { + return; + } // clear the interval clearInterval(slider.interval); slider.interval = null; // if auto controls are displayed and preventControlUpdate is not true - if (slider.settings.autoControls && preventControlUpdate !== true) { updateAutoControls('start'); } + if (slider.settings.autoControls && preventControlUpdate !== true) { + updateAutoControls('start'); + } }; - /** * Returns current slide index (zero-based) */ - el.getCurrentSlide = function() { + el.getCurrentSlide = function () { return slider.active.index; }; - /** * Returns current slide element */ - el.getCurrentSlideElement = function() { + el.getCurrentSlideElement = function () { return slider.children.eq(slider.active.index); }; - /** * Returns a slide element * @param index (int) * - The index (zero-based) of the element you want returned. */ - el.getSlideElement = function(index) { + el.getSlideElement = function (index) { return slider.children.eq(index); }; - /** * Returns number of slides in show */ - el.getSlideCount = function() { + el.getSlideCount = function () { return slider.children.length; }; - /** * Return slider.working variable */ - el.isWorking = function() { + el.isWorking = function () { return slider.working; }; - /** * Update all dynamic slider elements */ - el.redrawSlider = function() { + el.redrawSlider = function () { // resize all children in ratio to new screen size slider.children.add(el.find('.bx-clone')).outerWidth(getSlideWidth()); // adjust the height slider.viewport.css('height', getViewportHeight()); // update the slide position - if (!slider.settings.ticker) { setSlidePosition(); } + if (!slider.settings.ticker) { + setSlidePosition(); + } // if active.last was true before the screen resize, we want // to keep it last no matter what screen size we end on - if (slider.active.last) { slider.active.index = getPagerQty() - 1; } + if (slider.active.last) { + slider.active.index = getPagerQty() - 1; + } // if the active index (page) no longer exists due to the resize, simply set the index as last - if (slider.active.index >= getPagerQty()) { slider.active.last = true; } + if (slider.active.index >= getPagerQty()) { + slider.active.last = true; + } // if a pager is being displayed and a custom pager is not being used, update it if (slider.settings.pager && !slider.settings.pagerCustom) { populatePager(); updatePagerActive(slider.active.index); } - if (slider.settings.ariaHidden) { applyAriaHiddenAttributes(slider.active.index * getMoveBy()); } + if (slider.settings.ariaHidden) { + applyAriaHiddenAttributes(slider.active.index * getMoveBy()); + } }; - /** * Destroy the current instance of the slider (revert everything back to original state) */ - el.destroySlider = function() { + el.destroySlider = function () { // don't do anything if slider has already been destroyed - if (!slider.initialized) { return; } + if (!slider.initialized) { + return; + } slider.initialized = false; $('.bx-clone', this).remove(); - slider.children.each(function() { + slider.children.each(function () { if ($(this).data('origStyle') !== undefined) { $(this).attr('style', $(this).data('origStyle')); - } else { + } + else { $(this).removeAttr('style'); } }); if ($(this).data('origStyle') !== undefined) { this.attr('style', $(this).data('origStyle')); - } else { + } + else { $(this).removeAttr('style'); } $(this).unwrap().unwrap(); - if (slider.controls.el) { slider.controls.el.remove(); } - if (slider.controls.next) { slider.controls.next.remove(); } - if (slider.controls.prev) { slider.controls.prev.remove(); } - if (slider.pagerEl && slider.settings.controls && !slider.settings.pagerCustom) { slider.pagerEl.remove(); } + if (slider.controls.el) { + slider.controls.el.remove(); + } + if (slider.controls.next) { + slider.controls.next.remove(); + } + if (slider.controls.prev) { + slider.controls.prev.remove(); + } + if (slider.pagerEl && slider.settings.controls && !slider.settings.pagerCustom) { + slider.pagerEl.remove(); + } $('.bx-caption', this).remove(); - if (slider.controls.autoEl) { slider.controls.autoEl.remove(); } + if (slider.controls.autoEl) { + slider.controls.autoEl.remove(); + } clearInterval(slider.interval); - if (slider.settings.responsive) { $(window).unbind('resize', resizeWindow); } - if (slider.settings.keyboardEnabled) { $(document).unbind('keydown', keyPress); } + if (slider.settings.responsive) { + $(window).unbind('resize', resizeWindow); + } + if (slider.settings.keyboardEnabled) { + $(document).unbind('keydown', keyPress); + } //remove self reference in data $(this).removeData('bxSlider'); }; - /** * Reload the slider (revert all DOM changes, and re-initialize) */ - el.reloadSlider = function(settings) { - if (settings !== undefined) { options = settings; } + el.reloadSlider = function (settings) { + if (settings !== undefined) { + options = settings; + } el.destroySlider(); init(); //store reference to self in order to access public functions later $(el).data('bxSlider', this); }; - init(); - $(el).data('bxSlider', this); - // returns the current jQuery object return this; }; - })(jQuery); diff --git a/dist/jquery.bxslider.min.css b/dist/jquery.bxslider.min.css index 0b938f2f..d418b08b 100644 --- a/dist/jquery.bxslider.min.css +++ b/dist/jquery.bxslider.min.css @@ -1,10 +1,14 @@ /** * bxSlider v4.2.5 - * Copyright 2013-2015 Steven Wanderski + * Copyright 2013-2017 Steven Wanderski * Written while drinking Belgian ales and listening to jazz * Licensed under MIT (http://opensource.org/licenses/MIT) */ -.bx-wrapper{position:relative;margin:0 auto 60px;padding:0;*zoom:1;-ms-touch-action:pan-y;touch-action:pan-y}.bx-wrapper img{max-width:100%;display:block}.bxslider{margin:0;padding:0}ul.bxslider{list-style:none}.bx-viewport{-webkit-transform:translatez(0)}.bx-wrapper{-moz-box-shadow:0 0 5px #ccc;-webkit-box-shadow:0 0 5px #ccc;box-shadow:0 0 5px #ccc;border:5px solid #fff;background:#fff}.bx-wrapper .bx-controls-auto,.bx-wrapper .bx-pager{position:absolute;bottom:-30px;width:100%}.bx-wrapper .bx-loading{min-height:50px;background:url(images/bx_loader.gif) center center no-repeat #fff;height:100%;width:100%;position:absolute;top:0;left:0;z-index:2000}.bx-wrapper .bx-pager{text-align:center;font-size:.85em;font-family:Arial;font-weight:700;color:#666;padding-top:20px}.bx-wrapper .bx-pager.bx-default-pager a{background:#666;text-indent:-9999px;display:block;width:10px;height:10px;margin:0 5px;outline:0;-moz-border-radius:5px;-webkit-border-radius:5px;border-radius:5px}.bx-wrapper .bx-pager.bx-default-pager a.active,.bx-wrapper .bx-pager.bx-default-pager a:focus,.bx-wrapper .bx-pager.bx-default-pager a:hover{background:#000}.bx-wrapper .bx-controls-auto .bx-controls-auto-item,.bx-wrapper .bx-pager-item{display:inline-block;*zoom:1;*display:inline}.bx-wrapper .bx-pager-item{font-size:0;line-height:0}.bx-wrapper .bx-prev{left:10px;background:url(images/controls.png) no-repeat 0 -32px}.bx-wrapper .bx-prev:focus,.bx-wrapper .bx-prev:hover{background-position:0 0}.bx-wrapper .bx-next{right:10px;background:url(images/controls.png) no-repeat -43px -32px}.bx-wrapper .bx-next:focus,.bx-wrapper .bx-next:hover{background-position:-43px 0}.bx-wrapper .bx-controls-direction a{position:absolute;top:50%;margin-top:-16px;outline:0;width:32px;height:32px;text-indent:-9999px;z-index:9999}.bx-wrapper .bx-controls-direction a.disabled{display:none}.bx-wrapper .bx-controls-auto{text-align:center}.bx-wrapper .bx-controls-auto .bx-start{display:block;text-indent:-9999px;width:10px;height:11px;outline:0;background:url(images/controls.png) -86px -11px no-repeat;margin:0 3px}.bx-wrapper .bx-controls-auto .bx-start.active,.bx-wrapper .bx-controls-auto .bx-start:focus,.bx-wrapper .bx-controls-auto .bx-start:hover{background-position:-86px 0}.bx-wrapper .bx-controls-auto .bx-stop{display:block;text-indent:-9999px;width:9px;height:11px;outline:0;background:url(images/controls.png) -86px -44px no-repeat;margin:0 3px}.bx-wrapper .bx-controls-auto .bx-stop.active,.bx-wrapper .bx-controls-auto .bx-stop:focus,.bx-wrapper .bx-controls-auto .bx-stop:hover{background-position:-86px -33px}.bx-wrapper .bx-controls.bx-has-controls-auto.bx-has-pager .bx-pager{text-align:left;width:80%}.bx-wrapper .bx-controls.bx-has-controls-auto.bx-has-pager .bx-controls-auto{right:0;width:35px}.bx-wrapper .bx-caption{position:absolute;bottom:0;left:0;background:#666;background:rgba(80,80,80,.75);width:100%}.bx-wrapper .bx-caption span{color:#fff;font-family:Arial;display:block;font-size:.85em;padding:10px} \ No newline at end of file +/*! +Animate.css - http://daneden.me/animate +Licensed under the MIT license - http://opensource.org/licenses/MIT +Copyright (c) 2015 Daniel Eden +*/body{-webkit-backface-visibility:hidden}.animated{-webkit-animation-duration:1s;animation-duration:1s;-webkit-animation-fill-mode:both;animation-fill-mode:both}.animated.infinite{animation-iteration-count:infinite}.animated.hinge{-webkit-animation-duration:2s;animation-duration:2s}.animated.bounceIn,.animated.bounceOut,.animated.flipOutX,.animated.flipOutY{-webkit-animation-duration:.75s;animation-duration:.75s}.in .animated.fast,.in .animated.fastIn{-webkit-animation-duration:.5s;animation-duration:.5s}.in .animated.slow,.in .animated.slowIn{-webkit-animation-duration:1.5s;animation-duration:1.5s}.in .animated.xslow,.in .animated.xslowIn{-webkit-animation-duration:2.5s;animation-duration:2.5s}.in .animated.hinge.fast,.in .animated.hinge.fastIn{-webkit-animation-duration:1s;animation-duration:1s}.in .animated.hinge.slow,.in .animated.hinge.slowIn{-webkit-animation-duration:3s;animation-duration:3s}.out .animated.fastOut{-webkit-animation-duration:.5s;animation-duration:.5s}.out .animated.slowOut{-webkit-animation-duration:1.5s;animation-duration:1.5s}.out .animated.xslowOut{-webkit-animation-duration:2.5s;animation-duration:2.5s}.out .animated.hinge.fastOut{-webkit-animation-duration:1s;animation-duration:1s}.out .animated.hinge.slowOut{-webkit-animation-duration:3s;animation-duration:3s}.in .animated{-webkit-animation-delay:.5s;animation-delay:.5s}.in .animated.delay500,.in .animated.delayIn500{-webkit-animation-delay:1s;animation-delay:1s}.in .animated.delay1,.in .animated.delay1000,.in .animated.delayIn1000{-webkit-animation-delay:1.5s;animation-delay:1.5s}.in .animated.delay1500,.in .animated.delayIn1500{-webkit-animation-delay:2s;animation-delay:2s}.in .animated.delay2,.in .animated.delay2000,.in .animated.delayIn2000{-webkit-animation-delay:2.5s;animation-delay:2.5s}.in .animated.delay2500,.in .animated.delayIn2500{-webkit-animation-delay:3s;animation-delay:3s}.in .animated.delay3,.in .animated.delay3000,.in .animated.delayIn3000{-webkit-animation-delay:3.5s;animation-delay:3.5s}.in .animated.delay3500,.in .animated.delayIn3500{-webkit-animation-delay:4s;animation-delay:4s}.in .animated.delay4,.in .animated.delay4000,.in .animated.delayIn4000{-webkit-animation-delay:4.5s;animation-delay:4.5s}.in .animated.delay4500,.in .animated.delayIn4500{-webkit-animation-delay:5s;animation-delay:5s}.in .animated.delay5,.in .animateddelay5000,.in .animateddelayIn5000{-webkit-animation-delay:5.5s;animation-delay:5.5s}.out .animated.delayOut500{-webkit-animation-delay:1s;animation-delay:1s}.out .animated.delayOut1000{-webkit-animation-delay:1.5s;animation-delay:1.5s}.out .animated.delayOut1500{-webkit-animation-delay:2s;animation-delay:2s}.out .animated.delayOut2000{-webkit-animation-delay:2.5s;animation-delay:2.5s}.out .animated.delayOut2500{-webkit-animation-delay:3s;animation-delay:3s}.out .animated.delayOut3000{-webkit-animation-delay:3.5s;animation-delay:3.5s}.out .animated.delayOut3500{-webkit-animation-delay:4s;animation-delay:4s}.out .animated.delayOut4000{-webkit-animation-delay:4.5s;animation-delay:4.5s}.out .animated.delayOut4500{-webkit-animation-delay:5s;animation-delay:5s}.out .animateddelayOut5000{-webkit-animation-delay:5.5s;animation-delay:5.5s}@-webkit-keyframes bounce{0%,100%,20%,50%,80%{-webkit-transform:translateY(0)}40%{-webkit-transform:translateY(-30px)}60%{-webkit-transform:translateY(-15px)}}@keyframes bounce{0%,100%,20%,50%,80%{transform:translateY(0)}40%{transform:translateY(-30px)}60%{transform:translateY(-15px)}}.bounce{-webkit-animation-name:bounce;animation-name:bounce}@-webkit-keyframes bounceIn{0%{opacity:0;-webkit-transform:scale(0.3)}50%{opacity:1;-webkit-transform:scale(1.05)}70%{-webkit-transform:scale(0.9)}100%{-webkit-transform:scale(1)}}@keyframes bounceIn{0%{opacity:0;transform:scale(0.3)}50%{opacity:1;transform:scale(1.05)}70%{transform:scale(0.9)}100%{transform:scale(1)}}.in .bounceIn{-webkit-animation-name:bounceIn;animation-name:bounceIn}@-webkit-keyframes bounceInDown{0%{opacity:0;-webkit-transform:translateY(-2000px)}60%{opacity:1;-webkit-transform:translateY(30px)}80%{-webkit-transform:translateY(-10px)}100%{-webkit-transform:translateY(0)}}@keyframes bounceInDown{0%{opacity:0;transform:translateY(-2000px)}60%{opacity:1;transform:translateY(30px)}80%{transform:translateY(-10px)}100%{transform:translateY(0)}}.in .bounceInDown{-webkit-animation-name:bounceInDown;animation-name:bounceInDown}@-webkit-keyframes bounceInLeft{0%{opacity:0;-webkit-transform:translateX(-2000px)}60%{opacity:1;-webkit-transform:translateX(30px)}80%{-webkit-transform:translateX(-10px)}100%{-webkit-transform:translateX(0)}}@keyframes bounceInLeft{0%{opacity:0;transform:translateX(-2000px)}60%{opacity:1;transform:translateX(30px)}80%{transform:translateX(-10px)}100%{transform:translateX(0)}}.in .bounceInLeft{-webkit-animation-name:bounceInLeft;animation-name:bounceInLeft}@-webkit-keyframes bounceInRight{0%{opacity:0;-webkit-transform:translateX(2000px)}60%{opacity:1;-webkit-transform:translateX(-30px)}80%{-webkit-transform:translateX(10px)}100%{-webkit-transform:translateX(0)}}@keyframes bounceInRight{0%{opacity:0;transform:translateX(2000px)}60%{opacity:1;transform:translateX(-30px)}80%{transform:translateX(10px)}100%{transform:translateX(0)}}.in .bounceInRight{-webkit-animation-name:bounceInRight;animation-name:bounceInRight}@-webkit-keyframes bounceInUp{0%{opacity:0;-webkit-transform:translateY(2000px)}60%{opacity:1;-webkit-transform:translateY(-30px)}80%{-webkit-transform:translateY(10px)}100%{-webkit-transform:translateY(0)}}@keyframes bounceInUp{0%{opacity:0;transform:translateY(2000px)}60%{opacity:1;transform:translateY(-30px)}80%{transform:translateY(10px)}100%{transform:translateY(0)}}.in .bounceInUp{-webkit-animation-name:bounceInUp;animation-name:bounceInUp}@-webkit-keyframes bounceOut{0%{-webkit-transform:scale(1)}25%{-webkit-transform:scale(0.95)}50%{opacity:1;-webkit-transform:scale(1.1)}100%{opacity:0;-webkit-transform:scale(0.3)}}@keyframes bounceOut{0%{transform:scale(1)}25%{transform:scale(0.95)}50%{opacity:1;transform:scale(1.1)}100%{opacity:0;transform:scale(0.3)}}.out .bounceOut{-webkit-animation-name:bounceOut;animation-name:bounceOut}@-webkit-keyframes bounceOutDown{0%{-webkit-transform:translateY(0)}20%{opacity:1;-webkit-transform:translateY(-20px)}100%{opacity:0;-webkit-transform:translateY(2000px)}}@keyframes bounceOutDown{0%{transform:translateY(0)}20%{opacity:1;transform:translateY(-20px)}100%{opacity:0;transform:translateY(2000px)}}.out .bounceOutDown{-webkit-animation-name:bounceOutDown;animation-name:bounceOutDown}@-webkit-keyframes bounceOutLeft{0%{-webkit-transform:translateX(0)}20%{opacity:1;-webkit-transform:translateX(20px)}100%{opacity:0;-webkit-transform:translateX(-2000px)}}@keyframes bounceOutLeft{0%{transform:translateX(0)}20%{opacity:1;transform:translateX(20px)}100%{opacity:0;transform:translateX(-2000px)}}.out .bounceOutLeft{-webkit-animation-name:bounceOutLeft;animation-name:bounceOutLeft}@-webkit-keyframes bounceOutRight{0%{-webkit-transform:translateX(0)}20%{opacity:1;-webkit-transform:translateX(-20px)}100%{opacity:0;-webkit-transform:translateX(2000px)}}@keyframes bounceOutRight{0%{transform:translateX(0)}20%{opacity:1;transform:translateX(-20px)}100%{opacity:0;transform:translateX(2000px)}}.out .bounceOutRight{-webkit-animation-name:bounceOutRight;animation-name:bounceOutRight}@-webkit-keyframes bounceOutUp{0%{-webkit-transform:translateY(0)}20%{opacity:1;-webkit-transform:translateY(20px)}100%{opacity:0;-webkit-transform:translateY(-2000px)}}@keyframes bounceOutUp{0%{transform:translateY(0)}20%{opacity:1;transform:translateY(20px)}100%{opacity:0;transform:translateY(-2000px)}}.out .bounceOutUp{-webkit-animation-name:bounceOutUp;animation-name:bounceOutUp}@-webkit-keyframes fadeIn{0%{opacity:0}100%{opacity:1}}@keyframes fadeIn{0%{opacity:0}100%{opacity:1}}.in .fadeIn{-webkit-animation-name:fadeIn;animation-name:fadeIn}@-webkit-keyframes fadeInDown{0%{opacity:0;-webkit-transform:translateY(-20px)}100%{opacity:1;-webkit-transform:translateY(0)}}@keyframes fadeInDown{0%{opacity:0;transform:translateY(-20px)}100%{opacity:1;transform:translateY(0)}}.in .fadeInDown{-webkit-animation-name:fadeInDown;animation-name:fadeInDown}@-webkit-keyframes fadeInDownBig{0%{opacity:0;-webkit-transform:translateY(-2000px)}100%{opacity:1;-webkit-transform:translateY(0)}}@keyframes fadeInDownBig{0%{opacity:0;transform:translateY(-2000px)}100%{opacity:1;transform:translateY(0)}}.in .fadeInDownBig{-webkit-animation-name:fadeInDownBig;animation-name:fadeInDownBig}@-webkit-keyframes fadeInLeft{0%{opacity:0;-webkit-transform:translateX(-20px)}100%{opacity:1;-webkit-transform:translateX(0)}}@keyframes fadeInLeft{0%{opacity:0;transform:translateX(-20px)}100%{opacity:1;transform:translateX(0)}}.in .fadeInLeft{-webkit-animation-name:fadeInLeft;animation-name:fadeInLeft}@-webkit-keyframes fadeInLeftBig{0%{opacity:0;-webkit-transform:translateX(-2000px)}100%{opacity:1;-webkit-transform:translateX(0)}}@keyframes fadeInLeftBig{0%{opacity:0;transform:translateX(-2000px)}100%{opacity:1;transform:translateX(0)}}.in .fadeInLeftBig{-webkit-animation-name:fadeInLeftBig;animation-name:fadeInLeftBig}@-webkit-keyframes fadeInRight{0%{opacity:0;-webkit-transform:translateX(20px)}100%{opacity:1;-webkit-transform:translateX(0)}}@keyframes fadeInRight{0%{opacity:0;transform:translateX(20px)}100%{opacity:1;transform:translateX(0)}}.in .fadeInRight{-webkit-animation-name:fadeInRight;animation-name:fadeInRight}@-webkit-keyframes fadeInRightBig{0%{opacity:0;-webkit-transform:translateX(2000px)}100%{opacity:1;-webkit-transform:translateX(0)}}@keyframes fadeInRightBig{0%{opacity:0;transform:translateX(2000px)}100%{opacity:1;transform:translateX(0)}}.in .fadeInRightBig{-webkit-animation-name:fadeInRightBig;animation-name:fadeInRightBig}@-webkit-keyframes fadeInUp{0%{opacity:0;-webkit-transform:translateY(20px)}100%{opacity:1;-webkit-transform:translateY(0)}}@keyframes fadeInUp{0%{opacity:0;transform:translateY(20px)}100%{opacity:1;transform:translateY(0)}}.in .fadeInUp{-webkit-animation-name:fadeInUp;animation-name:fadeInUp}@-webkit-keyframes fadeInUpBig{0%{opacity:0;-webkit-transform:translateY(2000px)}100%{opacity:1;-webkit-transform:translateY(0)}}@keyframes fadeInUpBig{0%{opacity:0;transform:translateY(2000px)}100%{opacity:1;transform:translateY(0)}}.in .fadeInUpBig{-webkit-animation-name:fadeInUpBig;animation-name:fadeInUpBig}@-webkit-keyframes fadeOut{0%{opacity:1}100%{opacity:0}}@keyframes fadeOut{0%{opacity:1}100%{opacity:0}}.out .fadeOut{-webkit-animation-name:fadeOut;animation-name:fadeOut}@-webkit-keyframes fadeOutDown{0%{opacity:1;-webkit-transform:translateY(0)}100%{opacity:0;-webkit-transform:translateY(20px)}}@keyframes fadeOutDown{0%{opacity:1;transform:translateY(0)}100%{opacity:0;transform:translateY(20px)}}.out .fadeOutDown{-webkit-animation-name:fadeOutDown;animation-name:fadeOutDown}@-webkit-keyframes fadeOutDownBig{0%{opacity:1;-webkit-transform:translateY(0)}100%{opacity:0;-webkit-transform:translateY(2000px)}}@keyframes fadeOutDownBig{0%{opacity:1;transform:translateY(0)}100%{opacity:0;transform:translateY(2000px)}}.out .fadeOutDownBig{-webkit-animation-name:fadeOutDownBig;animation-name:fadeOutDownBig}@-webkit-keyframes fadeOutLeft{0%{opacity:1;-webkit-transform:translateX(0)}100%{opacity:0;-webkit-transform:translateX(-20px)}}@keyframes fadeOutLeft{0%{opacity:1;transform:translateX(0)}100%{opacity:0;transform:translateX(-20px)}}.out .fadeOutLeft{-webkit-animation-name:fadeOutLeft;animation-name:fadeOutLeft}@-webkit-keyframes fadeOutLeftBig{0%{opacity:1;-webkit-transform:translateX(0)}100%{opacity:0;-webkit-transform:translateX(-2000px)}}@keyframes fadeOutLeftBig{0%{opacity:1;transform:translateX(0)}100%{opacity:0;transform:translateX(-2000px)}}.out .fadeOutLeftBig{-webkit-animation-name:fadeOutLeftBig;animation-name:fadeOutLeftBig}@-webkit-keyframes fadeOutRight{0%{opacity:1;-webkit-transform:translateX(0)}100%{opacity:0;-webkit-transform:translateX(20px)}}@keyframes fadeOutRight{0%{opacity:1;transform:translateX(0)}100%{opacity:0;transform:translateX(20px)}}.out .fadeOutRight{-webkit-animation-name:fadeOutRight;animation-name:fadeOutRight}@-webkit-keyframes fadeOutRightBig{0%{opacity:1;-webkit-transform:translateX(0)}100%{opacity:0;-webkit-transform:translateX(2000px)}}@keyframes fadeOutRightBig{0%{opacity:1;transform:translateX(0)}100%{opacity:0;transform:translateX(2000px)}}.out .fadeOutRightBig{-webkit-animation-name:fadeOutRightBig;animation-name:fadeOutRightBig}@-webkit-keyframes fadeOutUp{0%{opacity:1;-webkit-transform:translateY(0)}100%{opacity:0;-webkit-transform:translateY(-20px)}}@keyframes fadeOutUp{0%{opacity:1;transform:translateY(0)}100%{opacity:0;transform:translateY(-20px)}}.out .fadeOutUp{-webkit-animation-name:fadeOutUp;animation-name:fadeOutUp}@-webkit-keyframes fadeOutUpBig{0%{opacity:1;-webkit-transform:translateY(0)}100%{opacity:0;-webkit-transform:translateY(-2000px)}}@keyframes fadeOutUpBig{0%{opacity:1;transform:translateY(0)}100%{opacity:0;transform:translateY(-2000px)}}.out .fadeOutUpBig{-webkit-animation-name:fadeOutUpBig;animation-name:fadeOutUpBig}@-webkit-keyframes flipInX{0%{-webkit-transform:perspective(400px) rotateX(90deg);opacity:0}40%{-webkit-transform:perspective(400px) rotateX(-10deg)}70%{-webkit-transform:perspective(400px) rotateX(10deg)}100%{-webkit-transform:perspective(400px) rotateX(0deg);opacity:1}}@keyframes flipInX{0%{transform:perspective(400px) rotateX(90deg);opacity:0}40%{transform:perspective(400px) rotateX(-10deg)}70%{transform:perspective(400px) rotateX(10deg)}100%{transform:perspective(400px) rotateX(0deg);opacity:1}}.in .flipInX{-webkit-backface-visibility:visible!important;backface-visibility:visible!important;-webkit-animation-name:flipInX;animation-name:flipInX}@-webkit-keyframes flipInY{0%{-webkit-transform:perspective(400px) rotateY(90deg);opacity:0}40%{-webkit-transform:perspective(400px) rotateY(-10deg)}70%{-webkit-transform:perspective(400px) rotateY(10deg)}100%{-webkit-transform:perspective(400px) rotateY(0deg);opacity:1}}@keyframes flipInY{0%{transform:perspective(400px) rotateY(90deg);opacity:0}40%{transform:perspective(400px) rotateY(-10deg)}70%{transform:perspective(400px) rotateY(10deg)}100%{transform:perspective(400px) rotateY(0deg);opacity:1}}.in .flipInY{-webkit-backface-visibility:visible!important;backface-visibility:visible!important;-webkit-animation-name:flipInY;animation-name:flipInY}@-webkit-keyframes flipOutX{0%{-webkit-transform:perspective(400px) rotateX(0deg);opacity:1}100%{-webkit-transform:perspective(400px) rotateX(90deg);opacity:0}}@keyframes flipOutX{0%{transform:perspective(400px) rotateX(0deg);opacity:1}100%{transform:perspective(400px) rotateX(90deg);opacity:0}}.out .flipOutX{-webkit-animation-name:flipOutX;animation-name:flipOutX;-webkit-backface-visibility:visible!important;backface-visibility:visible!important}@-webkit-keyframes flipOutY{0%{-webkit-transform:perspective(400px) rotateY(0deg);opacity:1}100%{-webkit-transform:perspective(400px) rotateY(90deg);opacity:0}}@keyframes flipOutY{0%{transform:perspective(400px) rotateY(0deg);opacity:1}100%{transform:perspective(400px) rotateY(90deg);opacity:0}}.out .flipOutY{-webkit-backface-visibility:visible!important;backface-visibility:visible!important;-webkit-animation-name:flipOutY;animation-name:flipOutY}@-webkit-keyframes lightSpeedIn{0%{-webkit-transform:translateX(100%) skewX(-30deg);opacity:0}60%{-webkit-transform:translateX(-20%) skewX(30deg);opacity:1}80%{-webkit-transform:translateX(0%) skewX(-15deg);opacity:1}100%{-webkit-transform:translateX(0%) skewX(0deg);opacity:1}}@keyframes lightSpeedIn{0%{transform:translateX(100%) skewX(-30deg);opacity:0}60%{transform:translateX(-20%) skewX(30deg);opacity:1}80%{transform:translateX(0%) skewX(-15deg);opacity:1}100%{transform:translateX(0%) skewX(0deg);opacity:1}}.in .lightSpeedIn{-webkit-animation-name:lightSpeedIn;animation-name:lightSpeedIn;-webkit-animation-timing-function:ease-out;animation-timing-function:ease-out}@-webkit-keyframes lightSpeedOut{0%{-webkit-transform:translateX(0%) skewX(0deg);opacity:1}100%{-webkit-transform:translateX(100%) skewX(-30deg);opacity:0}}@keyframes lightSpeedOut{0%{transform:translateX(0%) skewX(0deg);opacity:1}100%{transform:translateX(100%) skewX(-30deg);opacity:0}}.out .lightSpeedOut{-webkit-animation-name:lightSpeedOut;animation-name:lightSpeedOut;-webkit-animation-timing-function:ease-in;animation-timing-function:ease-in}@-webkit-keyframes rotateIn{0%{-webkit-transform-origin:center center;-webkit-transform:rotate(-200deg);opacity:0}100%{-webkit-transform-origin:center center;-webkit-transform:rotate(0);opacity:1}}@keyframes rotateIn{0%{transform-origin:center center;transform:rotate(-200deg);opacity:0}100%{transform-origin:center center;transform:rotate(0);opacity:1}}.in .rotateIn{-webkit-animation-name:rotateIn;animation-name:rotateIn}@-webkit-keyframes rotateInDownLeft{0%{-webkit-transform-origin:left bottom;-webkit-transform:rotate(-90deg);opacity:0}100%{-webkit-transform-origin:left bottom;-webkit-transform:rotate(0);opacity:1}}@keyframes rotateInDownLeft{0%{transform-origin:left bottom;transform:rotate(-90deg);opacity:0}100%{transform-origin:left bottom;transform:rotate(0);opacity:1}}.in .rotateInDownLeft{-webkit-animation-name:rotateInDownLeft;animation-name:rotateInDownLeft}@-webkit-keyframes rotateInDownRight{0%{-webkit-transform-origin:right bottom;-webkit-transform:rotate(90deg);opacity:0}100%{-webkit-transform-origin:right bottom;-webkit-transform:rotate(0);opacity:1}}@keyframes rotateInDownRight{0%{transform-origin:right bottom;transform:rotate(90deg);opacity:0}100%{transform-origin:right bottom;transform:rotate(0);opacity:1}}.in .rotateInDownRight{-webkit-animation-name:rotateInDownRight;animation-name:rotateInDownRight}@-webkit-keyframes rotateInUpLeft{0%{-webkit-transform-origin:left bottom;-webkit-transform:rotate(90deg);opacity:0}100%{-webkit-transform-origin:left bottom;-webkit-transform:rotate(0);opacity:1}}@keyframes rotateInUpLeft{0%{transform-origin:left bottom;transform:rotate(90deg);opacity:0}100%{transform-origin:left bottom;transform:rotate(0);opacity:1}}.in .rotateInUpLeft{-webkit-animation-name:rotateInUpLeft;animation-name:rotateInUpLeft}@-webkit-keyframes rotateInUpRight{0%{-webkit-transform-origin:right bottom;-webkit-transform:rotate(-90deg);opacity:0}100%{-webkit-transform-origin:right bottom;-webkit-transform:rotate(0);opacity:1}}@keyframes rotateInUpRight{0%{transform-origin:right bottom;transform:rotate(-90deg);opacity:0}100%{transform-origin:right bottom;transform:rotate(0);opacity:1}}.in .rotateInUpRight{-webkit-animation-name:rotateInUpRight;animation-name:rotateInUpRight}@-webkit-keyframes rotateOut{0%{-webkit-transform-origin:center center;-webkit-transform:rotate(0);opacity:1}100%{-webkit-transform-origin:center center;-webkit-transform:rotate(200deg);opacity:0}}@keyframes rotateOut{0%{transform-origin:center center;transform:rotate(0);opacity:1}100%{transform-origin:center center;transform:rotate(200deg);opacity:0}}.out .rotateOut{-webkit-animation-name:rotateOut;animation-name:rotateOut}@-webkit-keyframes rotateOutDownLeft{0%{-webkit-transform-origin:left bottom;-webkit-transform:rotate(0);opacity:1}100%{-webkit-transform-origin:left bottom;-webkit-transform:rotate(90deg);opacity:0}}@keyframes rotateOutDownLeft{0%{transform-origin:left bottom;transform:rotate(0);opacity:1}100%{transform-origin:left bottom;transform:rotate(90deg);opacity:0}}.out .rotateOutDownLeft{-webkit-animation-name:rotateOutDownLeft;animation-name:rotateOutDownLeft}@-webkit-keyframes rotateOutDownRight{0%{-webkit-transform-origin:right bottom;-webkit-transform:rotate(0);opacity:1}100%{-webkit-transform-origin:right bottom;-webkit-transform:rotate(-90deg);opacity:0}}@keyframes rotateOutDownRight{0%{transform-origin:right bottom;transform:rotate(0);opacity:1}100%{transform-origin:right bottom;transform:rotate(-90deg);opacity:0}}.out .rotateOutDownRight{-webkit-animation-name:rotateOutDownRight;animation-name:rotateOutDownRight}@-webkit-keyframes rotateOutUpLeft{0%{-webkit-transform-origin:left bottom;-webkit-transform:rotate(0);opacity:1}100%{-webkit-transform-origin:left bottom;-webkit-transform:rotate(-90deg);opacity:0}}@keyframes rotateOutUpLeft{0%{transform-origin:left bottom;transform:rotate(0);opacity:1}100%{-transform-origin:left bottom;-transform:rotate(-90deg);opacity:0}}.out .rotateOutUpLeft{-webkit-animation-name:rotateOutUpLeft;animation-name:rotateOutUpLeft}@-webkit-keyframes rotateOutUpRight{0%{-webkit-transform-origin:right bottom;-webkit-transform:rotate(0);opacity:1}100%{-webkit-transform-origin:right bottom;-webkit-transform:rotate(90deg);opacity:0}}@keyframes rotateOutUpRight{0%{transform-origin:right bottom;transform:rotate(0);opacity:1}100%{transform-origin:right bottom;transform:rotate(90deg);opacity:0}}.out .rotateOutUpRight{-webkit-animation-name:rotateOutUpRight;animation-name:rotateOutUpRight}@-webkit-keyframes slideInDown{0%{-webkit-transform:translate3d(0,-100%,0);visibility:visible}100%{-webkit-transform:translate3d(0,0,0)}}@keyframes slideInDown{0%{transform:translate3d(0,-100%,0);visibility:visible}100%{transform:translate3d(0,0,0)}}.in .slideInDown{-webkit-animation-name:slideInDown;animation-name:slideInDown}@-webkit-keyframes slideInLeft{0%{-webkit-transform:translate3d(-100%,0,0);visibility:visible}100%{-webkit-transform:translate3d(0,0,0)}}@keyframes slideInLeft{0%{transform:translate3d(-100%,0,0);visibility:visible}100%{transform:translate3d(0,0,0)}}.in .slideInLeft{-webkit-animation-name:slideInLeft;animation-name:slideInLeft}@-webkit-keyframes slideInRight{0%{-webkit-transform:translate3d(100%,0,0);visibility:visible}100%{-webkit-transform:translate3d(0,0,0)}}@keyframes slideInRight{0%{transform:translate3d(100%,0,0);visibility:visible}100%{transform:translate3d(0,0,0)}}.in .slideInRight{-webkit-animation-name:slideInRight;animation-name:slideInRight}@-webkit-keyframes slideInUp{0%{-webkit-transform:translate3d(0,100%,0);visibility:visible}100%{-webkit-transform:translate3d(0,0,0)}}@keyframes slideInUp{0%{transform:translate3d(0,100%,0);visibility:visible}100%{transform:translate3d(0,0,0)}}.in .slideInUp{-webkit-animation-name:slideInUp;animation-name:slideInUp}@-webkit-keyframes slideOutDown{0%{-webkit-transform:translate3d(0,0,0);visibility:visible}100%{-webkit-transform:translate3d(0,100%,0)}}@keyframes slideOutDown{0%{transform:translate3d(0,0,0);visibility:visible}100%{transform:translate3d(0,100%,0)}}.out .slideOutDown{-webkit-animation-name:slideOutDown;animation-name:slideOutDown}@-webkit-keyframes slideOutLeft{0%{-webkit-transform:translate3d(0,0,0);visibility:visible}100%{-webkit-transform:translate3d(-100%,0,0)}}@keyframes slideOutLeft{0%{transform:translate3d(0,0,0);visibility:visible}100%{transform:translate3d(-100%,0,0)}}.out .slideOutLeft{-webkit-animation-name:slideOutLeft;animation-name:slideOutLeft}@-webkit-keyframes slideOutRight{0%{-webkit-transform:translate3d(0,0,0);visibility:visible}100%{-webkit-transform:translate3d(100%,0,0)}}@keyframes slideOutRight{0%{transform:translate3d(0,0,0);visibility:visible}100%{transform:translate3d(100%,0,0)}}.out .slideOutRight{-webkit-animation-name:slideOutRight;animation-name:slideOutRight}@-webkit-keyframes slideOutUp{0%{-webkit-transform:translate3d(0,0,0);visibility:visible}100%{-webkit-transform:translate3d(0,-100%,0)}}@keyframes slideOutUp{0%{transform:translate3d(0,0,0);visibility:visible}100%{transform:translate3d(0,-100%,0)}}.out .slideOutUp{-webkit-animation-name:slideOutUp;animation-name:slideOutUp}@-webkit-keyframes hinge{0%{-webkit-transform:rotate(0);-webkit-transform-origin:top left;-webkit-animation-timing-function:ease-in-out}20%,60%{-webkit-transform:rotate(80deg);-webkit-transform-origin:top left;-webkit-animation-timing-function:ease-in-out}40%{-webkit-transform:rotate(60deg);-webkit-transform-origin:top left;-webkit-animation-timing-function:ease-in-out}80%{-webkit-transform:rotate(60deg) translateY(0);opacity:1;-webkit-transform-origin:top left;-webkit-animation-timing-function:ease-in-out}100%{-webkit-transform:translateY(700px);opacity:0}}@keyframes hinge{0%{transform:rotate(0);transform-origin:top left;animation-timing-function:ease-in-out}20%,60%{transform:rotate(80deg);transform-origin:top left;animation-timing-function:ease-in-out}40%{transform:rotate(60deg);transform-origin:top left;animation-timing-function:ease-in-out}80%{transform:rotate(60deg) translateY(0);opacity:1;transform-origin:top left;animation-timing-function:ease-in-out}100%{transform:translateY(700px);opacity:0}}.out .hingeOut{-webkit-animation-name:hinge;animation-name:hinge}@-webkit-keyframes rollIn{0%{opacity:0;-webkit-transform:translateX(-100%) rotate(-120deg)}100%{opacity:1;-webkit-transform:translateX(0px) rotate(0deg)}}@keyframes rollIn{0%{opacity:0;transform:translateX(-100%) rotate(-120deg)}100%{opacity:1;transform:translateX(0px) rotate(0deg)}}.in .rollIn{-webkit-animation-name:rollIn;animation-name:rollIn}@-webkit-keyframes rollOut{0%{opacity:1;-webkit-transform:translateX(0px) rotate(0deg)}100%{opacity:0;-webkit-transform:translateX(100%) rotate(120deg)}}@keyframes rollOut{0%{opacity:1;transform:translateX(0px) rotate(0deg)}100%{opacity:0;transform:translateX(100%) rotate(120deg)}}.out .rollOut{-webkit-animation-name:rollOut;animation-name:rollOut}@-webkit-keyframes zoomIn{0%{opacity:0;-webkit-transform:scale3d(0.3,.3,.3)}50%{opacity:1}}@keyframes zoomIn{0%{opacity:0;transform:scale3d(0.3,.3,.3)}50%{opacity:1}}.in .zoomIn{-webkit-animation-name:zoomIn;animation-name:zoomIn}@-webkit-keyframes zoomInDown{0%{opacity:0;-webkit-transform:scale3d(0.1,.1,.1) translate3d(0,-1000px,0);-webkit-animation-timing-function:cubic-bezier(0.55,.055,.675,.19)}60%{opacity:1;-webkit-transform:scale3d(0.475,.475,.475) translate3d(0,60px,0);-webkit-animation-timing-function:cubic-bezier(0.175,.885,.32,1)}}@keyframes zoomInDown{0%{opacity:0;transform:scale3d(0.1,.1,.1) translate3d(0,-1000px,0);animation-timing-function:cubic-bezier(0.55,.055,.675,.19)}60%{opacity:1;transform:scale3d(0.475,.475,.475) translate3d(0,60px,0);animation-timing-function:cubic-bezier(0.175,.885,.32,1)}}.in .zoomInDown{-webkit-animation-name:zoomInDown;animation-name:zoomInDown}@-webkit-keyframes zoomInLeft{0%{opacity:0;-webkit-transform:scale3d(0.1,.1,.1) translate3d(-1000px,0,0);-webkit-animation-timing-function:cubic-bezier(0.55,.055,.675,.19)}60%{opacity:1;-webkit-transform:scale3d(0.475,.475,.475) translate3d(10px,0,0);-webkit-animation-timing-function:cubic-bezier(0.175,.885,.32,1)}}@keyframes zoomInLeft{0%{opacity:0;transform:scale3d(0.1,.1,.1) translate3d(-1000px,0,0);animation-timing-function:cubic-bezier(0.55,.055,.675,.19)}60%{opacity:1;transform:scale3d(0.475,.475,.475) translate3d(10px,0,0);animation-timing-function:cubic-bezier(0.175,.885,.32,1)}}.in .zoomInLeft{-webkit-animation-name:zoomInLeft;animation-name:zoomInLeft}@-webkit-keyframes zoomInRight{0%{opacity:0;-webkit-transform:scale3d(0.1,.1,.1) translate3d(1000px,0,0);-webkit-animation-timing-function:cubic-bezier(0.55,.055,.675,.19)}60%{opacity:1;-webkit-transform:scale3d(0.475,.475,.475) translate3d(-10px,0,0);-webkit-animation-timing-function:cubic-bezier(0.175,.885,.32,1)}}@keyframes zoomInRight{0%{opacity:0;transform:scale3d(0.1,.1,.1) translate3d(1000px,0,0);animation-timing-function:cubic-bezier(0.55,.055,.675,.19)}60%{opacity:1;transform:scale3d(0.475,.475,.475) translate3d(-10px,0,0);animation-timing-function:cubic-bezier(0.175,.885,.32,1)}}.in .zoomInRight{-webkit-animation-name:zoomInRight;animation-name:zoomInRight}@-webkit-keyframes zoomInUp{0%{opacity:0;-webkit-transform:scale3d(0.1,.1,.1) translate3d(0,1000px,0);-webkit-animation-timing-function:cubic-bezier(0.55,.055,.675,.19)}60%{opacity:1;-webkit-transform:scale3d(0.475,.475,.475) translate3d(0,-60px,0);-webkit-animation-timing-function:cubic-bezier(0.175,.885,.32,1)}}@keyframes zoomInUp{0%{opacity:0;transform:scale3d(0.1,.1,.1) translate3d(0,1000px,0);animation-timing-function:cubic-bezier(0.55,.055,.675,.19)}60%{opacity:1;transform:scale3d(0.475,.475,.475) translate3d(0,-60px,0);animation-timing-function:cubic-bezier(0.175,.885,.32,1)}}.in .zoomInUp{-webkit-animation-name:zoomInUp;animation-name:zoomInUp}@-webkit-keyframes zoomOut{0%{opacity:1}50%{opacity:0;-webkit-transform:scale3d(0.3,.3,.3)}100%{opacity:0}}@keyframes zoomOut{0%{opacity:1}50%{opacity:0;transform:scale3d(0.3,.3,.3)}100%{opacity:0}}.out .zoomOut{-webkit-animation-name:zoomOut;animation-name:zoomOut}@-webkit-keyframes zoomOutDown{40%{opacity:1;-webkit-transform:scale3d(0.475,.475,.475) translate3d(0,-60px,0);-webkit-animation-timing-function:cubic-bezier(0.55,.055,.675,.19)}100%{opacity:0;-webkit-transform:scale3d(0.1,.1,.1) translate3d(0,2000px,0);-webkit-transform-origin:center bottom;-webkit-animation-timing-function:cubic-bezier(0.175,.885,.32,1)}}@keyframes zoomOutDown{40%{opacity:1;transform:scale3d(0.475,.475,.475) translate3d(0,-60px,0);animation-timing-function:cubic-bezier(0.55,.055,.675,.19)}100%{opacity:0;transform:scale3d(0.1,.1,.1) translate3d(0,2000px,0);transform-origin:center bottom;animation-timing-function:cubic-bezier(0.175,.885,.32,1)}}.out .zoomOutDown{-webkit-animation-name:zoomOutDown;animation-name:zoomOutDown}@-webkit-keyframes zoomOutLeft{40%{opacity:1;-webkit-transform:scale3d(0.475,.475,.475) translate3d(42px,0,0)}100%{opacity:0;-webkit-transform:scale3d(0.1) translate3d(-2000px,0,0);-webkit-transform-origin:left center}}@keyframes zoomOutLeft{40%{opacity:1;transform:scale3d(0.475,.475,.475) translate3d(42px,0,0)}100%{opacity:0;transform:scale3d(0.1) translate3d(-2000px,0,0);transform-origin:left center}}.out .zoomOutLeft{-webkit-animation-name:zoomOutLeft;animation-name:zoomOutLeft}@-webkit-keyframes zoomOutRight{40%{opacity:1;-webkit-transform:scale3d(0.475,.475,.475) translate3d(-42px,0,0)}100%{opacity:0;-webkit-transform:scale3d(0.1) translate3d(2000px,0,0);-webkit-transform-origin:right center}}@keyframes zoomOutRight{40%{opacity:1;transform:scale3d(0.475,.475,.475) translate3d(-42px,0,0)}100%{opacity:0;transform:scale3d(0.1) translate3d(2000px,0,0);transform-origin:right center}}.out .zoomOutRight{-webkit-animation-name:zoomOutRight;animation-name:zoomOutRight}@-webkit-keyframes zoomOutUp{40%{opacity:1;-webkit-transform:scale3d(0.475,.475,.475) translate3d(0,60px,0);-webkit-animation-timing-function:cubic-bezier(0.55,.055,.675,.19)}100%{opacity:0;-webkit-transform:scale3d(0.1,.1,.1) translate3d(0,-2000px,0);-webkit-transform-origin:center bottom;-webkit-animation-timing-function:cubic-bezier(0.175,.885,.32,1)}}@keyframes zoomOutUp{40%{opacity:1;transform:scale3d(0.475,.475,.475) translate3d(0,60px,0);animation-timing-function:cubic-bezier(0.55,.055,.675,.19)}100%{opacity:0;transform:scale3d(0.1,.1,.1) translate3d(0,-2000px,0);transform-origin:center bottom;animation-timing-function:cubic-bezier(0.175,.885,.32,1)}}.out .zoomOutUp{-webkit-animation-name:zoomOutUp;animation-name:zoomOutUp}.bx-wrapper{position:relative;margin:0 auto 60px;padding:0;*zoom:1;-ms-touch-action:pan-y;touch-action:pan-y}.bx-wrapper img{max-width:100%;display:block}.bxslider{margin:0;padding:0}ul.bxslider{list-style:none}.bx-viewport{-webkit-transform:translatez(0)}.bx-wrapper .bx-controls-auto,.bx-wrapper .bx-pager{position:absolute;bottom:-30px;width:100%}.bx-wrapper .bx-loading{min-height:50px;background:url(images/bx_loader.gif) center center no-repeat #fff;height:100%;width:100%;position:absolute;top:0;left:0;z-index:2000}.bx-wrapper .bx-pager{text-align:center;font-size:.85em;font-family:Arial;font-weight:700;color:#666;padding-top:20px}.bx-wrapper .bx-pager.bx-default-pager a{background:#666;text-indent:-9999px;display:block;width:10px;height:10px;margin:0 5px;outline:0;-moz-border-radius:5px;-webkit-border-radius:5px;border-radius:5px}.bx-wrapper .bx-pager.bx-default-pager a.active,.bx-wrapper .bx-pager.bx-default-pager a:focus,.bx-wrapper .bx-pager.bx-default-pager a:hover{background:#000}.bx-wrapper .bx-controls-auto .bx-controls-auto-item,.bx-wrapper .bx-pager-item{display:inline-block;*zoom:1;*display:inline}.bx-wrapper .bx-pager-item{font-size:0;line-height:0}.bx-wrapper .bx-prev{left:10px;background:url(images/controls.png) no-repeat 0 -32px}.bx-wrapper .bx-prev:focus,.bx-wrapper .bx-prev:hover{background-position:0 0}.bx-wrapper .bx-next{right:10px;background:url(images/controls.png) no-repeat -43px -32px}.bx-wrapper .bx-next:focus,.bx-wrapper .bx-next:hover{background-position:-43px 0}.bx-wrapper .bx-controls-direction a{position:absolute;top:50%;margin-top:-16px;outline:0;width:32px;height:32px;text-indent:-9999px;z-index:9999}.bx-wrapper .bx-controls-direction a.disabled{display:none}.bx-wrapper .bx-controls-auto{text-align:center}.bx-wrapper .bx-controls-auto .bx-start{display:block;text-indent:-9999px;width:10px;height:11px;outline:0;background:url(images/controls.png) -86px -11px no-repeat;margin:0 3px}.bx-wrapper .bx-controls-auto .bx-start.active,.bx-wrapper .bx-controls-auto .bx-start:focus,.bx-wrapper .bx-controls-auto .bx-start:hover{background-position:-86px 0}.bx-wrapper .bx-controls-auto .bx-stop{display:block;text-indent:-9999px;width:9px;height:11px;outline:0;background:url(images/controls.png) -86px -44px no-repeat;margin:0 3px}.bx-wrapper .bx-controls-auto .bx-stop.active,.bx-wrapper .bx-controls-auto .bx-stop:focus,.bx-wrapper .bx-controls-auto .bx-stop:hover{background-position:-86px -33px}.bx-wrapper .bx-controls.bx-has-controls-auto.bx-has-pager .bx-pager{text-align:left;width:80%}.bx-wrapper .bx-controls.bx-has-controls-auto.bx-has-pager .bx-controls-auto{right:0;width:35px}.bx-wrapper .bx-caption{position:absolute;bottom:0;left:0;background:#666;background:rgba(80,80,80,.75);width:100%}.bx-wrapper .bx-caption span{color:#fff;font-family:Arial;display:block;font-size:.85em;padding:10px} diff --git a/dist/jquery.bxslider.min.js b/dist/jquery.bxslider.min.js index 0d62d910..d6370da6 100644 --- a/dist/jquery.bxslider.min.js +++ b/dist/jquery.bxslider.min.js @@ -1,9 +1,9 @@ /** * bxSlider v4.2.5 - * Copyright 2013-2015 Steven Wanderski + * Copyright 2013-2017 Steven Wanderski * Written while drinking Belgian ales and listening to jazz * Licensed under MIT (http://opensource.org/licenses/MIT) */ -!function(a){var b={mode:"horizontal",slideSelector:"",infiniteLoop:!0,hideControlOnEnd:!1,speed:500,easing:null,slideMargin:0,startSlide:0,randomStart:!1,captions:!1,ticker:!1,tickerHover:!1,adaptiveHeight:!1,adaptiveHeightSpeed:500,video:!1,useCSS:!0,preloadImages:"visible",responsive:!0,slideZIndex:50,wrapperClass:"bx-wrapper",touchEnabled:!0,swipeThreshold:50,oneToOneTouch:!0,preventDefaultSwipeX:!0,preventDefaultSwipeY:!1,ariaLive:!0,ariaHidden:!0,keyboardEnabled:!1,pager:!0,pagerType:"full",pagerShortSeparator:" / ",pagerSelector:null,buildPager:null,pagerCustom:null,controls:!0,nextText:"Next",prevText:"Prev",nextSelector:null,prevSelector:null,autoControls:!1,startText:"Start",stopText:"Stop",autoControlsCombine:!1,autoControlsSelector:null,auto:!1,pause:4e3,autoStart:!0,autoDirection:"next",stopAutoOnClick:!1,autoHover:!1,autoDelay:0,autoSlideForOnePage:!1,minSlides:1,maxSlides:1,moveSlides:0,slideWidth:0,shrinkItems:!1,onSliderLoad:function(){return!0},onSlideBefore:function(){return!0},onSlideAfter:function(){return!0},onSlideNext:function(){return!0},onSlidePrev:function(){return!0},onSliderResize:function(){return!0}};a.fn.bxSlider=function(c){if(0===this.length)return this;if(this.length>1)return this.each(function(){a(this).bxSlider(c)}),this;var d={},e=this,f=a(window).width(),g=a(window).height();if(!a(e).data("bxSlider")){var h=function(){a(e).data("bxSlider")||(d.settings=a.extend({},b,c),d.settings.slideWidth=parseInt(d.settings.slideWidth),d.children=e.children(d.settings.slideSelector),d.children.length1||d.settings.maxSlides>1?!0:!1,d.carousel&&(d.settings.preloadImages="all"),d.minThreshold=d.settings.minSlides*d.settings.slideWidth+(d.settings.minSlides-1)*d.settings.slideMargin,d.maxThreshold=d.settings.maxSlides*d.settings.slideWidth+(d.settings.maxSlides-1)*d.settings.slideMargin,d.working=!1,d.controls={},d.interval=null,d.animProp="vertical"===d.settings.mode?"top":"left",d.usingCSS=d.settings.useCSS&&"fade"!==d.settings.mode&&function(){for(var a=document.createElement("div"),b=["WebkitPerspective","MozPerspective","OPerspective","msPerspective"],c=0;c
'),d.viewport=e.parent(),d.settings.ariaLive&&!d.settings.ticker&&d.viewport.attr("aria-live","polite"),d.loader=a('
'),d.viewport.prepend(d.loader),e.css({width:"horizontal"===d.settings.mode?1e3*d.children.length+215+"%":"auto",position:"relative"}),d.usingCSS&&d.settings.easing?e.css("-"+d.cssPrefix+"-transition-timing-function",d.settings.easing):d.settings.easing||(d.settings.easing="swing"),d.viewport.css({width:"100%",overflow:"hidden",position:"relative"}),d.viewport.parent().css({maxWidth:n()}),d.settings.pager||d.settings.controls||d.viewport.parent().css({margin:"0 auto 0px"}),d.children.css({"float":"horizontal"===d.settings.mode?"left":"none",listStyle:"none",position:"relative"}),d.children.css("width",o()),"horizontal"===d.settings.mode&&d.settings.slideMargin>0&&d.children.css("marginRight",d.settings.slideMargin),"vertical"===d.settings.mode&&d.settings.slideMargin>0&&d.children.css("marginBottom",d.settings.slideMargin),"fade"===d.settings.mode&&(d.children.css({position:"absolute",zIndex:0,display:"none"}),d.children.eq(d.settings.startSlide).css({zIndex:d.settings.slideZIndex,display:"block"})),d.controls.el=a('
'),d.settings.captions&&y(),d.active.last=d.settings.startSlide===q()-1,d.settings.video&&e.fitVids(),("all"===d.settings.preloadImages||d.settings.ticker)&&(b=d.children),d.settings.ticker?d.settings.pager=!1:(d.settings.controls&&w(),d.settings.auto&&d.settings.autoControls&&x(),d.settings.pager&&v(),(d.settings.controls||d.settings.autoControls||d.settings.pager)&&d.viewport.after(d.controls.el)),k(b,l)},k=function(b,c){var d=b.find('img:not([src=""]), iframe').length,e=0;return 0===d?void c():void b.find('img:not([src=""]), iframe').each(function(){a(this).one("load error",function(){++e===d&&c()}).each(function(){this.complete&&a(this).load()})})},l=function(){if(d.settings.infiniteLoop&&"fade"!==d.settings.mode&&!d.settings.ticker){var b="vertical"===d.settings.mode?d.settings.minSlides:d.settings.maxSlides,c=d.children.slice(0,b).clone(!0).addClass("bx-clone"),f=d.children.slice(-b).clone(!0).addClass("bx-clone");d.settings.ariaHidden&&(c.attr("aria-hidden",!0),f.attr("aria-hidden",!0)),e.append(c).prepend(f)}d.loader.remove(),s(),"vertical"===d.settings.mode&&(d.settings.adaptiveHeight=!0),d.viewport.height(m()),e.redrawSlider(),d.settings.onSliderLoad.call(e,d.active.index),d.initialized=!0,d.settings.responsive&&a(window).bind("resize",S),d.settings.auto&&d.settings.autoStart&&(q()>1||d.settings.autoSlideForOnePage)&&I(),d.settings.ticker&&J(),d.settings.pager&&E(d.settings.startSlide),d.settings.controls&&H(),d.settings.touchEnabled&&!d.settings.ticker&&N(),d.settings.keyboardEnabled&&!d.settings.ticker&&a(document).keydown(M)},m=function(){var b=0,c=a();if("vertical"===d.settings.mode||d.settings.adaptiveHeight)if(d.carousel){var e=1===d.settings.moveSlides?d.active.index:d.active.index*r();for(c=d.children.eq(e),i=1;i<=d.settings.maxSlides-1;i++)c=e+i>=d.children.length?c.add(d.children.eq(i-1)):c.add(d.children.eq(e+i))}else c=d.children.eq(d.active.index);else c=d.children;return"vertical"===d.settings.mode?(c.each(function(c){b+=a(this).outerHeight()}),d.settings.slideMargin>0&&(b+=d.settings.slideMargin*(d.settings.minSlides-1))):b=Math.max.apply(Math,c.map(function(){return a(this).outerHeight(!1)}).get()),"border-box"===d.viewport.css("box-sizing")?b+=parseFloat(d.viewport.css("padding-top"))+parseFloat(d.viewport.css("padding-bottom"))+parseFloat(d.viewport.css("border-top-width"))+parseFloat(d.viewport.css("border-bottom-width")):"padding-box"===d.viewport.css("box-sizing")&&(b+=parseFloat(d.viewport.css("padding-top"))+parseFloat(d.viewport.css("padding-bottom"))),b},n=function(){var a="100%";return d.settings.slideWidth>0&&(a="horizontal"===d.settings.mode?d.settings.maxSlides*d.settings.slideWidth+(d.settings.maxSlides-1)*d.settings.slideMargin:d.settings.slideWidth),a},o=function(){var a=d.settings.slideWidth,b=d.viewport.width();if(0===d.settings.slideWidth||d.settings.slideWidth>b&&!d.carousel||"vertical"===d.settings.mode)a=b;else if(d.settings.maxSlides>1&&"horizontal"===d.settings.mode){if(b>d.maxThreshold)return a;b0?d.viewport.width()d.maxThreshold?a=d.settings.maxSlides:(b=d.children.first().width()+d.settings.slideMargin,a=Math.floor((d.viewport.width()+d.settings.slideMargin)/b)):"vertical"===d.settings.mode&&(a=d.settings.minSlides),a},q=function(){var a=0,b=0,c=0;if(d.settings.moveSlides>0)if(d.settings.infiniteLoop)a=Math.ceil(d.children.length/r());else for(;b0&&d.settings.moveSlides<=p()?d.settings.moveSlides:p()},s=function(){var a,b,c;d.children.length>d.settings.maxSlides&&d.active.last&&!d.settings.infiniteLoop?"horizontal"===d.settings.mode?(b=d.children.last(),a=b.position(),t(-(a.left-(d.viewport.width()-b.outerWidth())),"reset",0)):"vertical"===d.settings.mode&&(c=d.children.length-d.settings.minSlides,a=d.children.eq(c).position(),t(-a.top,"reset",0)):(a=d.children.eq(d.active.index*r()).position(),d.active.index===q()-1&&(d.active.last=!0),void 0!==a&&("horizontal"===d.settings.mode?t(-a.left,"reset",0):"vertical"===d.settings.mode&&t(-a.top,"reset",0)))},t=function(b,c,f,g){var h,i;d.usingCSS?(i="vertical"===d.settings.mode?"translate3d(0, "+b+"px, 0)":"translate3d("+b+"px, 0, 0)",e.css("-"+d.cssPrefix+"-transition-duration",f/1e3+"s"),"slide"===c?(e.css(d.animProp,i),0!==f?e.bind("transitionend webkitTransitionEnd oTransitionEnd MSTransitionEnd",function(b){a(b.target).is(e)&&(e.unbind("transitionend webkitTransitionEnd oTransitionEnd MSTransitionEnd"),F())}):F()):"reset"===c?e.css(d.animProp,i):"ticker"===c&&(e.css("-"+d.cssPrefix+"-transition-timing-function","linear"),e.css(d.animProp,i),0!==f?e.bind("transitionend webkitTransitionEnd oTransitionEnd MSTransitionEnd",function(b){a(b.target).is(e)&&(e.unbind("transitionend webkitTransitionEnd oTransitionEnd MSTransitionEnd"),t(g.resetValue,"reset",0),K())}):(t(g.resetValue,"reset",0),K()))):(h={},h[d.animProp]=b,"slide"===c?e.animate(h,f,d.settings.easing,function(){F()}):"reset"===c?e.css(d.animProp,b):"ticker"===c&&e.animate(h,f,"linear",function(){t(g.resetValue,"reset",0),K()}))},u=function(){for(var b="",c="",e=q(),f=0;e>f;f++)c="",d.settings.buildPager&&a.isFunction(d.settings.buildPager)||d.settings.pagerCustom?(c=d.settings.buildPager(f),d.pagerEl.addClass("bx-custom-pager")):(c=f+1,d.pagerEl.addClass("bx-default-pager")),b+='";d.pagerEl.html(b)},v=function(){d.settings.pagerCustom?d.pagerEl=a(d.settings.pagerCustom):(d.pagerEl=a('
'),d.settings.pagerSelector?a(d.settings.pagerSelector).html(d.pagerEl):d.controls.el.addClass("bx-has-pager").append(d.pagerEl),u()),d.pagerEl.on("click touchend","a",D)},w=function(){d.controls.next=a(''+d.settings.nextText+""),d.controls.prev=a(''+d.settings.prevText+""),d.controls.next.bind("click touchend",z),d.controls.prev.bind("click touchend",A),d.settings.nextSelector&&a(d.settings.nextSelector).append(d.controls.next),d.settings.prevSelector&&a(d.settings.prevSelector).append(d.controls.prev),d.settings.nextSelector||d.settings.prevSelector||(d.controls.directionEl=a('
'),d.controls.directionEl.append(d.controls.prev).append(d.controls.next),d.controls.el.addClass("bx-has-controls-direction").append(d.controls.directionEl))},x=function(){d.controls.start=a('"),d.controls.stop=a('"),d.controls.autoEl=a('
'),d.controls.autoEl.on("click",".bx-start",B),d.controls.autoEl.on("click",".bx-stop",C),d.settings.autoControlsCombine?d.controls.autoEl.append(d.controls.start):d.controls.autoEl.append(d.controls.start).append(d.controls.stop),d.settings.autoControlsSelector?a(d.settings.autoControlsSelector).html(d.controls.autoEl):d.controls.el.addClass("bx-has-controls-auto").append(d.controls.autoEl),G(d.settings.autoStart?"stop":"start")},y=function(){d.children.each(function(b){var c=a(this).find("img:first").attr("title");void 0!==c&&(""+c).length&&a(this).append('
'+c+"
")})},z=function(a){a.preventDefault(),d.controls.el.hasClass("disabled")||(d.settings.auto&&d.settings.stopAutoOnClick&&e.stopAuto(),e.goToNextSlide())},A=function(a){a.preventDefault(),d.controls.el.hasClass("disabled")||(d.settings.auto&&d.settings.stopAutoOnClick&&e.stopAuto(),e.goToPrevSlide())},B=function(a){e.startAuto(),a.preventDefault()},C=function(a){e.stopAuto(),a.preventDefault()},D=function(b){var c,f;b.preventDefault(),d.controls.el.hasClass("disabled")||(d.settings.auto&&d.settings.stopAutoOnClick&&e.stopAuto(),c=a(b.currentTarget),void 0!==c.attr("data-slide-index")&&(f=parseInt(c.attr("data-slide-index")),f!==d.active.index&&e.goToSlide(f)))},E=function(b){var c=d.children.length;return"short"===d.settings.pagerType?(d.settings.maxSlides>1&&(c=Math.ceil(d.children.length/d.settings.maxSlides)),void d.pagerEl.html(b+1+d.settings.pagerShortSeparator+c)):(d.pagerEl.find("a").removeClass("active"),void d.pagerEl.each(function(c,d){a(d).find("a").eq(b).addClass("active")}))},F=function(){if(d.settings.infiniteLoop){var a="";0===d.active.index?a=d.children.eq(0).position():d.active.index===q()-1&&d.carousel?a=d.children.eq((q()-1)*r()).position():d.active.index===d.children.length-1&&(a=d.children.eq(d.children.length-1).position()),a&&("horizontal"===d.settings.mode?t(-a.left,"reset",0):"vertical"===d.settings.mode&&t(-a.top,"reset",0))}d.working=!1,d.settings.onSlideAfter.call(e,d.children.eq(d.active.index),d.oldIndex,d.active.index)},G=function(a){d.settings.autoControlsCombine?d.controls.autoEl.html(d.controls[a]):(d.controls.autoEl.find("a").removeClass("active"),d.controls.autoEl.find("a:not(.bx-"+a+")").addClass("active"))},H=function(){1===q()?(d.controls.prev.addClass("disabled"),d.controls.next.addClass("disabled")):!d.settings.infiniteLoop&&d.settings.hideControlOnEnd&&(0===d.active.index?(d.controls.prev.addClass("disabled"),d.controls.next.removeClass("disabled")):d.active.index===q()-1?(d.controls.next.addClass("disabled"),d.controls.prev.removeClass("disabled")):(d.controls.prev.removeClass("disabled"),d.controls.next.removeClass("disabled")))},I=function(){if(d.settings.autoDelay>0){setTimeout(e.startAuto,d.settings.autoDelay)}else e.startAuto(),a(window).focus(function(){e.startAuto()}).blur(function(){e.stopAuto()});d.settings.autoHover&&e.hover(function(){d.interval&&(e.stopAuto(!0),d.autoPaused=!0)},function(){d.autoPaused&&(e.startAuto(!0),d.autoPaused=null)})},J=function(){var b,c,f,g,h,i,j,k,l=0;"next"===d.settings.autoDirection?e.append(d.children.clone().addClass("bx-clone")):(e.prepend(d.children.clone().addClass("bx-clone")),b=d.children.first().position(),l="horizontal"===d.settings.mode?-b.left:-b.top),t(l,"reset",0),d.settings.pager=!1,d.settings.controls=!1,d.settings.autoControls=!1,d.settings.tickerHover&&(d.usingCSS?(g="horizontal"===d.settings.mode?4:5,d.viewport.hover(function(){c=e.css("-"+d.cssPrefix+"-transform"),f=parseFloat(c.split(",")[g]),t(f,"reset",0)},function(){k=0,d.children.each(function(b){k+="horizontal"===d.settings.mode?a(this).outerWidth(!0):a(this).outerHeight(!0)}),h=d.settings.speed/k,i="horizontal"===d.settings.mode?"left":"top",j=h*(k-Math.abs(parseInt(f))),K(j)})):d.viewport.hover(function(){e.stop()},function(){k=0,d.children.each(function(b){k+="horizontal"===d.settings.mode?a(this).outerWidth(!0):a(this).outerHeight(!0)}),h=d.settings.speed/k,i="horizontal"===d.settings.mode?"left":"top",j=h*(k-Math.abs(parseInt(e.css(i)))),K(j)})),K()},K=function(a){var b,c,f,g=a?a:d.settings.speed,h={left:0,top:0},i={left:0,top:0};"next"===d.settings.autoDirection?h=e.find(".bx-clone").first().position():i=d.children.first().position(),b="horizontal"===d.settings.mode?-h.left:-h.top,c="horizontal"===d.settings.mode?-i.left:-i.top,f={resetValue:c},t(b,"ticker",g,f)},L=function(b){var c=a(window),d={top:c.scrollTop(),left:c.scrollLeft()},e=b.offset();return d.right=d.left+c.width(),d.bottom=d.top+c.height(),e.right=e.left+b.outerWidth(),e.bottom=e.top+b.outerHeight(),!(d.righte.right||d.bottome.bottom)},M=function(a){var b=document.activeElement.tagName.toLowerCase(),c="input|textarea",d=new RegExp(b,["i"]),f=d.exec(c);if(null==f&&L(e)){if(39===a.keyCode)return z(a),!1;if(37===a.keyCode)return A(a),!1}},N=function(){d.touch={start:{x:0,y:0},end:{x:0,y:0}},d.viewport.bind("touchstart MSPointerDown pointerdown",O),d.viewport.on("click",".bxslider a",function(a){d.viewport.hasClass("click-disabled")&&(a.preventDefault(),d.viewport.removeClass("click-disabled"))})},O=function(a){if(d.controls.el.addClass("disabled"),d.working)a.preventDefault(),d.controls.el.removeClass("disabled");else{d.touch.originalPos=e.position();var b=a.originalEvent,c="undefined"!=typeof b.changedTouches?b.changedTouches:[b];d.touch.start.x=c[0].pageX,d.touch.start.y=c[0].pageY,d.viewport.get(0).setPointerCapture&&(d.pointerId=b.pointerId,d.viewport.get(0).setPointerCapture(d.pointerId)),d.viewport.bind("touchmove MSPointerMove pointermove",Q),d.viewport.bind("touchend MSPointerUp pointerup",R),d.viewport.bind("MSPointerCancel pointercancel",P)}},P=function(a){t(d.touch.originalPos.left,"reset",0),d.controls.el.removeClass("disabled"),d.viewport.unbind("MSPointerCancel pointercancel",P),d.viewport.unbind("touchmove MSPointerMove pointermove",Q),d.viewport.unbind("touchend MSPointerUp pointerup",R),d.viewport.get(0).releasePointerCapture&&d.viewport.get(0).releasePointerCapture(d.pointerId)},Q=function(a){var b=a.originalEvent,c="undefined"!=typeof b.changedTouches?b.changedTouches:[b],e=Math.abs(c[0].pageX-d.touch.start.x),f=Math.abs(c[0].pageY-d.touch.start.y),g=0,h=0;3*e>f&&d.settings.preventDefaultSwipeX?a.preventDefault():3*f>e&&d.settings.preventDefaultSwipeY&&a.preventDefault(),"fade"!==d.settings.mode&&d.settings.oneToOneTouch&&("horizontal"===d.settings.mode?(h=c[0].pageX-d.touch.start.x,g=d.touch.originalPos.left+h):(h=c[0].pageY-d.touch.start.y,g=d.touch.originalPos.top+h),t(g,"reset",0))},R=function(a){d.viewport.unbind("touchmove MSPointerMove pointermove",Q),d.controls.el.removeClass("disabled");var b=a.originalEvent,c="undefined"!=typeof b.changedTouches?b.changedTouches:[b],f=0,g=0;d.touch.end.x=c[0].pageX,d.touch.end.y=c[0].pageY,"fade"===d.settings.mode?(g=Math.abs(d.touch.start.x-d.touch.end.x),g>=d.settings.swipeThreshold&&(d.touch.start.x>d.touch.end.x?e.goToNextSlide():e.goToPrevSlide(),e.stopAuto())):("horizontal"===d.settings.mode?(g=d.touch.end.x-d.touch.start.x,f=d.touch.originalPos.left):(g=d.touch.end.y-d.touch.start.y,f=d.touch.originalPos.top),!d.settings.infiniteLoop&&(0===d.active.index&&g>0||d.active.last&&0>g)?t(f,"reset",200):Math.abs(g)>=d.settings.swipeThreshold?(0>g?e.goToNextSlide():e.goToPrevSlide(),e.stopAuto()):t(f,"reset",200)),d.viewport.unbind("touchend MSPointerUp pointerup",R),d.viewport.get(0).releasePointerCapture&&d.viewport.get(0).releasePointerCapture(d.pointerId)},S=function(b){if(d.initialized)if(d.working)window.setTimeout(S,10);else{var c=a(window).width(),h=a(window).height();(f!==c||g!==h)&&(f=c,g=h,e.redrawSlider(),d.settings.onSliderResize.call(e,d.active.index))}},T=function(a){var b=p();d.settings.ariaHidden&&!d.settings.ticker&&(d.children.attr("aria-hidden","true"),d.children.slice(a,a+b).attr("aria-hidden","false"))},U=function(a){return 0>a?d.settings.infiniteLoop?q()-1:d.active.index:a>=q()?d.settings.infiniteLoop?0:d.active.index:a};return e.goToSlide=function(b,c){var f,g,h,i,j=!0,k=0,l={left:0,top:0},n=null;if(d.oldIndex=d.active.index,d.active.index=U(b),!d.working&&d.active.index!==d.oldIndex){if(d.working=!0,j=d.settings.onSlideBefore.call(e,d.children.eq(d.active.index),d.oldIndex,d.active.index),"undefined"!=typeof j&&!j)return d.active.index=d.oldIndex,void(d.working=!1);"next"===c?d.settings.onSlideNext.call(e,d.children.eq(d.active.index),d.oldIndex,d.active.index)||(j=!1):"prev"===c&&(d.settings.onSlidePrev.call(e,d.children.eq(d.active.index),d.oldIndex,d.active.index)||(j=!1)),d.active.last=d.active.index>=q()-1,(d.settings.pager||d.settings.pagerCustom)&&E(d.active.index),d.settings.controls&&H(),"fade"===d.settings.mode?(d.settings.adaptiveHeight&&d.viewport.height()!==m()&&d.viewport.animate({height:m()},d.settings.adaptiveHeightSpeed),d.children.filter(":visible").fadeOut(d.settings.speed).css({zIndex:0}),d.children.eq(d.active.index).css("zIndex",d.settings.slideZIndex+1).fadeIn(d.settings.speed,function(){a(this).css("zIndex",d.settings.slideZIndex),F()})):(d.settings.adaptiveHeight&&d.viewport.height()!==m()&&d.viewport.animate({height:m()},d.settings.adaptiveHeightSpeed),!d.settings.infiniteLoop&&d.carousel&&d.active.last?"horizontal"===d.settings.mode?(n=d.children.eq(d.children.length-1),l=n.position(),k=d.viewport.width()-n.outerWidth()):(f=d.children.length-d.settings.minSlides,l=d.children.eq(f).position()):d.carousel&&d.active.last&&"prev"===c?(g=1===d.settings.moveSlides?d.settings.maxSlides-r():(q()-1)*r()-(d.children.length-d.settings.maxSlides),n=e.children(".bx-clone").eq(g),l=n.position()):"next"===c&&0===d.active.index?(l=e.find("> .bx-clone").eq(d.settings.maxSlides).position(),d.active.last=!1):b>=0&&(i=b*parseInt(r()),l=d.children.eq(i).position()),"undefined"!=typeof l?(h="horizontal"===d.settings.mode?-(l.left-k):-l.top,t(h,"slide",d.settings.speed)):d.working=!1),d.settings.ariaHidden&&T(d.active.index*r())}},e.goToNextSlide=function(){if(d.settings.infiniteLoop||!d.active.last){var a=parseInt(d.active.index)+1;e.goToSlide(a,"next")}},e.goToPrevSlide=function(){if(d.settings.infiniteLoop||0!==d.active.index){var a=parseInt(d.active.index)-1;e.goToSlide(a,"prev")}},e.startAuto=function(a){d.interval||(d.interval=setInterval(function(){"next"===d.settings.autoDirection?e.goToNextSlide():e.goToPrevSlide()},d.settings.pause),d.settings.autoControls&&a!==!0&&G("stop"))},e.stopAuto=function(a){d.interval&&(clearInterval(d.interval),d.interval=null,d.settings.autoControls&&a!==!0&&G("start"))},e.getCurrentSlide=function(){return d.active.index},e.getCurrentSlideElement=function(){return d.children.eq(d.active.index)},e.getSlideElement=function(a){return d.children.eq(a)},e.getSlideCount=function(){return d.children.length},e.isWorking=function(){return d.working},e.redrawSlider=function(){d.children.add(e.find(".bx-clone")).outerWidth(o()),d.viewport.css("height",m()),d.settings.ticker||s(),d.active.last&&(d.active.index=q()-1),d.active.index>=q()&&(d.active.last=!0),d.settings.pager&&!d.settings.pagerCustom&&(u(),E(d.active.index)),d.settings.ariaHidden&&T(d.active.index*r())},e.destroySlider=function(){d.initialized&&(d.initialized=!1,a(".bx-clone",this).remove(),d.children.each(function(){void 0!==a(this).data("origStyle")?a(this).attr("style",a(this).data("origStyle")):a(this).removeAttr("style")}),void 0!==a(this).data("origStyle")?this.attr("style",a(this).data("origStyle")):a(this).removeAttr("style"),a(this).unwrap().unwrap(),d.controls.el&&d.controls.el.remove(),d.controls.next&&d.controls.next.remove(),d.controls.prev&&d.controls.prev.remove(),d.pagerEl&&d.settings.controls&&!d.settings.pagerCustom&&d.pagerEl.remove(),a(".bx-caption",this).remove(),d.controls.autoEl&&d.controls.autoEl.remove(),clearInterval(d.interval),d.settings.responsive&&a(window).unbind("resize",S),d.settings.keyboardEnabled&&a(document).unbind("keydown",M),a(this).removeData("bxSlider"))},e.reloadSlider=function(b){void 0!==b&&(c=b),e.destroySlider(),h(),a(e).data("bxSlider",this)},h(),a(e).data("bxSlider",this),this}}}(jQuery); \ No newline at end of file +!function(a){var b={mode:"horizontal",slideSelector:"",infiniteLoop:!0,hideControlOnEnd:!1,speed:500,easing:null,slideMargin:0,startSlide:0,randomStart:!1,captions:!1,ticker:!1,tickerHover:!1,adaptiveHeight:!1,adaptiveHeightSpeed:500,video:!1,useCSS:!0,preloadImages:"visible",responsive:!0,slideZIndex:50,wrapperClass:"bx-wrapper",touchEnabled:!0,swipeThreshold:50,oneToOneTouch:!0,preventDefaultSwipeX:!0,preventDefaultSwipeY:!1,ariaLive:!0,ariaHidden:!0,keyboardEnabled:!1,pager:!0,pagerType:"full",pagerShortSeparator:" / ",pagerSelector:null,buildPager:null,pagerCustom:null,controls:!0,nextText:"Next",prevText:"Prev",nextSelector:null,prevSelector:null,autoControls:!1,startText:"Start",stopText:"Stop",autoControlsCombine:!1,autoControlsSelector:null,pauseBeforeOut:1e3,pauseAfterIn:3e3,auto:!1,pause:4e3,autoStart:!0,autoDirection:"next",stopAutoOnClick:!1,autoHover:!1,autoDelay:0,autoSlideForOnePage:!1,minSlides:1,maxSlides:1,moveSlides:0,slideWidth:0,shrinkItems:!1,onSliderLoad:function(){return!0},onSlideBefore:function(){return!0},onSlideAfter:function(){return!0},onSlideNext:function(){return!0},onSlidePrev:function(){return!0},onSliderResize:function(){return!0}};a.fn.bxSlider=function(c){if(0===this.length)return this;if(this.length>1)return this.each(function(){a(this).bxSlider(c)}),this;var d={},e=this,f=a(window).width(),g=a(window).height();if(!a(e).data("bxSlider")){var h=function(){a(e).data("bxSlider")||(d.settings=a.extend({},b,c),d.settings.slideWidth=parseInt(d.settings.slideWidth),d.children=e.children(d.settings.slideSelector),d.children.length1||d.settings.maxSlides>1,d.carousel&&(d.settings.preloadImages="all"),d.minThreshold=d.settings.minSlides*d.settings.slideWidth+(d.settings.minSlides-1)*d.settings.slideMargin,d.maxThreshold=d.settings.maxSlides*d.settings.slideWidth+(d.settings.maxSlides-1)*d.settings.slideMargin,d.working=!1,d.controls={},d.interval=null,d.animProp="vertical"===d.settings.mode?"top":"left",d.usingCSS=d.settings.useCSS&&"fade"!==d.settings.mode&&function(){for(var a=document.createElement("div"),b=["WebkitPerspective","MozPerspective","OPerspective","msPerspective"],c=0;c
'),d.viewport=e.parent(),d.settings.ariaLive&&!d.settings.ticker&&d.viewport.attr("aria-live","polite"),d.loader=a('
'),d.viewport.prepend(d.loader),e.css({width:"horizontal"===d.settings.mode?1e3*d.children.length+215+"%":"auto",position:"relative"}),d.usingCSS&&d.settings.easing?e.css("-"+d.cssPrefix+"-transition-timing-function",d.settings.easing):d.settings.easing||(d.settings.easing="swing"),d.viewport.css({width:"100%",overflow:"hidden",position:"relative"}),d.viewport.parent().css({maxWidth:n()}),d.settings.pager||d.settings.controls||d.viewport.parent().css({margin:"0 auto 0px"}),d.children.css({float:"horizontal"===d.settings.mode?"left":"none",listStyle:"none",position:"relative"}),d.children.css("width",o()),"horizontal"===d.settings.mode&&d.settings.slideMargin>0&&d.children.css("marginRight",d.settings.slideMargin),"vertical"===d.settings.mode&&d.settings.slideMargin>0&&d.children.css("marginBottom",d.settings.slideMargin),"fade"===d.settings.mode&&(d.children.css({position:"absolute",zIndex:0,display:"none"}),d.children.eq(d.settings.startSlide).css({zIndex:d.settings.slideZIndex,display:"block"})),d.children.removeClass("in").addClass("out"),d.controls.el=a('
'),d.settings.captions&&y(),d.active.last=d.settings.startSlide===q()-1,d.settings.video&&e.fitVids(),("all"===d.settings.preloadImages||d.settings.ticker)&&(b=d.children),d.settings.ticker?d.settings.pager=!1:(d.settings.controls&&w(),d.settings.auto&&d.settings.autoControls&&x(),d.settings.pager&&v(),(d.settings.controls||d.settings.autoControls||d.settings.pager)&&d.viewport.after(d.controls.el)),k(b,l)},k=function(b,c){var d=b.find('img:not([src=""]), iframe').length,e=0;return 0===d?void c():void b.find('img:not([src=""]), iframe').each(function(){a(this).one("load error",function(){++e===d&&c()}).each(function(){this.complete&&a(this).load()})})},l=function(){if(d.settings.infiniteLoop&&"fade"!==d.settings.mode&&!d.settings.ticker){var b="vertical"===d.settings.mode?d.settings.minSlides:d.settings.maxSlides,c=d.children.slice(0,b).clone(!0).addClass("bx-clone"),f=d.children.slice(-b).clone(!0).addClass("bx-clone");d.settings.ariaHidden&&(c.attr("aria-hidden",!0),f.attr("aria-hidden",!0)),e.append(c).prepend(f)}d.loader.remove(),s(),"vertical"===d.settings.mode&&(d.settings.adaptiveHeight=!0),d.viewport.height(m()),e.redrawSlider(),d.settings.onSliderLoad.call(e,d.active.index),setTimeout(function(){d.children.eq(d.active.index).removeClass("out").addClass("in")},1500),d.initialized=!0,d.settings.responsive&&a(window).bind("resize",S),d.settings.auto&&d.settings.autoStart&&(q()>1||d.settings.autoSlideForOnePage)&&I(),d.settings.ticker&&J(),d.settings.pager&&E(d.settings.startSlide),d.settings.controls&&H(),d.settings.touchEnabled&&!d.settings.ticker&&N(),d.settings.keyboardEnabled&&!d.settings.ticker&&a(document).keydown(M)},m=function(){var b=0,c=a();if("vertical"===d.settings.mode||d.settings.adaptiveHeight)if(d.carousel){var e=1===d.settings.moveSlides?d.active.index:d.active.index*r();for(c=d.children.eq(e),i=1;i<=d.settings.maxSlides-1;i++)c=e+i>=d.children.length?c.add(d.children.eq(i-1)):c.add(d.children.eq(e+i))}else c=d.children.eq(d.active.index);else c=d.children;return"vertical"===d.settings.mode?(c.each(function(c){b+=a(this).outerHeight()}),d.settings.slideMargin>0&&(b+=d.settings.slideMargin*(d.settings.minSlides-1))):b=Math.max.apply(Math,c.map(function(){return a(this).outerHeight(!1)}).get()),"border-box"===d.viewport.css("box-sizing")?b+=parseFloat(d.viewport.css("padding-top"))+parseFloat(d.viewport.css("padding-bottom"))+parseFloat(d.viewport.css("border-top-width"))+parseFloat(d.viewport.css("border-bottom-width")):"padding-box"===d.viewport.css("box-sizing")&&(b+=parseFloat(d.viewport.css("padding-top"))+parseFloat(d.viewport.css("padding-bottom"))),b},n=function(){var a="100%";return d.settings.slideWidth>0&&(a="horizontal"===d.settings.mode?d.settings.maxSlides*d.settings.slideWidth+(d.settings.maxSlides-1)*d.settings.slideMargin:d.settings.slideWidth),a},o=function(){var a=d.settings.slideWidth,b=d.viewport.width();if(0===d.settings.slideWidth||d.settings.slideWidth>b&&!d.carousel||"vertical"===d.settings.mode)a=b;else if(d.settings.maxSlides>1&&"horizontal"===d.settings.mode){if(b>d.maxThreshold)return a;b0?d.viewport.width()d.maxThreshold?a=d.settings.maxSlides:(b=d.children.first().width()+d.settings.slideMargin,a=Math.floor((d.viewport.width()+d.settings.slideMargin)/b)):"vertical"===d.settings.mode&&(a=d.settings.minSlides),a},q=function(){var a=0,b=0,c=0;if(d.settings.moveSlides>0)if(d.settings.infiniteLoop)a=Math.ceil(d.children.length/r());else for(;b0&&d.settings.moveSlides<=p()?d.settings.moveSlides:p()},s=function(){var a,b,c;d.children.length>d.settings.maxSlides&&d.active.last&&!d.settings.infiniteLoop?"horizontal"===d.settings.mode?(b=d.children.last(),a=b.position(),t(-(a.left-(d.viewport.width()-b.outerWidth())),"reset",0)):"vertical"===d.settings.mode&&(c=d.children.length-d.settings.minSlides,a=d.children.eq(c).position(),t(-a.top,"reset",0)):(a=d.children.eq(d.active.index*r()).position(),d.active.index===q()-1&&(d.active.last=!0),void 0!==a&&("horizontal"===d.settings.mode?t(-a.left,"reset",0):"vertical"===d.settings.mode&&t(-a.top,"reset",0)))},t=function(b,c,f,g){var h,i;d.usingCSS?(i="vertical"===d.settings.mode?"translate3d(0, "+b+"px, 0)":"translate3d("+b+"px, 0, 0)",e.css("-"+d.cssPrefix+"-transition-duration",f/1e3+"s"),"slide"===c?(e.css(d.animProp,i),0!==f?e.bind("transitionend webkitTransitionEnd oTransitionEnd MSTransitionEnd",function(b){a(b.target).is(e)&&(e.unbind("transitionend webkitTransitionEnd oTransitionEnd MSTransitionEnd"),F())}):F()):"reset"===c?e.css(d.animProp,i):"ticker"===c&&(e.css("-"+d.cssPrefix+"-transition-timing-function","linear"),e.css(d.animProp,i),0!==f?e.bind("transitionend webkitTransitionEnd oTransitionEnd MSTransitionEnd",function(b){a(b.target).is(e)&&(e.unbind("transitionend webkitTransitionEnd oTransitionEnd MSTransitionEnd"),t(g.resetValue,"reset",0),K())}):(t(g.resetValue,"reset",0),K()))):(h={},h[d.animProp]=b,"slide"===c?e.animate(h,f,d.settings.easing,function(){F()}):"reset"===c?e.css(d.animProp,b):"ticker"===c&&e.animate(h,f,"linear",function(){t(g.resetValue,"reset",0),K()}))},u=function(){for(var b="",c="",e=q(),f=0;f'+c+"
";d.pagerEl.html(b)},v=function(){d.settings.pagerCustom?d.pagerEl=a(d.settings.pagerCustom):(d.pagerEl=a('
'),d.settings.pagerSelector?a(d.settings.pagerSelector).html(d.pagerEl):d.controls.el.addClass("bx-has-pager").append(d.pagerEl),u()),d.pagerEl.on("click touchend","a",D)},w=function(){d.controls.next=a(''+d.settings.nextText+""),d.controls.prev=a(''+d.settings.prevText+""),d.controls.next.bind("click touchend",z),d.controls.prev.bind("click touchend",A),d.settings.nextSelector&&a(d.settings.nextSelector).append(d.controls.next),d.settings.prevSelector&&a(d.settings.prevSelector).append(d.controls.prev),d.settings.nextSelector||d.settings.prevSelector||(d.controls.directionEl=a('
'),d.controls.directionEl.append(d.controls.prev).append(d.controls.next),d.controls.el.addClass("bx-has-controls-direction").append(d.controls.directionEl))},x=function(){d.controls.start=a('"),d.controls.stop=a('"),d.controls.autoEl=a('
'),d.controls.autoEl.on("click",".bx-start",B),d.controls.autoEl.on("click",".bx-stop",C),d.settings.autoControlsCombine?d.controls.autoEl.append(d.controls.start):d.controls.autoEl.append(d.controls.start).append(d.controls.stop),d.settings.autoControlsSelector?a(d.settings.autoControlsSelector).html(d.controls.autoEl):d.controls.el.addClass("bx-has-controls-auto").append(d.controls.autoEl),G(d.settings.autoStart?"stop":"start")},y=function(){d.children.each(function(b){var c=a(this).find("img:first").attr("title");void 0!==c&&(""+c).length&&a(this).append('
'+c+"
")})},z=function(a){a.preventDefault(),d.controls.el.hasClass("disabled")||(d.settings.auto&&d.settings.stopAutoOnClick&&e.stopAuto(),e.goToNextSlide())},A=function(a){a.preventDefault(),d.controls.el.hasClass("disabled")||(d.settings.auto&&d.settings.stopAutoOnClick&&e.stopAuto(),e.goToPrevSlide())},B=function(a){e.startAuto(),a.preventDefault()},C=function(a){e.stopAuto(),a.preventDefault()},D=function(b){var c,f;b.preventDefault(),d.controls.el.hasClass("disabled")||(d.settings.auto&&d.settings.stopAutoOnClick&&e.stopAuto(),c=a(b.currentTarget),void 0!==c.attr("data-slide-index")&&(f=parseInt(c.attr("data-slide-index")),f!==d.active.index&&e.goToSlideDelayed(f)))},E=function(b){var c=d.children.length;return"short"===d.settings.pagerType?(d.settings.maxSlides>1&&(c=Math.ceil(d.children.length/d.settings.maxSlides)),void d.pagerEl.html(b+1+d.settings.pagerShortSeparator+c)):(d.pagerEl.find("a").removeClass("active"),void d.pagerEl.each(function(c,d){a(d).find("a").eq(b).addClass("active")}))},F=function(){if(d.settings.infiniteLoop){var a="";0===d.active.index?a=d.children.eq(0).position():d.active.index===q()-1&&d.carousel?a=d.children.eq((q()-1)*r()).position():d.active.index===d.children.length-1&&(a=d.children.eq(d.children.length-1).position()),a&&("horizontal"===d.settings.mode?t(-a.left,"reset",0):"vertical"===d.settings.mode&&t(-a.top,"reset",0))}d.working=!1,d.settings.onSlideAfter.call(e,d.children.eq(d.active.index),d.oldIndex,d.active.index)},G=function(a){d.settings.autoControlsCombine?d.controls.autoEl.html(d.controls[a]):(d.controls.autoEl.find("a").removeClass("active"),d.controls.autoEl.find("a:not(.bx-"+a+")").addClass("active"))},H=function(){1===q()?(d.controls.prev.addClass("disabled"),d.controls.next.addClass("disabled")):!d.settings.infiniteLoop&&d.settings.hideControlOnEnd&&(0===d.active.index?(d.controls.prev.addClass("disabled"),d.controls.next.removeClass("disabled")):d.active.index===q()-1?(d.controls.next.addClass("disabled"),d.controls.prev.removeClass("disabled")):(d.controls.prev.removeClass("disabled"),d.controls.next.removeClass("disabled")))},I=function(){if(d.settings.autoDelay>0){setTimeout(e.startAuto,d.settings.autoDelay)}else e.startAuto(),a(window).focus(function(){e.startAuto()}).blur(function(){e.stopAuto()});d.settings.autoHover&&e.hover(function(){d.interval&&(e.stopAuto(!0),d.autoPaused=!0)},function(){d.autoPaused&&(e.startAuto(!0),d.autoPaused=null)})},J=function(){var b,c,f,g,h,i,j,k,l=0;"next"===d.settings.autoDirection?e.append(d.children.clone().addClass("bx-clone")):(e.prepend(d.children.clone().addClass("bx-clone")),b=d.children.first().position(),l="horizontal"===d.settings.mode?-b.left:-b.top),t(l,"reset",0),d.settings.pager=!1,d.settings.controls=!1,d.settings.autoControls=!1,d.settings.tickerHover&&(d.usingCSS?(g="horizontal"===d.settings.mode?4:5,d.viewport.hover(function(){c=e.css("-"+d.cssPrefix+"-transform"),f=parseFloat(c.split(",")[g]),t(f,"reset",0)},function(){k=0,d.children.each(function(b){k+="horizontal"===d.settings.mode?a(this).outerWidth(!0):a(this).outerHeight(!0)}),h=d.settings.speed/k,i="horizontal"===d.settings.mode?"left":"top",j=h*(k-Math.abs(parseInt(f))),K(j)})):d.viewport.hover(function(){e.stop()},function(){k=0,d.children.each(function(b){k+="horizontal"===d.settings.mode?a(this).outerWidth(!0):a(this).outerHeight(!0)}),h=d.settings.speed/k,i="horizontal"===d.settings.mode?"left":"top",j=h*(k-Math.abs(parseInt(e.css(i)))),K(j)})),K()},K=function(a){var b,c,f,g=a?a:d.settings.speed,h={left:0,top:0},i={left:0,top:0};"next"===d.settings.autoDirection?h=e.find(".bx-clone").first().position():i=d.children.first().position(),b="horizontal"===d.settings.mode?-h.left:-h.top,c="horizontal"===d.settings.mode?-i.left:-i.top,f={resetValue:c},t(b,"ticker",g,f)},L=function(b){var c=a(window),d={top:c.scrollTop(),left:c.scrollLeft()},e=b.offset();return d.right=d.left+c.width(),d.bottom=d.top+c.height(),e.right=e.left+b.outerWidth(),e.bottom=e.top+b.outerHeight(),!(d.righte.right||d.bottome.bottom)},M=function(a){var b=document.activeElement.tagName.toLowerCase(),c="input|textarea",d=new RegExp(b,["i"]),f=d.exec(c);if(null==f&&L(e)){if(39===a.keyCode)return z(a),!1;if(37===a.keyCode)return A(a),!1}},N=function(){d.touch={start:{x:0,y:0},end:{x:0,y:0}},d.viewport.bind("touchstart MSPointerDown pointerdown",O),d.viewport.on("click",".bxslider a",function(a){d.viewport.hasClass("click-disabled")&&(a.preventDefault(),d.viewport.removeClass("click-disabled"))})},O=function(a){if(d.controls.el.addClass("disabled"),d.working)a.preventDefault(),d.controls.el.removeClass("disabled");else{d.touch.originalPos=e.position();var b=a.originalEvent,c="undefined"!=typeof b.changedTouches?b.changedTouches:[b];d.touch.start.x=c[0].pageX,d.touch.start.y=c[0].pageY,d.viewport.get(0).setPointerCapture&&(d.pointerId=b.pointerId,d.viewport.get(0).setPointerCapture(d.pointerId)),d.viewport.bind("touchmove MSPointerMove pointermove",Q),d.viewport.bind("touchend MSPointerUp pointerup",R),d.viewport.bind("MSPointerCancel pointercancel",P)}},P=function(a){t(d.touch.originalPos.left,"reset",0),d.controls.el.removeClass("disabled"),d.viewport.unbind("MSPointerCancel pointercancel",P),d.viewport.unbind("touchmove MSPointerMove pointermove",Q),d.viewport.unbind("touchend MSPointerUp pointerup",R),d.viewport.get(0).releasePointerCapture&&d.viewport.get(0).releasePointerCapture(d.pointerId)},Q=function(a){var b=a.originalEvent,c="undefined"!=typeof b.changedTouches?b.changedTouches:[b],e=Math.abs(c[0].pageX-d.touch.start.x),f=Math.abs(c[0].pageY-d.touch.start.y),g=0,h=0;3*e>f&&d.settings.preventDefaultSwipeX?a.preventDefault():3*f>e&&d.settings.preventDefaultSwipeY&&a.preventDefault(),"fade"!==d.settings.mode&&d.settings.oneToOneTouch&&("horizontal"===d.settings.mode?(h=c[0].pageX-d.touch.start.x,g=d.touch.originalPos.left+h):(h=c[0].pageY-d.touch.start.y,g=d.touch.originalPos.top+h),t(g,"reset",0))},R=function(a){d.viewport.unbind("touchmove MSPointerMove pointermove",Q),d.controls.el.removeClass("disabled");var b=a.originalEvent,c="undefined"!=typeof b.changedTouches?b.changedTouches:[b],f=0,g=0;d.touch.end.x=c[0].pageX,d.touch.end.y=c[0].pageY,"fade"===d.settings.mode?(g=Math.abs(d.touch.start.x-d.touch.end.x),g>=d.settings.swipeThreshold&&(d.touch.start.x>d.touch.end.x?e.goToNextSlide():e.goToPrevSlide(),e.stopAuto())):("horizontal"===d.settings.mode?(g=d.touch.end.x-d.touch.start.x,f=d.touch.originalPos.left):(g=d.touch.end.y-d.touch.start.y,f=d.touch.originalPos.top),!d.settings.infiniteLoop&&(0===d.active.index&&g>0||d.active.last&&g<0)?t(f,"reset",200):Math.abs(g)>=d.settings.swipeThreshold?(g<0?e.goToNextSlide():e.goToPrevSlide(),e.stopAuto()):t(f,"reset",200)),d.viewport.unbind("touchend MSPointerUp pointerup",R),d.viewport.get(0).releasePointerCapture&&d.viewport.get(0).releasePointerCapture(d.pointerId)},S=function(b){if(d.initialized)if(d.working)window.setTimeout(S,10);else{var c=a(window).width(),h=a(window).height();f===c&&g===h||(f=c,g=h,e.redrawSlider(),d.settings.onSliderResize.call(e,d.active.index))}},T=function(a){var b=p();d.settings.ariaHidden&&!d.settings.ticker&&(d.children.attr("aria-hidden","true"),d.children.slice(a,a+b).attr("aria-hidden","false"))},U=function(a){return a<0?d.settings.infiniteLoop?q()-1:d.active.index:a>=q()?d.settings.infiniteLoop?0:d.active.index:a};return e.goToSlide=function(b,c){var f,g,h,i,j=!0,k=0,l={left:0,top:0},n=null;if(d.oldIndex=d.active.index,d.active.index=U(b),!d.working&&d.active.index!==d.oldIndex){if(d.working=!0,j=d.settings.onSlideBefore.call(e,d.children.eq(d.active.index),d.oldIndex,d.active.index),"undefined"!=typeof j&&!j)return d.active.index=d.oldIndex,void(d.working=!1);"next"===c?d.settings.onSlideNext.call(e,d.children.eq(d.active.index),d.oldIndex,d.active.index)||(j=!1):"prev"===c&&(d.settings.onSlidePrev.call(e,d.children.eq(d.active.index),d.oldIndex,d.active.index)||(j=!1)),d.active.last=d.active.index>=q()-1,(d.settings.pager||d.settings.pagerCustom)&&E(d.active.index),d.settings.controls&&H(),"fade"===d.settings.mode?(d.settings.adaptiveHeight&&d.viewport.height()!==m()&&d.viewport.animate({height:m()},d.settings.adaptiveHeightSpeed),d.children.filter(":visible").fadeOut(d.settings.speed).css({zIndex:0}),d.children.eq(d.active.index).css("zIndex",d.settings.slideZIndex+1).fadeIn(d.settings.speed,function(){a(this).css("zIndex",d.settings.slideZIndex),F()})):(d.settings.adaptiveHeight&&d.viewport.height()!==m()&&d.viewport.animate({height:m()},d.settings.adaptiveHeightSpeed),!d.settings.infiniteLoop&&d.carousel&&d.active.last?"horizontal"===d.settings.mode?(n=d.children.eq(d.children.length-1),l=n.position(),k=d.viewport.width()-n.outerWidth()):(f=d.children.length-d.settings.minSlides,l=d.children.eq(f).position()):d.carousel&&d.active.last&&"prev"===c?(g=1===d.settings.moveSlides?d.settings.maxSlides-r():(q()-1)*r()-(d.children.length-d.settings.maxSlides),n=e.children(".bx-clone").eq(g),l=n.position()):"next"===c&&0===d.active.index?(l=e.find("> .bx-clone").eq(d.settings.maxSlides).position(),d.active.last=!1):b>=0&&(i=b*parseInt(r()),l=d.children.eq(i).position()),"undefined"!=typeof l?(h="horizontal"===d.settings.mode?-(l.left-k):-l.top,t(h,"slide",d.settings.speed)):d.working=!1),d.settings.ariaHidden&&T(d.active.index*r()),setTimeout(function(){d.children.eq(d.active.index).removeClass("out").addClass("in")},200)}},e.goToSlideDelayed=function(a,b){var c=d.children.eq(a),f=parseInt(c.attr("data-pauseBeforeOut"))||d.settings.pauseBeforeOut;d.children.eq(d.active.index).removeClass("in").addClass("out"),f?setTimeout(function(){e.goToSlide(a,b)},f):e.goToSlide(a,b)},e.goToNextSlide=function(){if(d.settings.infiniteLoop||!d.active.last){var a=parseInt(d.active.index)+1;e.goToSlideDelayed(a,"next")}},e.goToPrevSlide=function(){if(d.settings.infiniteLoop||0!==d.active.index){var a=parseInt(d.active.index)-1;e.goToSlideDelayed(a,"prev")}},e.startAuto=function(a){var b=d.children.eq(d.active.index),c=parseInt(b.attr("data-pauseAfterInt"))||d.settings.pauseAfterInt||0;c+=parseInt(b.attr("data-pause"))||d.settings.pause||0,!d.interval&&c&&(d.interval=setTimeout(function(){"next"===d.settings.autoDirection?e.goToNextSlide():e.goToPrevSlide(),d.interval=0,e.startAuto(a)},c),d.settings.autoControls&&a!==!0&&G("stop"))},e.stopAuto=function(a){d.interval&&(clearInterval(d.interval),d.interval=null,d.settings.autoControls&&a!==!0&&G("start"))},e.getCurrentSlide=function(){return d.active.index},e.getCurrentSlideElement=function(){return d.children.eq(d.active.index)},e.getSlideElement=function(a){return d.children.eq(a)},e.getSlideCount=function(){return d.children.length},e.isWorking=function(){return d.working},e.redrawSlider=function(){d.children.add(e.find(".bx-clone")).outerWidth(o()),d.viewport.css("height",m()),d.settings.ticker||s(),d.active.last&&(d.active.index=q()-1),d.active.index>=q()&&(d.active.last=!0),d.settings.pager&&!d.settings.pagerCustom&&(u(),E(d.active.index)),d.settings.ariaHidden&&T(d.active.index*r())},e.destroySlider=function(){d.initialized&&(d.initialized=!1,a(".bx-clone",this).remove(),d.children.each(function(){void 0!==a(this).data("origStyle")?a(this).attr("style",a(this).data("origStyle")):a(this).removeAttr("style")}),void 0!==a(this).data("origStyle")?this.attr("style",a(this).data("origStyle")):a(this).removeAttr("style"),a(this).unwrap().unwrap(),d.controls.el&&d.controls.el.remove(),d.controls.next&&d.controls.next.remove(),d.controls.prev&&d.controls.prev.remove(),d.pagerEl&&d.settings.controls&&!d.settings.pagerCustom&&d.pagerEl.remove(),a(".bx-caption",this).remove(),d.controls.autoEl&&d.controls.autoEl.remove(),clearInterval(d.interval),d.settings.responsive&&a(window).unbind("resize",S),d.settings.keyboardEnabled&&a(document).unbind("keydown",M),a(this).removeData("bxSlider"))},e.reloadSlider=function(b){void 0!==b&&(c=b),e.destroySlider(),h(),a(e).data("bxSlider",this)},h(),a(e).data("bxSlider",this),this}}}(jQuery); diff --git a/docs_src/assets/img/LogoWinstrap.png b/docs_src/assets/img/LogoWinstrap.png new file mode 100644 index 0000000000000000000000000000000000000000..f7d77666e651f59c63120e590e35657b071c945e GIT binary patch literal 18224 zcmYhj2RPf`7e8+AQ53Z+R_&r@jkc&wjS$2PT06D(Xl=ENnyr@7#7L~#QhO9F4MDA1 zEwO8_-@Bjh@Be%Lo+qAn;^y3Y#y#hC&OKM+6GJUpDt0OY0s>kcZ4DCw0%9oejHVz1 zet(;4BPAdp)N?h1_(2Txm0;eU5)Mw@j?NN6o^asr1O&=zL2w6{yR+YIN9U)mUMirS z)=toES0@#ag{;9{1Gu{LGgs{pA7|4LLo-;2J513Dq^3%x9Hayg@O1WbxEFq5>m2?3exw) zZcE>ll9RlvC@FPM{H~PJT}7q4Qn&x_4@i~jwz7|ti;{`P9=b z>EP(?@23I+N&cHe^8d~PuqXNd_ygYjKM6T|0b=n1_`j`Ftwca@n?Oh7p;=Jj)?8qi zfb-$Wo>AiyR=KCq-|kcD?TnY|W_culwIX*5jFICP!d(rUl+og6sW(X zW$KT--R=nKJ!O^aR2%IXaoH)le>|VJo)_vnUt?j5%4ATS#5c$z3rWZ-*objK znG^5Z++d&lh_OV!g#SMh*>Al();7W+?;CV~!hJroq3-U6;2-?Ah@U^t&d*`-i-_GA z!t>ln?Rk^cIJw3Q!4(WvRXw6YAgXW4b!-{YT5 z`Yp9swD_H+vWO`LR7vAOi+>XqBQk8uQVjp^i_IB=_Qyp9Copqo(nc{v-Q#9vt^Oep06?T@7G6t1X$hEhmfO@1N*Cy;Ap?$)sHTv?V_w8k)F zo|Fbja|}~XxnTk@wh-`_*k5s`A!$VNeRN&_Es(VC-md2&?6s&jj-p^IpN{jT_F}jT5H1|6Xb_roPx`OV|O(jpKK&02mlESH%pMs{0RwL*)9#^r2@h(|W z<0uOve%?GM^Ep(cY2pvK@jue>b(ou;H)7&xnmx=^u%KgX*MGZ5Y$7>r)7V_CvX@JhY+9K-c7?rEBw=BbJrGS zA+6u!X^S;l_k{&9y>X}=b^vVpIYntQw(9XLS1Y~ET^LQW0~3iFaR)(L(VlQAMn=j=z9k6bQOL(LF^>^H1yp-fl_nr7&9{v4se=w&S%Tx_UORjC>>dVKRR@dQ+xw2zPg>Zkr z6SZbha`09U)t(1ofR_Ms@=4qjUtRzfytVZ zdDsQ>XE4$|n9DjR$Ww**6*fjMsy!>sGb(mDZsMqs)N8=+Bj8G2nP97;c!)RGgQjz% zyosJBXn(bH0ko_;{`q*>mHSe3!Op9Z;J~J!$N7ope_| za*(L%1S7#UG|&fIY%TJrvV^>lp|v7-b`?s4d{=eR0z-^>8~t+ENwl;xOLp4lA3+`5 zcrqwU9Mz>Z0rsDG(GNHu`J=D#0#6z;tNvi(UdvAt%^Ee5Hul^dd4ys9VdtaD>O6g2 zPiG#t-wkPa$ZBLN;I%KUpb$i|J7Kl{iL78cq9)-dr`ufu@TJIZRXS`E)t&&g`+FM^ zA~N~xeomI=3i5;6C&U3^&Z(}@bFF81g>l-Tvd-)5BWrL%vH1-&}$ zpn!cGtW}hyH!fC9`DVR(pe6{dmG$6V97D8dEI$8dJmqPGZ$CXB&BGAZKdzM>pT?-- zimTkriLV|k4y~0iRcoRpdz>-dn84@}zMdtK(D=XJL~`eL?1)6u@9E>{Rjq)`}NQZ!ZWeQM!NsDe=SHUF;1dN*v=GwcR%jH;aJ@ z6@Cdq0}}=~m{lXKcD2_U-y-7j9sUU{qK|kz-S*EpRptId8?&O-Ff-;$>9vX>;UpC! zZSVF{euAukY9?GS1M1sHY=eGz%Yhwb4G60wD~gLKEw|SM(bATnY`S=Bm`VOSp6ikl z94?7^c=BZJ`Au`pAAqkzP8s9o%iOj}=t@astmjm0W(jwCXR5`D!>po1(cnARzjrt) zuu7}+TsyVn--0@9R!=S<868y=yMYp*rTi%Ic11EsL)2!gWAD70jLFCGqUf0UZgAtJ zb+;UOl75q8?;49K za)$3TaHHf<1dS@fTT0Y4DeE7#c6gd%_V6~V^&`>hQFZyrEsbrtH@Qia6TrC#PDt6_ zjwLQvrPXQE#%C2>qzENa(Qd29u15X)HxABgeqD)s==iaHP0Q}^2eh{Foa*kUAvCYY z>0H(adcR}8k*T=}*^VaE8oPV!c5yXzbf+VDSXAY=EhUb+slK&*69IgRMMB-5+FSLv zaw;svK7UJ8tjl(Gv$9X4WM8)_03$+sRorwg2|Z}+m;0kNH9f7!)T9!?$rqzb*2o7x zEL6JLuB_nF<$wPB(i))@?E^Nl5egsx7GpJ(4{`2t8|^w$2K(HAhkw_xsEye*v|muN zZIpqB1{zI~w}iIz1s?mgmjf#~0ah}Lipb+2EbplMfzL(vjbM*_#Rw+;IqP^dN>5xAA%tJ&jl*vWq`HrllG4 zut{d7`LqV1l31J4@AAJl$$!kJ*!yb;Hijd7_2gp&wB+b{w&Idix+71u8I=2mws-7U z8Q3?eWG3^*x~@7n*BsjoK4b^0NCha5rZ|XZsJj1+G;{qj0hj@&Z-^21kGYA%;V|`= z0LzAp%3{ymeq7)J;xi~GgfGL1JN5e@pwrecwxF^h*&G7ZISm?F+5MFOn@WV%_fSQs za!En!$7Z%S28tmK%>Oo*&ue!c8-X3d?V9bSZCdB#enkSa z2I|eaQ-{i`-rd^Yy62!GUk6T|!_dok?YGTVTo8|*w`y~MrBEuAc6#5gS!Wwa#;BcF`!T^Lo#56~_0S1JbzyC_5NIwRuDfoY2n zEs(8={BbJEDKqev*kX$mwaed+oT8?6ORX^SMF1NMlpdxlC(r1u+Zrl1-h(>;n_(JY zP87=lahxTy%XLwx31(HO0A~C}wO*LFe>QjL*-n5}SA$@{hrJZ`_2#2`hDHW7%}^%% zVYE&(qB^lXvEcm?`9UzJWUNl=vY+V=bvD`Qp27I^to*n+8x#fUe&__ zyPrUr@qVgCM%~@2yREX73CD2|8R%!T=}uX^^3eCFb0|X|*L@0L+m(G5Kxt>gp16vsLzW{{`k{0`|RIqvW6MKO67fNaL?b=PjIF+)EeAIYT2;_b$eM$GGb( zx_Ml}Dn~Y}l^t__b61I-HznbFvAUE~Yot&a^DcjznTHI)Y)I(M39-fg4A?&;!QQB+ zXkInA2L-Hlo~*hO_SI|AX|WNQ&<-*dU82#BiashLrS9#zf5P0}Yvu;!D<1t(4 zm^VBS`V-QK~-B+o(xxy$8ROgPQ}qzJD;F**zVi#-jv&e6vzbLGJ~i zX3L|QYYx$5yTJ{JT{SdCzbPVaYu3jLGDGk2%vq-?DL;0aq9X9pS3eoKfl#!SG>`3) zkG}6##1DE2Iec#!t97sD9KH7XUzld$0H0nYW5O*Z#~0*xX|U(!&S=hE!o{0ngsp6E za$b8%{^C6lt35{QThEznZBC(La4qsRC?Jb;~o=rBYE=qT9IZ6kUd(eS$r#>)#(vU-z?U3W1gwQ3N@+|uo zKZp0M&_~oqlfJbH7jbYI8zbV`qybaHJ|94t+~eH#=GKob2LHM0r-1$pwstraSdcqU zj^ZOFkB(`7hy<$PmtMn~)kwJG=ahRq6gGxDjqJbR9`X;R!yk^GH<|ep4mE_yAeA|8 z_ahRft#_z3R_HNu7@1}*nSL^A+|^ur+c!R)C^MY!?>+$(mVz}j1q0#lvF@(W(KN_+Rg^i@*Yx$wUYVU$1SN{Z?r_q`b5T z*_;+N=`x38z)m_rRI8dv;Y7FILEaxOnso_`i$$gt2{ zIlvuvAEU2$Qd+o9ZlaPBE^IX(Z8HH%no|8(%87hR_WLacX3)oIwf5q6q8p{f%oK`u zd0_I#*A&lL(LIBN=_KE!L$vHOj6=nH)YtnCt25duf$I%WdKDGXwfg#vRqa#Lz zVU`F;Folnz9%vP*GR+qF%j{BnH1|<~YV#5bvHC>+k`3ebB`M7C|7=j?&n05$V>Q*Q zL^t|9-vwP6LgbSmRup`mHP92Lyvx9j+cAl9#du}F20Y_Lg)wLc+o@!GnMEN3TfRx| z@p)xQK~NnUp><%UYJz<}_#AL0)!NhmM}d?VV^Q7DQaG26052S^WM^9S-eKD_q|c$C zPnD>x;JDYudYY{QC#8(yfRR7wpzMmtE}$AN?neh_f|Z?aX9Gz5qd6RFX zVC+eC(U3UR4>9>i*n%8fMBzc=kqVyJ`Vt}J@4ze_KSD51P^_)W{Us^$ry$5X=9MD- zV8^I9s=a8_F>-ws&GGX4`5jv_TOwNm?tYP^IpUuJAfx!CU@;SHY*Z1dk(+~9)M2$L zzEl3GL&3>g67C+WCs5|i1x;{2vAg5W6p~mJM*1#?h{bW6V~hj>%``Y3d6)w1Vp;$!Pw0xHGTom7M>DKsAZwe7LS{HXY%ls;IVG?nCtw_V|j z20qls6<_j2C~N91FG!0dp^kW#48?KO>H@1}RlRkUXT=gqp@tU+Uy8zck7Te%3#JGq zx=>6jD~db^G9{g=XxF`Z3w%ot%tKgBDnVE+X`kk8wUhvko@H--26&?v04B5mu>2(( zj;o+BSnb>QfkU6aw|762*~;@A?U?Gwc-o2}Uc+faX@_q`CWjwX#yHo{I(E{)UOx|b zE*`DI+bZD0DGxJBcVsCT;L~}Q8?&i`nE9@~a|dk09ooV^PJ6h$02BnH>yjyjvN$xH zW-En0+qV^A7zVYhCPqVEkq79jMwBAdhz%u8)&H!lT@GW&2d^(ZG#ArXmYKnqeDJsg zGx35-M5rUBRdL5hgx&C7$Z^8JnWd3Ab{JLTEg+gaki}M0$Fi$pKUE2{Kzn4>)QITR zHuh1KY#BzV>2<`h05bC%$@WOWJ`2So4W>P_ z*N3zba!2$*yhqf}!HXJHkmcXHo~rh-xQBoj?1+GfS{l`ygG2iN}7l$eJ z)WPc(*cyAi+zx{)`GjskVj+SwE<&te=xY6F?76*wO38q>Sic=cn!ifho4@8 z7|d0J5F!km2&)BCfNgZZMtxq4p=iMk%}X&_YpN58T@+&5W*73MVuKNJrjA$nQ?T;Z zBc)OL$Up2cxU&@DTKCbiOq|Wbh4T8IN8@%krXOuNfvdBgi1y_O^PIWb)8c4z0jG2f zio&T-a;wiYHoJt+43v?s8U5aFIwc6hGK^4BA~jXVm3B%_{P7Dm*lUDWvh1e|y6GIc zH3x=8EsQLJy=_F(=OBWpF&B3HZCOY)VJ^LuJ@X^pf_TAxJN#wYJ469u;}kctM0xWq zr&+BS9F4f*ot~P^H1mIfh+sIk;x;(xFwH{uY;uF=S_a)!;n8KXGC7vvxN>2oT`#`$Y(Lu_dD;R~zC&{X>(UYJM|+MSQf+A9GN} zh7ux#Sx&u04V$YO``2MHXJvEJ#LPc@(a>Y?**2~B<_}_M4PwENs_5P?o5gvNe)H01 zW+fq*9a35WK=kkOF8Hc$K(~)6T|=8{Ls(~(Luf~G;{#UZg#!o@ag?k$pQgu=cRr8F zq*HO1MH##mX1|=Kw<*~bWY`nj$>5hEV|{XQ9LXX|Fk$Ae$KYC82zNouyc~I5`Fc-a zjPM%c<-x6grR>9Z@d(#l!;CsE@kf_8Y%)eB8V#FboufF=tG2GiJ!fy`qemt?Vn)Qo zD8y31wX>YF2le`N&&A0Ksls0Lalh$|siJG;t1{h>|MDu{X_vbTeVIR7QI@3<_@@W7m9@(^%*C7;8`&$!ks58Xhs@n< z@t(8O55V-#;NDZ>W|23}RL75l!B_xAngdS97L(nxHFBn4-uBVB$gHORg!8Db2&v2{ zf%2~BLwWZ|E4x1LO>8-KfINM=j#*q>5e;^0@ZA3Xb<22hfiz8OJOt75 zF5yROjf`IxmLo_xSGzdun$|kWmL(ZBOufJda?NgM|A=t6m)~h%j~VMa0$u28xE*$L zk`(vn2&QrZ2N_3UY951*e{#NL+tm6jiHv7ebvh=F)r<7LAVVK7oJXl4HrCN@(L%Be zQ=^z2lv4%wHOUpp1(&FT2@*7ad-q-r{#uGHRMBH>bRE@h?P^YNm2sipTm1~0jWERI zpGLgz`}7hM4558#EtAt5NjPhC+(`t}adA)WlGGEYDmMcf4MfEz*-o zX`;0FFxW+Qv-948)VN;vnkUiG@euTj^l5Ca)?P-)Uo!472afOPnoC56`X?vN#bZQ^ z9$&WH1b_Qc^~Zo(e_{Bm1ZC{kARW>^HNr>}>>$oyKf_7V@PL&))ccIe+!LL-<2a~e zOI1)}h`6{UE678X@+g>TcvY^q3|5{oBhH?(Ln5jW$&Nbq<}y)rQ47i14Q0-Gi34?* zLBtu~qQWAwbU`hEc)enSeE%wMNWFFn?^szHEPLIRbIUeU>-3!eRGC%50zB1yRK1Jz8TYIlYJftLy$n=S-h$K9cf*|x#dz9D zUdGmQ>`hvZpoSSu4ZrcAon^Bw+nZ>Uc=Ofin$q10I#Pgf0Qnf&F4O6GjYd==)OvF+ zBVV!$lxRA!(EhbF!`7Eyd1nWIguPZrUwz0fq~*lwQ~q@d_>|EoVrh}nMp8(2@jjs@ zct7y^ai)UpqY&(`xoB7v&kC28jG4cx2ivoTh3+vTJCadJ5zCtyp;0zqf1$-GvmH`d z52nS;m6C5?Uv;;|jr_oyE#bm2gqSgDTOVYhfviol88VDX9Ul&LHf-V+!gEVhMDketo*v`~yEcam zzWTC*Zs&3ibTh$$B<%#l|9rcRvSApU)CNggYe@8X#i^3M{zz|`$FD+oZI|6`$C6>x zgO>+)TSF)hRy9|Cyk~+kG*i1LTs%lI?aTKhvDGZ9Fl9CYuP1*0H zmFU(T+bb_GG#Uuqobq!=x`eJk9JOpKWMZwA^O#1Zlx^!sZ;a(_-={lk3+!Prz?$- ze}7xv8Yp|{o!M0M#%HJiGYawvcSZ`d-~R2(k0og_ zof9kK&}SSuVlqEt|7PFJLJ5>PKbOv4NSh~81%cjIZp|K2eG`* zYT9nMO}0{>+XfVrpn!wZ0%{Q4Jwtu0#wOR+05@;PmXr=0LK%?4ctQvRzB4s`qR?m|>K(F4P_5C(HDgh55>mG^+8pU52 z-_$?iB#-gve3F9LCgZeQ0yNv6a3KZPzUBj|gM1jXmpQgxl_t5c$Y}5MPyZnP2$VI1 z0r$hxyWKrn)|a_T)=nB$4Ft5M7cw6>A03vVUSc#AQ)JTKi;NZ#Dw}?5uz{B3e!`Bs z4O6NA^5$D#9Nt}XMSkSf zl8=R}+&(+PA~<Uwkg zPfH5`HirO)r~wv2fU|a`9H;P{UsSy9$y*ko-auG5RJ1)7#nggR+jYLk-buoL@}o0< zgl$NB*tLL}@=!i%cuHuS7((Q@vtruKagQxN)sa0RvWYUivNi~Z55C+@HDjJ)-mkuV} z66B4WK;l_FsA~NId={GOCrJ8vTv&REz31aP^gJkssN9+(zAiJ zHG}ZM@mL@%yJ4VeUHIiBMJ>dgD zpsm0LO*=fM4Ws(q#h4AUMzlqP(|&ezdfSh2hIpjNF<6^ec_yA0kU+96{*El<#Vn}* zN@6-&Q$e~i^jAN%geI)U7$pu&@Lh$mI)s)RfM)xq9~V59|D_pror4_P*5RpYso2Pb zsDF3UJ=O?+70Tm#9oqi#Fja(^Az0?moSBtQLwo)H+N{9Hwz?7tB=X04@t3oz?ED01 zJo9_)gI*o)tb4YS>II6=TEyMPXK=Q*%l5^ZClJ)8p{0f*~rxKwPk$85c< zXKOgGi_vfLx--kjX%X^5Wv?pm)UN8$U3z(zRMCMiAFeJ!8TKMS^x2SbLRN8Im_Cf> zQkO#-)!X|bu2l0>sr@+z;7#|2ZUC*F6%`d(a>p&CG1uQm4DDf~>QH$D!QA6OU9Bxz z;72ZyZc?IHPz*WWB;vtW)|>^J?4#oIy+=bM7{>gkXs0c@#b_WZbkIDPcbBXba+Ec) z7w4s7bqt<}4f@aPS5*1X9+-?45gsr297}uw`aFFTWmz>#EMQ&WSQmqBl%#P8Ral_7 zp|>OhwP)Mn`BV&Uon)v}&;)~|O~Ky%a{hfNcDP-N@1w6?UnL4aJhW5;GI4jAFT0Up0X{TD2${Rbzk2$bcl@c+&_+3Awd;E} zN&J=?aF*=x^y$+aFlUWJC`(PRmA%T_u zSU0UDMc?Y?6q@)MlPhie6eUYz7)vTD=(BG7A0V;-w3FPp|1Sc>F&u36pJ@p@@w)Z zDt=sQBW6-OMZ~TC)rN=a(~!j`XCoW`JfY+Pq3GmkKC2t2-6!-D=oi3Y)Mu_qwAR1p zD>9H{_WofY-T|%8{j2hKb~3mb%0R$GoCUd{{IqjmUzqNO=7#$&uirw~OhN zQz;Nd!>Ja>tqg>)Ya7JrZNj~V;+a^8p+dpm70_QAdn@7<>`TohN{hU<7b>!IgrR45 zFpM~l-^MXjwmDc4|Ke+>lx1G_x2Zh!W&1w=>D{jAqh+R8$S_CnFptR;yjq;&bCQh&`$@_ ztaL^;Fjn6frrfDCCKUfmV__Bh`H2klnmOZ~IAwMGlJ+-4#s|$6D~8jw1e&CQWRSFt zMg#~{022taOXA$r_80%ak|9KBptyQzpt+oMmjhY2=9B(+S$DRsQ=bgAuS;~hj>*{j%UW;Y)HSZGH+xE*4gzo! zQ_{~?)^>AV!$Ji@Z`lO@%;u+*P;;${a$`0dn)L^b(`n9neS8#I$uQ};+d^-@)7&s~ zB^CqLZ;S1-a#`_wzW5aK=hUjsTOGoX&cn)Omj8`%DjYXsJk_H5FgUljN30O-mObYE zAjG@4%_$E=Z&QVuDX0~K!umg8`Zf6v&N~u*l5^TXwf!w?qo<%5J{}HuVYDc{(FDa4T<8Hi!)Sa;hV8W`e)!SKf?h z7gzORRa!ceoFvCIH13$T$E)9CK|_e8u$n1?=C?mD-?6U;oB37;>uH-7W2^El~sqfz_xdzUmvdYwA4 znk|B(-iUx|qJZ*~&@Ndt8$u|GDN0kOZH?4pa7B@{FWd5W%8mi*KRFS z8Q+EFCzQ@D(k82Rmm%~R)>yYAHTkQoazy9bLF3;hR-Lj=yboy0d8sGQU##f-<#B@^ zID!o}8J4?*-IpiL&2t17ya~mpLPa&L%6hS6gkb`OO_I z97|H$jGaDdN5aL=wK)wkY~tFqotpmG!!EiAtg zgBYc6lgHrlM79&OdE|yUhaMx8&R8E*P{p=K_dUnTwkn>EHEVn?JmmYm5&MXPK0AXFMHAm`lzM@8m1r zTov)_V*YUbLUc0N?`u$e$zX0D9mxX?ZVT)>TD~}4M1Ya^$h)0Lzh?QOfFc(jJ!h7x z-}I4;eQH>_UpDJ6?YwN_KsrJ-so_I{z_4nxn;}_%z~vu20#k)JGgu4-Nh1^YpqFlQ znABjMhUq1s__A_c?r6|9d_{2i2S>P4IZ2iMIO(D^m`(I`fZ#5Z{W52@@QR%_UK77G znfLms;->N=A!v%k7<^ThyD27>?Ogg^vsk-?7m@1Cps%Z7{|JWQ(4O^2{LrZ>Q^M5U z^Cmgc2*qDxK+G#<%8+Z;aqx z6E9?V|H#2RN($QYrLfu*A$xMjnDNxiUkJbMx5r*yLwjKWzNQO%sIe`s{9wvU=JqEu ze@YLvkroX5SDoq^|3l*(N0TZS0!ZT!8brNE7&?4xoHQ~?xbrTZgYiqhs8H^n>3sn5r)J^ckUE_|A^Qi;zQhtgKSK5 z*wf@n)Wo}sFQCjcwoS2~=>0)#eso$r->xM1k_n!a@YBvI3@=C??kWb%&Kg6MqYmrgR(P<8|Hqpc7~T5R!y@DprQB>5ips zknt;mOv}Q8=s6;Km3`J3Wt9r5-83>g)({>GdUKUKJ+;~E8l`h0rYX*4cDZk}6O`Y6 z^$RCgh{GFwI3_rHg5`+XNf^MA#wxJ1-@G5CT(Pl%almL%So6XO+@H+9z4$D7dZKE6 zw{KO_)7#_KYIrv{X+(Zl)W}-R%gZY}w)0Ch%2}o+ipD^H!AAUn06z4O&Y~2)euV#gNNt$QRZnyU#kOMA(N61e!Bi(dAAha_Ti17xEfF zRn(qlogD;{iC#84)LoRvrD&Va63kX?YythCtDx~rqY%B)vZuglw#;IXn6RXq;`Aou z5w^c@Wy9f}k%oxs4IQfcP3W!Zm1S=&UhkSMdzjQIh8*T~|xC8xGruh58o zF5O*QmCMgpS{n1lSZh=}h?j#QZ zf{@%+Pr9EU5uFBS;>~g;2zS`dv}I;h9wrv@X}ed`iJajyCjq)MXl@M=TZQP2;8JDL zjMbJnTM799v5~?J*^-#~e%Xu1O(9>FX&m%?IdcB?w(z}$OItGBITJ*EUfjHI(Zs(u z!x{?rB|BWu2!lvQCd$h(4aATuWpK4-GZ!QKRLR?LH`WtS8ZAfQxTY`pMC5hh>n=@ogXqIvn zTq>EmTXwK22&3OnPKh$~2keEtdeFY95!;a__vByLlf zA-EQ^d7m{lq3sT6fgp!Gm7ut0c{P;i+60?IO*zW^7|co{!K*TT#(|1UxX{-aGP_%n z@q)X$(TdW7n>OC&p`#$w%VXvSPGT{LH;W4Of=%;Koh`>gpre3Np127F^r3Eu@6L>B z3W23- z|K6Euz=1#eGRpX9D3^=w{gEY?g+wB+#kItb$~#T#fQ|z72W_+SjyaTCAp#WFs&9fSAuL zyD%&}yPRIe2od*Oz?wAfWt<1*dIGF6OEV(Ba1w2wqr%zpe{wkBzturChe8A3?1#ta!Ugj{hahWK zLYpXP;fvRghQ2?;gbO07B2(|WO;YECK#`OzI>eb|BL}^yd}tFq!G30#&BPIWjzffH z>J5Z)Y7$eO(HF2}Kr9Ei9_EZbZ{Wn+U~y7e@(xIH;>@To1Zcv8vL$FsPI4aivX^sL zBSe|G(~-#lOvM-Z3`suf9go2}lHYw)HSb*IG|b+A&BjkPg#swEMp6EwtW3e#^KGT- zR{q749)%f!r50li7Z&&&GzqTpg9B(f9eSj(O&lQD?yyg?xOP=duVU?5$SkL z%0Id@jBVywIdGLppj*-mr43bg%+k^d)&Am#Qu573pT^+I2LIr39?ShG&YR#lbT;6H{z*fpNHb*lcop3d zU9BvqqZsfMbtk{h08jAvme$!+y+Fl=*|_LUTOL5bP2VUjgj8Fxqp5&!AJP~^s07?* zt`Ct_Eqf{_Q_0-1+nUZxMUBCku!r*V4*3X8hRF1dEN%hV@GgNuY@b zzSs))yAV&sQ1!@4_;oc1p*$9)Y;Flj-8(HuztsLdG`vPo&6F`sYTF5B8jtLu!!$Ft z7XEFAs&<1VTnBYU#fl_gJ_la_kh<6{-0$@Vj}PO8@K-wk4e-(ivaJ_Chrg}V=CVaZ z&8%h)SN?YSUiBtjHS;UbjU{p;n|DGr2giEoZue?|8)O1*9GYO6qry!Ln=9(- z>as1iUkUSizs{vr$e~8!J1OE$Rm=RU_v3x5lx5Qw z8sDS%r4;xBIE7h=Qj@tfh&w3t^%bwOoN?C0b=M0Ov5>2}mrN{|#pL7- z06dzuTaJ~SF}jb6-2LZ-`}a3GbIo%?_6qxMQF9w8Hfo~oNSk2yFg1DirGj$zx5-r@ z;J_p<4ROTTbNltzrhtth)q9us8Kjro5-o2`rJJ99_H2j|^?UotJa4r{73dYtE<#8U zRp$8&b^5T2Y&{$qS4@#&DXqdl9)gD_<+nt?TIcOTJx(Jmi^>pXHqU|ln^;X-(OGUc z_Q6sUCm@I7e_9f)2`AwF`9dYyow?+xj}%jxGPCA2+`F!E29(>Q6@t-9O&Ka1#zH%*-bfr7JNZ+9~`>9P=-54six z1j_swmQgE1Fp9i!GxL|Nyq@?SI>3{towt2x_+h_xnk(9rs6Vs!IBLr@RgIXF=MGD5 zT{@+O+9J4j#uSM^XPcy|Qy>UT9vF`9Z(|J-*nM;O-*(8ZaI?VQiW89U4J|A539yAF z4$NX;!sQ;>Q;;pOPi8?5L&C`f3lujEHFYRYY}blngUL?JccaEfNK&hP@OlWVEeISD z!VmWt5?0520ht^vj8!KA`{w}DK-llQMAJj}&aeuoSzZS-WK6%l-khMSgL`?LStfe@ ziqJpI;gTd+Uss+V5$-=42(An`G95q9=PE(W#!$KNgKgNX*K9xSua-FLlWDAY<2;}O zYGzp2qdwC_pnc*z*uXa_AqZW;!Xmx&;$mUZM)7q6$XM3d=uTX3$O9?y@g~cYD{%`K zCUiklvYG!U$U}ak;Xob5)td~1p*x;45vVycERxyfHi(`u_hX?noq`eAg61Y8kiwF} z?`MZ1iUmPaF|W!EwM^PmG4y7KLJ0P<%tiz^eWCGkJu<3>l%k*cj$fC*!0s^y*7B?2 z2QA#E`$`+H;Pytdt*2ZbSis*tz#Y;Y5pn}}4b&F~K5ax}{s@;V6I`@Kl}MJKsaBuv z4Y?hjfOgG?_R6B&&HS6+6B}dcz?aH$bqyM^rXgsz*fIf-q{BHIlKJZy=Qkw6Rs5z; z83F*@^grhH0@Q%>$$AsCq{Ty^%??jq2Nc%aRe+jb38HdHb=W^Sp^d>6-x?*)mtvDF zsTWY?D4l~-u0)Wt76k$KeZVRVNFVbmqFJ%U4}-->sKB{Fjjkfl=f-98=qLC#D9tpq z#+)8rfbcRgc*!u)ikwl6m(A$}@X{yQDXhkl|Dj?lvS$O>|8kWCo@;#p>#~bes7bfZHiH zYnpvhCU}S&88gghYnKoS8Sv=v?ze2N9=SE-F!FEjfYKydzCUMg)7Lu&kutjKY`KWU zFd>u-z-jI-lv#)X#KuEJ2$MO=ae`e^(NZH~?spKIjlo%WzH{__vqN9Yrwso(u(m%U zEbQq$0*84=$MvXgaZxBkmw!;=jY0%8u;^9}FK_ zFlQ{IyZBvm$Rh}qYY=K+>WI-f%l_A0kHOw} zP~T#HpcbBhofl+OvEgf0-FS0$6SubVW=J9HKdj^PEn3`ehEYL0m}jFmXJ7TzVP#=- zc0E}En-$UQ=Qy04=_B{?k)QrF4uo2}rU1>y8@iHHzFbB|@-#RZ($ zQ5VJpx8O}}Z}INl>XABQMy{E^7M>8ND{E-Sc%roH4{qlOrSGIJ5Dumbl2!C3x=VQ; zu|f9HaUrK2a->IFNxjBWlR?G$c&bR<+gP_WGH4`AU`Qf;EWv+>(o4 zj7p5GlCF~2gUG`m{CFmpfX92arUohI(nSgO>3WSGlpT>Ys#WMTkkw zMQ{Bbe{uiGufLq*Y{5-*-)Cy3I2n$SuC}YMSLO8A(T>7u%o+8K1l5|o zRwfGL&v70Wcn*DwP7b#GO7zQTkF401-@Ipy)20e|?Rw;suzwY*D33>$9)F;rx$pW=sHgPVA|!kZBMaa&O>hiYySR+qbw5!(h~~P zR5X54pK!>jTi2IIFGn+LuGHg(Gc{Li7!>J58Plgy@E*T*yi-K-vi}fv=s&0I@`cF$ z$<|znM|b8X0S)AuD;^$cD;XFjQu<)NBVTl50u-_fspbc+;lJWi7odiz;q5@@AMIHu zjWI^I@;PM_Qd3hamhWo`Y!na>kS6^5zX0n{ah=sBdO;p*BI;GYKmF+OrAQ(#u}z` z86ESKn$u04%?xP8hBIyqED)MF;7kkkxIJ-u2F3d_obMT&l+!<%X&%s3c=Jd zqL|xq1$&%wGLbxYZ8VB$Sb_{Q*ZS|PjV{@ZGcMfaC<~?qH-_JbtbP^# zU>M0|9e2uU&b9xrvgce}^RMVZ3=;BxmaO}bsk*8-^Nqrtn79LZV)H(?0C&ZITDnR$ zIrsCPRejk{Z!X)Eef|B)MZ)WP3|)TS`wG-lc|U$yCV#kTc)+=N4#_u#ZXAmRE{eCz zJ}&(@%I2olwTM6SxQ^~Gj}==xq2R1qjH}%AyWe2D=GVQ60&YW>h|n$*$dlWhkUbN) zI3KjjJ#>rHp{<%Xcdy=Ep!VRu9$4($(yZ2&*C%c;?pS38+d^NQ8uqQ_b#ug2r*J>* z<9r9eJLGp7X%`kIm__0RNo!X znD+@-bA(@xg*)rasaXZGtZO7eqVeE;UqC0s%$#cY@YNw9z3{yKjQ>QzTcv=)r`Ggv zUcY$Y6Y%JRmFt**b0?rJR3PznIh@zE4kUua&mBAUb-$#w0Fund14%%c&oek^w-9s~D=RWMk{&%XF+ zkpv`gOc&~KUN1XP2i#|S_#OK{z8Ic6GB91Y+#-e6=?CrmoAMU8pWXj~(Sxi9au4pV z5CjL8<@Gk;uA8@9Z-lHn3=;%q?|sGkkH<#FR0?9{u?8cR7V*YeJw?kV^3SwFcZ=cMraO8ow*GnHbh$*ol1SA?=Q3w|W_ENP9 zQXUxIzG!`5%?(FL^gq7@9MI`wS;iu_S+-aC-al)I88L2(`L~ucxwFWupR3yvS_Rzh z43d}{aiZn5#G`M2v(zUysKU-ynBy(3_3#$YkBS8wk97gZ9)Oz!LCU?wvyQ!tNciWF z+$;L}7~cY(wzjsUc97&wi*G*GFTQiE({Vaekjwc-JYmkpXUqp4A%Z|$>ES1}<3}Up zZrDN3WH`6;RhQq6Zw%kGDtb1anH&lA>l)x(;%pi5*R}_aCqa*Un6r8fa6g=U!f~ec z@6WtEa0_ng+0{VTzhGMb_Sp=kIlMl7vK^2p%*%6CjcI3!7A?s&U*Frf|AFUph{Vz$ zmqS}MJ{)CQ_xe&U=Nb$-70^#M(w>8kG%b>@hM0uO2B30l=+lYBxMv-lx5|``DCSK z6s4q9q-5kJq-9j4RaB*A`2P0`tVzkI9^mS(`at*Y{}Lm<(*QpV3PP$%Nj-Y>Nb-@K zq+fuCl#Ggsij=ghl&q`-@d=5*FyA2OPzm3_oBx*hpEY#d0^tFk$RJNYU%r29I=lD< z2Wf!8QvZlZ{Vx^b@udFW`G{}+ABWt0iEIfVo}bU4UKIe~0~qMuu?#KR{_!YZ0CKqd zX9oe65EoZjD^f`pNY;5;UWO{m{wq=@0AwsIvxIpiq^@HI{2G7rl;a zGjh-S5q71l@OumKC^+~Lz7wypwy(aAGlfiPsHuImsQTTxc0esnssv60=91+Cb4jg$ zR^*caE3%IynLs6A49NG|oOdWbj-p?8vnX&(Wes*sLqp@#VVtqPUXCvJeqDwjqy{MF zG&C7-dy;xxW?>CifNKvP-%A)F?lf>LnBJ`Ids#o`gO?2=(Tm0jBHm+rtq?oh2giBD z8YpCj_pbc6?0b|j?B+NL!5BXSebCIIXwgiP8}wvXm!YpneKCMYw-K-oz}`so*E(QQLHlq!%T*)IIY1>yN|@ISUWY0H z%+c}q^t@NObE`K6XN993x>wz}<+ezX_iy_}oL1G@1$ghdytRK8 zOBI(I%Nocbe9NqDwdsZxpNoeRtNIX|m-`mrf3_+=LgEOZ?aifR@u9|;?EQf+JXpxX z9Rfd&r3=H{{l(R;ZtULajRXb1ihz?Z{P&s1b~God7&^sv=051c(ohn~JgFo(8My!1 zw7zMZ6|jZ$=mVN^j8my-B7&<;CgjF{QkKjYjN1X8Thw>l!A#eSBIR4QFipb;PpF)O zouq0P`d2@Ud{+Bn9XI7dzW5&%N+n8VYNHkw6qnHpN=5$Ndkav*_XFMn0x)lon#BH$Hs14*lkojFgBVV9YSrUSXVlfn1UTG-!4=+(?2 z=9*Wt(7+~8Gac`EBCfa(5&iK3S(h#dc%y}o5|cZO#H z>12V}TUqB?^0KKChKa!)KmEXXnw1U>k1ygN*!YL#RRdQ;_A02s$58%~(YRo&AiI&X zkr0^)`6Wm_Qz4|5eUR7ypTBJpke|hqAJ@^!iO+KD# zU<8p|iaithq=hQy(#VKAShq=8ue$ ztj|yfPIQs9AEVuEqqN?WpSuO*qPq&rf{0>%52;J2dGMww;LVe`8tk=-th_is5)T)# zmoC#x${MGBH~pMP7|vg?--g&-ujw*1Xk#JKd=ZJD`NXPJRNqR2)TxxySPZ!N9EG6x z%S7NC80jL3Bv;mfz%ONq{IhmZ5rm~WB@c$Pk7;n$kU(=&@EQc!K3LbzH+)P8IxlO7bzxqzQ^%`x)tehA)_Kr43 zr&j@J)KcCPW)XY!x&x24zILg-#Qwe&TY)MFA6_j+=G0+y={{5aB?|?daAJ5%5Kj*1 z8ink}(xt(&Ja*ycu8pKtCsm^0LMHVL;)+=wT)DRu3|r8+yU&%TNoLJjR9Zerk9Ocz z2|unk20f_ntwU@34-;u^>RTrDzgR%P*)z|MhXo_sIJYKUxL0SX3nUiSM8c zC&3ibAQgUtUWM7aiF?EVeRjB5%9Q1g%OOxBuQSGN>bi=Jo|_l`BfK?$3!xc%cb&i+ zT6Kb)QRG%8Yoj|+kZu_ZW5moa@$&6X4Cc$hh!zhN0zHDCv#3v}c$4iSw)hy7`e~i= zA>g!WPUlbZHi}iN{KH?X_|G;YFRK!aTF6GJ{+j5r(5TlF$^358+C3#(E27xa@er`n zDW-{}o_z}$7lpn%EsJ=dEexY_azq)$CB^N43iVKZ_#@5r`EvdrbQLpBZ1Rf?Sz*}H zbXkh#4j=sOrEjv_5!dB8>8ELx1tOIJ;&BT8|MX}E%YnQb9~e!?m7Sqy}Gb`?FvqO@b*&3t*K}-Tmeh zVHj98rHx{08+{g%K3>YAo;@7})72i8R$VLF)O;NmXwYyFrDAm|H6`Ro52NMMKbv22 zb=v0pa(|1b9t*YjdGmTJ(@?XAJO;YOmzaNTi$e{i`%A#-9Jl0#O+bm)pvRe&KQ?|a zkv~t0(bmr^W57Hn>f*ZdRQJQlsu%oEfA*rNE`jE=IlZuUD= zotmM@mk)P3=t?zqJPE|fiRhH3;qz}a{k%&$g4644pikIth2EWkf;%I<-s>iy9?`uMut;Xs0mj$C)^$k4xxMmb*Arl3hOw;cY`15 zg_C=%(Fi+HAHaMUf1rq}cf5;ekM~@(#@JR2vQ_P|c*|tlx=@dRD%AjGN zh6X*;%7@gcNK&0)j+Z?y-)W?8) z;8f=*MXluKW;Pg$y|-g|pk&(3>X?SB8|!k`H6SXw)BPUEHYXjIW!79rG%L4G*Ri@3 zu*$Oh_yB!W_judHj=6AAl~I}d#JzZmCmmn*(DDK!IQsoVMlT2Re7vyT4_{KlM%^ac zx-N?E%xW3BDBbF`m4zfRH1E_f)cY};Z=J=3pVzMbL?=5@9*K-u}+C|Fwf;zp3Lr7@1Tu*1@1h&%*X_`ep6ADQrypN4^RF^L68cWuTcnqT({1Vf;8Jk z(T56za3zC1oK>AeyzkTR&|ux$gr=su6@Enye~CR;hZM8_m$X;3l1j%E!<8Pq9`dI- z2GO}H`-#+k)FC>U0qf=l=ksjz(cyh#_MQd6i!Y(n{xw|IfMl3}eGhGCVA@ z=8j{ikm2*pLi{bet!O~> z)<<|9m@I(XQ+Oepa7VzmSM|w&)nIKYDoyBurV$ZPOf;@jOy#W1frs*%fD^A%fs4+Y zO=0v|P&u}k2)uG79%LLU_!m3EqaGEm1K$bkPA@N=qK|$gOU!oj+Et#o=!H98b9ngk zh0Q1g-}OXn;@mKP|1v$N-|_87EFRkhlUiXXd}gnATo}qNw4b3v{8J*xH}N#UXnjnE zCq2E5%D`qn`u+(mGUD|!%V0{Y&WGWP^rP$1wJH_FG%WAQx6{8PxF{Q`2U&A#)$^^Q zscx}!AYr(iw-V@CcH_35x@(E)QFM-Hjon7ng{@*fGAfb8i2r>?vnVEPiw}UtZ#=_w zyA0g%r?3`2nCFljx2exRZEgJVnPU(QS>LH?~qAX4n9rxX%$ zzDiQ9zmti%goHr>=TY4>lluyO7FhB(Hs8dGfTWfiJWos*qZM|j+Uun=9;2I^s;S?? z81-CVlGM){5H;23#Zt4&HtUw(sw?Dzd(r)U32BQt-h(8K2v+OW$~AD2)ybP&5Aa=Y zi9YhKUU+8DhT8Ls#rYBDbsx*$(VzQ71_ENPt5ddzp{9}Fa%OpO>ezVw=lqM0i;n%1 z2fsh}K6SSWQ@ou4p?}*w&04*|8&?;%7Le(lTLU!54^VOS5smTKKeUM z3Yp=FVqY)oY%LF2oO~99m(^wuNss_cD!Qv^DVV4u>C~PV>b%}RRUc8GUP)lVY^g0w z=E|9h{=W;Mf6{Dohxv1-(?}-A&tKJVM#_W$lF#Eru>db#Z%$S8kDJW%_!OI93z(A^BA-Nbwi z`=Kbu>RhDi7F$)7zsNi*Y~L)Bt-XH(K0}qC<;?GJDx&80uSN#ee(? zT>J<5-kB18gm9c+f5y$%-f;4#?z?w)WD&du(>0lGp}B(H7pmLU4Bg`EV6ZHIm3Q!7 zfOc$-o@*9ycdyB(1R$ffs+0eC%;fnNYNEAJr@!NgYp|meMzvx#x<=8~n5{ZRmp7ij zSTD)Sw8L*oD>eEss>OOWtI~)`->`ESp;T*j`gni)_fm@aON>@;KGB?DUnYdiY(>e; zv*vW-99vjSZ%h%B&;rUQ@f#ZI<1^|iZ)N%}|K6IU`*nXo8DZ7;?v9%Xofd^%3hP%i zVQwHdd2j;9ahkx07sAcYhDN0cKDnU(7-VuI3mXe4bjAl+_eBd!Btizc=*GSu7(p({h5A*%E5f$0la z3H08Z=0Gdlus>b2pXq?&A1xYnRC8II>ST8+DvfNicdo&j-0B16Z3*C~ku9YX3vBkZ z8C=WanD`BWq<8iTh|=58o+~-BLK&ev=Z{KJhjk?R$$}bw04bLW0&ic+x5FAQxf~L^ zEGss+xoxdFG;2=EvU$gAL3gY3opJR1&&>^=oFN!Ypk|SR6$i-eFQM8Zjbu7sgk>KL z3)i1ZfW-CxPHegT8ps)tZS&3lK_XW4CF8S6=Dfhdr9_^6w(Br5AVd@W>vVe{@?nN9CD>OM+%^5D(eyhsXU6fh$4E9Jdf>hCkd zdNngjW_saL4PNu}u|F_F1$01-I+)ZwIuh&V-S_^4ZZnDPrm#0}Josii_it?#8e`nt z&KauG-llqUD2^zc#+0%TdW%_v#`9@_}OjN8=(T`IP`hyLE0s z@Q91sgwFd1kVoFDq~HKPWQfe7Yd}2O_u1hxZQ7$d3z+4bb)FtIl`i-eQz;9b_2t!z z8r;2GM;BYc3uZWWv~4S*5w#U3_|PpR6Ycx-(3Soj)A`wC<14gg@gG%hkQN|hNHv5z z@685}kHhOqfuR{nv4j@R{=echXLLx_BaK7%xTSKh-JSL-w8PBLU{;`Jrr_{ME1Lt0 znX`m;^c%DZ-kgmsf8W}-;sG!M3h~1a89+C)D)Wu0%` zeIH!yc(-diqGPeKt7rT}t{4n;p$%hKjw6{=e*b`zoQMNZUd?AhlTW28)x-URN2sSB zH+6|iA8fIl1oTea$a<%{>`j=c*fIZ3^Yhw5=z;;gifot{cRH$89Bl1m_TsqwBOZ5mkxG_g)lL;0~${rwAK~ynUt?-5{%y#Uo1@+os42o1{5l!7b75X`?irj zGnan`>^j`->$--z$%@k4lH4BZZuW|tnW)zoWDWRv8@xo-#z{=wnsB7-y1ZYPn{@n` z{a>*rUc+Af3BrhcUs`LIalw|JVr~`uE=-GOcI3-9aqkSx$3LF7lVw+KO#$ZJkD}r$ z_`rpzK~lo#;vc3`u5XR#`BCL%=HhL49)Ri(PHYqxOz+I}_NVvs zFoSjDvBGj=Zn8IGDoZ099~tSD&` zqb`Ahl@QQo6?3a~MD8gEPgSf*sfg{xG@bp+T_MP!&`y?s99hiElbtK^T#!)mAPaiN zP-XFxuB!r~()CH2R2c9?I0U}$w72$>b8)SoCt4z@lddjFqs~6_#3)j=1SL-T9VKyW zxGz6Ba1erMIbue*JM%cv*Jl54hyKA<1faZ~7c3X#nvQUPnGwN*7f^-qdsr`opL9+4 z3JLBfq3`J-Hfe*GZ}u2}h8qPpx>Z>YF%dzOme4HqY6LX9h9EuxCycMo5;VU6YoWuT z2!+pHP{E&d59`^+ZXssJ62XmTZzI|np1rx^Yho>w_OvC2>^iUc5*+h~?a?yh z$M3Ea91`ZMyTg1jV8!;wjG+$SYxb#O1xvb~*&oR|L{lX1>nbTAH0~Fhb?X>gE z1zi^WHSVu}2+KpI^}INZuIzbZ5xbA&AZv9MPrYJjDg7No`Z2rrb~`Z1$!+B=f%F$+ zmObRKBCUZv2!u2q4vzV{e0W&}?j*(|zocc3h?ekTMQ&nz3hC+&DUa?7(BYh_6KhDI zLM+W(fx5Dn6pD@HlG`Y(YleCgnY!ioDJG2iR(+_Cj$eHL_2JHtREK&>ru=KI-B8+D zR7TXcbq1HA#0Y2&H8@shIb;0nV5U9s3 zRtdfl`R-g+MD|##Z07}R%_uh5Ta*wDt7+>F6s|B;JbbVk#%SR8Oy9N+V|{Qbfnl$I zRVYT=%5EY6BkZ9&=Hn-fdyf4`g~9vIW>X{i2$~rRyNW;i9g_K8U(X9^TUc_*Ee|vHCV!i3Jhq>-V$yvAEYC(pxX6hkt-3nr1FvPG-_^r`s z$35EN_l?WU3-SxrdXb~gy3bpmefYyLQNyxB#zph@){gQFKX?h_R(2Ror$raZ-d0xa zY7W@}hR|nm$IUAOrnbVL5Aaabv2bJa6U%f z**|a79ygs^IB)GWbf+HcISP6HMFI9uCVkurgqg`mScpoA+TAwv|iwNx8TeG-&wCfk! zYWUN*rP4C2j2)M=3!6))axlAg-mI=3;SWPf&oUkfIw#cfEouh_uRK!(Tefh~)$`T4~!`vnVhI5L$~)V31c;PMtd zKZ-na2Ja;cNyf+=p0D`on??)~Gbl7Vsub-t9}k^A0UK__w1PVwKP{>*VLDNVOhR0s2za(zFRA1b1F>vep z>N4=9d^|<}^>C0)B&bFJI=+YwkDy(WH-R`pAbu;d2`EcU<7(f9B_xJRwIr<)a9+Jp zflezi;W$ftS2AS#Tt0+1goh?qyp?$J-IRkC7}7mIzPg(!gc50Py7cK~bxNQIV4OL~ zht>L*n^$_!Ok?j24f{mj>}XY7sE&f%Nb_B1^H1vv8^?nF{U?IOQ+{6ZyH7$SpIW{% zntl4C3f=APL7mrb`!;LpLHDp7VhXs4_L|AY@@1#I@U$}sN5PCG!fu3yr0X<*W<9DY zITFw%DGKgpax#4?Iv4UQ1VzFnewyeUwTb0`(EOsv=tE*P_dPnQ8#lvWl&YaG*$cu+ z5&?TegN=*BmNQhN`_*Nd(`<@iTO~kC{MU?R$y8hm`XMupv0mke-13#(M)Q|McZPba zV_fskkJKwq?W0>NxjI{H{}i~c`_&u~CAl~?)7CO#Bg=T6f*R31LoPNE5tT7@!GQ@XhVR@*(xiYR zM2k~%?g#&XQ!e@~aK0`1G+RhHxqJ`A8`1|B_>*T+Ev$JN|jEML$Po`Oq7S7#XG=E?$;B&gGj^l~z zEl5Xg#X^=jf9pde%I6=bWeZ&K)t>sk;I$OZsWlnvE)GDLtQN&}u!`~RiCg&uNNw@Y zc$I4z5BIs@T8Lh#WmMCy4}TUx8!SZHIw2yv_~Nn2_`BbK)JaWSTfnFNfq@@xyqHdE zqH*T9M|Tnao!hD7r6PTnc+3DKe_yCd{{lD=Q0#Y-c2BOwM8%4537E>pLK_-i)?49? z;Mbo0)Nl%fNbDbv7eI>+T=nZeEU}uwIGAB^YwZm0wcl`O1 z<3P$o!2PT_cINdcV(qaM#L~x*1GYnVq(d^l*MmDFmOsP2+pvV}iEyLu^ZYn;$1A_f zF@e844Aw=Tm3C}QQj|mFMt*9G3rF6ClydKR2qJcx{5>%=vOG;PPfkI6z^ObLA%*% z<%JICwnBkN^9tLRzYvZeNd&_C63sZBK|xscxDI&8l=pmhA#1Vr70vyuo+;?v3Zf$h@-Ni>t=?v}!Y&#_ z2*yvz>Js+#N$Bf-U-K4)?RYeF{WDvx;nB?s!?V3wX1(C5 z{*}ey?fqeFtLm@2e&uYJ4l8s?v-@;gWbGxd(9>>*tqhW^bw&`!GJm~Z5RtzW<*b_L z%E*A%sYK!m#LUBlpfh*5d?ieG-bOn66Db$M8^Ent6Kq%J>dlDA#mpT&0V3$uW`Qmu zk%?5|uP+!6-+E1{xUf`J8$qg)2Ym>YV{BHy-`+@5)U*T}vC7nzjM0j*VW@w~OnDB< zSb0CNDnD-#pgoKY9|?o0{I!R0j(%!qLZ2m~zTdg{;8pze54GIwGvj+U7hE+k<&Nxy zvQDv_VHv!a!iZ>w5>_KM3QCn`+m#3@GTwek%mZ67l&DAUY)Xm2ao+knNhd~I{C95f zySD)@ZRPcakHm$PoL|0d&*dU*~+>M~A=7an3< z#kPTjC|q7|0$f`V_K4v)k+1^C5`g8X=}a-BUgpTFNj}KG!aeRJ{%+QTO9x$+50l|Z z$ar+3ILFWT1ETC=zO;u{!&nONgViLfo70=P9BlkA22VL2errYQ;~yw^YmNEq1KSAv zL?om4mc1FBRm@^U(40=74?KpRZL)C!3j1lndbMsf z=?wKZMksb3-Umt?P+QwRX}vE8yMo})LFp?K_N29y=zDLxO3|11AXU{HBWPO)zVyw8 zJCtJH8a$wCX)#g_IrLm;er}=p%}T!hx*T@cQFm@tRHr;{?KI}+KasPl-#?`>*cpA6 zCvLI)vW9sw!r~~wdpVR#`8GtZd#7e23TNK`Xvd~LW(oS-;7@(=4(2;izfd*+;PsN{ue zjp#J*$zOseII*RC;6t9zZM(lSxNox>wvTi2ic>P49Xn)A9KC6^`?lr3#qXKB(yW1V zAdHXUalTA3W^F8rI)_Y1b$xe|s+)(3Oypfc|!Ch+X*mA_T)#RM%pYYl*w#Q}yIac)YiRIM`Fe z1*Yug^L=J$cw+h7zHBMnuR_13sm-wBf#;*6U5FETZ9;S|ghB&nierYFca%EW-P-et z!IJH|Au=aHghpH~Gh@Sm72A`!ZU^gM3Em>TT0fBeCtzgg7M~ZYxfYqBeFH4Zy4wSQ zd!XB1qcdIJetL;QQD2eXKx;e4l=;J=wtY=6?Ig{cJnC5-kGT;dMjD%-DPn&?!eM>| z&av+H$=-XoF?-zsB4M_I#xC z*6qYwCcRG}L5MSoFsc`CF2g{RF*g&!up4)E^0tUVp5}eXW$oCWGtYzb{qCY!?!Er9 z9IYt^u5zNeyE%QW%|!Re3R3Epyi_3B&QEt&_oGWho;9)J-Vk@e11pa7{ky*#x&;V0 zvW#Cc`qK6(!fFcMf6KH_6rlJO5T@SpzG{-PbP98PxDM^E{j;oeGepYj=;ElTKCk98 zg>~8`RXud=tK4A}nb2Q_5MmSVtQ_^1Dq@M^jTM;Qf->$Ddgj{#ozm{81+~$blTOb35YTeAkn#`9zYX_ipAHVLCw)SG`7g@*$ zBlIY((1RM`t8TK%5A9oYpG(uZZ;x@*-S?~*G<#u<)%Nrt(E^F8zykUAqy&y+kC2-g$(^$(_PM2PlPZy8SbI@y$zzJ#ezI!6uWK@KadSJQ^N?)7loII*Zn*Oy`gwTck zDq<#<^`2;vb(S^6&MZlIWpsytoISD2!?Wdi7!Lr;mYhM(_P!wo4$iS67dI+4oX2|E z`9+zI$l3ZT3bVfk8#a@5+n~>iP+O>rBFTw`gW%X2-DO@}p5@_OFDU4TA}HHXm!<#c zYb|;0Q0+3>&YIUvLJoj&YWavPL2KcRtv`_ zY41QcrP}5E20bSXo^@Jzwy6N(^&(&Jr9YKJHlpVoT_bP8rWDm#vUtSb%}^2;2t~U_ z+whUi9qDtG9^Od;BPmMyu@nr$?|&{>zkrVOO?6%p z<(R3Lu^9cc2!UV;!#R%&VYm{=JYoBf}2Z3r(ecWN&C zkDvyw3l{|rc!xq*L6JA@tObb^Tvocoiilj?8n(+st0!D2y~(x4u0rFJm&drLSV@m4 zNqwq>mIld**eFD)c8yyctIF=JM~qL>Ay*UrLo5lUi)a@kT`NlUdMXblq~}ZN1w-P3XbemIAHzp9{ABaC~`fDs)Z<%u85g}dQ$_`|gI_QIYgL6aAWSNB!LcXTf-CF6%7lNlAa4t3~9*r=TIg zlET-R%^1tWDEfl5ZDtB*%>BD4;f4#~M`XPOdPWND4H^JBzI>-CU+6Rv@|!X1SzLGZ z#wU_qE(%pyXXdP&xE(lTX-^tdXdjwy^A?f`$b7T0uadsFmo+)NKkC(7ASokhVrJGg zF6|-!n}WZk<3DO^JNd^4c`_jwOXzn|MTo{DoD6w{Q$qfaaBaw}NLa+pMTYtw_WBzJ z4{P2=kC9fOcL4J@vgV!7nT|a77&b}PK*A}56lmK-N^J3JF##yAqk9)P;BxM6>-koW z(FpyUgs1mKs@662b&UnpyEEMpo)P!oDHD5t??QVO9vnD5kq>cp(l(Nlt-Fu+9GWPs z(@7tyWiPrxVcqUH@>DLiM(Ap^U1SM4UcK>*G;qUUb=c`962(s^@#D-i~En15CMrG=4-AQ2m2ir_}S(-NLwi|7> z5VcCPtP$76=WuQXxZ1=A^g~(h*^!mI8G;3nPNCmFI`R~#7 z_29vTAeEFI&{xOZ!(u8T2)~c-!;}{LeSuNzC*yc^mm3V|d8guZT?G-28(@*DPD(D? z+H!PNjhB+*d2r>I#z-mT0~Z;_`l)}Urb}=4b66glEd0I!r@;!mRk|&y?GUl(JG`!H z!=%x7n1;OH93=+9|@Gxd_30U1zQn6c?)*C0=234|6bgX z+MOBGt3vNoZ?NM;p(3ZX8s)h_Uxq9VN~$sD#dF-5$iO%t1cGM;^?yxknpmk17OUcl zXt1pd337br%PO}>i4Vf(jNEbx!u=seD9>)b{asBff3(jK^+ItNOe{VfBe}1){*O$~ z-R#hd8||m6=?FTLRWeDIEHfsKqLC-4>xzXo65;ns- zmK*b>8WevWaZp>rUk;%sWMMRi#LTbEAeZMh$e+fwFk?+kmWA_E461`Yg^?`fyA z-kwX=`(>D+7pe^@O(jl|$q1}0EA{Xk$-mgsuv^*R)Q$l-UwDgY8(Y|CV^IC1XAANK`!jj4*ASf?t3mz2*72*)AyCzi|>^z#p@M_ zQ($$m_TcpG-ok5$54ePpo9Xis6jN$Ai7GKg9Qw>X9 zt6S=PQ%v*)RNkTX;|<#V6NwNPa%tV%yI+c3QppB(C>fr3+tem(8sYNw;q6GCYe#UW z-dt+q&|5BCKeCZOs?lF5+k7SUl))RB+_8afFVV+9wX8YmFlyw(d=!jP5yWDs675-i zdxj4SVgvh7I8+%JwUty`)r?TM1q73B^ z;ZnJUmev&(E;p-2D@6qPUWartDx-TmiF4(z?4WI{<;?P7Fi7Eg56eg*adj6O`U0(x z8!85N%#*yL*QegIQA}MDr#=>o$ZPv?30fa$UGojFpus!lcy6_@#2T#-z*x>Vn{uUS zN0v>_U&HXF=kQ0@QeSD<4bVEF%*$g;)E=X1?}R_;-PGy-Y0Ij*XnUjd$Aj?aY zL8G2~I@(z1x*9nZKerg8V@~xp8%*$4x5wm8;w{fA-wthkUMBcAy{vxB9r&A<9KnxW?k8iu??R-4ujo<4aF|4O`q1Wzz-v#M-240>$JQk_gY_h4pBmkACfD_>kU4>uSKq3RGzwat# zD{*p_vI(TH2qgF1!7k~`NFj;$2yAz`oe;x+N}o`EXqGyl&f7FC&PIv|I_8?+`$C+* z3!b1ZBbG`f3;&1=?4fU|DXb8_tE7Ly6O)OB&gT}xFyvO~1Y^9cvaK#lCbzDYfyhad zhQE?!4c<w$N*<^BvO!3cG1voazWK@#^PP$dbtf3 zrl5!~qQ>&jd12)Se1*@FVFOlWr?3KbxHz5|ejt_omF;HFlE{D}9gE&wuq?-k#9Lu9 zxm!EY3m`q$0m2=5Fqj;mR#6mCjCNoY<;lx@N@0EP)8n?>powmuDnZ!GbK~G)@u|aq zYPY598tqi~+~W6`XLS>~g3+q{NByTQBybga5xe=O1{n{x-hIrUl_i4oaNj z@2!>R1-LwtCrbfLvWwyT3sA}0jw4`#G9>cJ!`Sm8f||`r0gv4{gET2*?!QJ7Xzw ze6wL6ryZa|S%9oC$!Q&LyBOPW7^&ud%N; zxXx2h-_%%&P+UN+X92?iWEnd5;`nXNP1oK-sWPdBP{|@zIQi#t;+>?&R~^+G#=}>K z>j^f>O0pNPbd~(IDxya+@?xn1cy?Bw!`s)?t(4AH)}uyg8MEqiNadcRYEcq_4Up5l zw{FH{mWQGU#rj;{)WI+OOKXJrbrg#^P zvV11b@8XeHxnggz1e5Q2;6~kAzU-bl{e`3I0FI|LB9_{Fj^rlA z@`IH>OMyKlm;waBOM1(h@^eNZT9{09$OEjDwa%{usx9)jbA^qY>f>1sFVVHbnj;D} zkogSx7LpxZj&^#-+%47qYvR~2s4lIz>K}$Ib8rBO)k>`cY0EmU>Y0Z1JHw+whvIh@NrE6gA$hlcLRAyTHXZC+zf)smZ7_^nVP7$@hn^cGgAlo z!4JfS5Cy1OK`^WHg@QE#dB%v#MbCH=vr2CB$y%5BT`>~!dmQsCYdr*DQ}q^w_0}j> z3D}thXZt;O9l}{WGBQCNqGi-|m2ELw3xL!?THf>1+uRVl>o2|ALoKCZ0Ew9$hMKgI z8U0mk2#oYx2%%TuQMQ0oDZF=*m1|=}UOzhSOrqcYYz6TU8qpC3dKzr7ZJlofg7=IT zTI;@-rw(@Dl48f5&aWmIjw52ZRsFT<&^&npRY_GvE#kXk3$FAkyoCx~uX762=?ef` zBwVqF{Ua04e)~FEL$*KQb?P&q#0ibUwQCEE^l;>MJFx^#gjH3#%cNe`b}8Euh`<12 zw<3f8T)N7yo?Iy(U{P)d-67m4jQ3->m1)1BZTu*;M9TK84Lg*IKutiM8IdQcnM0_g zrt8okgPf0cZ+K__5{wBH;62t_!bcrkH`ZqBG*%GPJ-gSuEVQ8 zjibpp=b?d3Z~)_^@#&xCrEc6TVSMAE6VS=oDcH&03GO8JqJ66CnsV8*?ymZld?J|C zByirb-2qxVTzxEg7=ku{gH=9Wcl80Pmpwx*| zU!#p&fk3CJ<=5ADockX{*P}gsfUu+#Y?5~y96Mc4P|B|lQ<9ZlY$n`k;;&2dH~vDU zBS5M)EFYnAJM5~ni1Q$L;@td6kQByq(A67d5j(HP)+#1wG}7`Rx1}E`g?WcAnV=aW zc6&On6P}*b-9L+?u{`uBK?FC*3cvs!B%6S#0oo4=E8mGq`lj~0&1GkvgXui)^Zl-v zk(?6rT;>n9op_07sf&;;gLl;%8ZspMz8rL9(M<5azU62?^hPvpfMV)=k9pxCu{x4* z8%|b%&IH-PBc?97Lr;=oJ0Zb#kSOI{f+VI<0OrK(*8;lCq}|+<*Z!eH;qEeX0Jz`6 z{yq;|mF)JJmw0{ZKhCnCRm;$dl5RM1ynoX4th|%O0IM)CH{eHJX)0 zJy$Hb1X%eY<7MtChWDu9X_N(qYEyr~gW4Fyp=)NA`&esCh1G1L?C9pu01K`|#s18o zHt3`@j&tNa5<&eN03b#D`@aC+#okaplD3L;s$h})a~;WVHNE>zXrLtXEW+GTYI91Q zik_WnD{i#qX zhO=cJ!!3t(;j{+CSmA|dI(PseP}dnoKWyGHS7DK(NyCcXql6IGHmy!xOVP3N?=reu z-gA|C=~F1E=3&bDZMHB-2K?mw|@JfB(DSUqWu==^@t^^5lBmemo; zx(}JEt3F@9;ke`Go|d~hdmezC`qbN{%I(&(Nfi6uu~K|E%X3GU zjo$9JNzkqCF*i${4w=etD0`!DN2cu9HBeI@xJlsos~0UT*}|L3!^(7MtUJ zm6P+jAh2~;nkxj}00>lgYRwzY>+T!0TG!19>j8G;fI@SMQ^TIMWQ!E|yitf*wP#j2 zXy@cP%j;85%_)#&$N?TiF#T08u)zZs4Npt;-EoXDzDu?x+XJ=%KW64s(}z|<5!z(} z>lW?@R@)#$&+RnQPCm3%Vp_q@qTjLwbgr?8hFl zI^ejmxnT27<{dm1@)br!IuMEn4})_ zn=#s@Z{chk#*oJ7hWaGvQ47U-lV)&Uw>e-ac>KK>KjZ#`X&dF3?{!H7w{U~(%?ki- zD-Axt29#y9XYB)qKSX@pwuq^W;s?IxZGD|&a}#oc#kwm=sxj=$+HO+2qyMM^d%uwQ zC;?6rs5T}m_uTfqcZ53$8lhD{QRfC#C6MUR?qrxKa0X;*qcT(f&E9+L%Yfkr@%wZ= zV4ID_!0^M2yBQ)Mzukw3J~!g3yu6RCAmYHsT{rhcEOm#*O=qjmjy|=#`|Ic)ks9Bz|zgmUrs79_nz#KIL&nXD9oMV@fSI-zdJCGwcl`3r4jT*kxo(I z6yxN_Nwo|&fWrsSK)KcBv%`+L>c8#y;J7eX|g zUALm;_2vW9SYvOWUC9*FsU8avpXw#Zd7bINbnYGNytlI!$ODH#pgLwMNy+DP?BV;f yw;_A?Ew&9$Dm5Rhj#&Ki`C_*xkW}&bKl9UbQmsx|k264r*?7A8xvX - + - - - - {{default title page.basename }} | {{ app.title }} | {{ pkg.version }} - - - + {{default title page.basename }} | {{ app.title }} | {{ pkg.version }} + - - \ No newline at end of file + diff --git a/docs_src/templates/partials/home-carousel.hbs b/docs_src/templates/partials/home-carousel.hbs index 44ec053b..b6e556b3 100644 --- a/docs_src/templates/partials/home-carousel.hbs +++ b/docs_src/templates/partials/home-carousel.hbs @@ -1,16 +1,15 @@ - -
-
-
-

Demo

-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file +
+
+
    +
  • +

    +

    Sample animations: flip

  • +
  • +

    +

    Sample animations: zoom

  • +
  • +

    +

    Sample animations: rotate

  • +
+
+
diff --git a/npm-debug.log b/npm-debug.log new file mode 100644 index 00000000..7e4ee8a1 --- /dev/null +++ b/npm-debug.log @@ -0,0 +1,110 @@ +0 info it worked if it ends with ok +1 verbose cli [ 'c:\\Program Files (x86)\\nodejs\\node.exe', +1 verbose cli 'c:\\Program Files (x86)\\nodejs\\node_modules\\npm\\bin\\npm-cli.js', +1 verbose cli 'install', +1 verbose cli '-g', +1 verbose cli 'generate-assemble' ] +2 info using npm@3.10.8 +3 info using node@v6.9.1 +4 silly loadCurrentTree Starting +5 silly install loadCurrentTree +6 silly install readGlobalPackageData +7 silly fetchPackageMetaData generate-assemble +8 silly fetchNamedPackageData generate-assemble +9 silly mapToRegistry name generate-assemble +10 silly mapToRegistry using default registry +11 silly mapToRegistry registry https://registry.npmjs.org/ +12 silly mapToRegistry data Result { +12 silly mapToRegistry raw: 'generate-assemble', +12 silly mapToRegistry scope: null, +12 silly mapToRegistry escapedName: 'generate-assemble', +12 silly mapToRegistry name: 'generate-assemble', +12 silly mapToRegistry rawSpec: '', +12 silly mapToRegistry spec: 'latest', +12 silly mapToRegistry type: 'tag' } +13 silly mapToRegistry uri https://registry.npmjs.org/generate-assemble +14 verbose request uri https://registry.npmjs.org/generate-assemble +15 verbose request no auth needed +16 info attempt registry request try #1 at 17:10:10 +17 verbose request id 8ca6115e2633200e +18 http request GET https://registry.npmjs.org/generate-assemble +19 http 404 https://registry.npmjs.org/generate-assemble +20 verbose headers { 'content-type': 'application/json', +20 verbose headers 'cache-control': 'max-age=0', +20 verbose headers 'content-length': '2', +20 verbose headers 'accept-ranges': 'bytes', +20 verbose headers date: 'Fri, 20 Jan 2017 16:10:05 GMT', +20 verbose headers via: '1.1 varnish', +20 verbose headers age: '0', +20 verbose headers connection: 'keep-alive', +20 verbose headers 'x-served-by': 'cache-hhn1535-HHN', +20 verbose headers 'x-cache': 'MISS', +20 verbose headers 'x-cache-hits': '0', +20 verbose headers 'x-timer': 'S1484928605.549081,VS0,VE438', +20 verbose headers vary: 'Accept-Encoding' } +21 silly get cb [ 404, +21 silly get { 'content-type': 'application/json', +21 silly get 'cache-control': 'max-age=0', +21 silly get 'content-length': '2', +21 silly get 'accept-ranges': 'bytes', +21 silly get date: 'Fri, 20 Jan 2017 16:10:05 GMT', +21 silly get via: '1.1 varnish', +21 silly get age: '0', +21 silly get connection: 'keep-alive', +21 silly get 'x-served-by': 'cache-hhn1535-HHN', +21 silly get 'x-cache': 'MISS', +21 silly get 'x-cache-hits': '0', +21 silly get 'x-timer': 'S1484928605.549081,VS0,VE438', +21 silly get vary: 'Accept-Encoding' } ] +22 silly fetchPackageMetaData Error: Registry returned 404 for GET on https://registry.npmjs.org/generate-assemble +22 silly fetchPackageMetaData at makeError (c:\Program Files (x86)\nodejs\node_modules\npm\node_modules\npm-registry-client\lib\request.js:302:12) +22 silly fetchPackageMetaData at CachingRegistryClient. (c:\Program Files (x86)\nodejs\node_modules\npm\node_modules\npm-registry-client\lib\request.js:280:14) +22 silly fetchPackageMetaData at Request._callback (c:\Program Files (x86)\nodejs\node_modules\npm\node_modules\npm-registry-client\lib\request.js:210:14) +22 silly fetchPackageMetaData at Request.self.callback (c:\Program Files (x86)\nodejs\node_modules\npm\node_modules\request\request.js:187:22) +22 silly fetchPackageMetaData at emitTwo (events.js:106:13) +22 silly fetchPackageMetaData at Request.emit (events.js:191:7) +22 silly fetchPackageMetaData at Request. (c:\Program Files (x86)\nodejs\node_modules\npm\node_modules\request\request.js:1044:10) +22 silly fetchPackageMetaData at emitOne (events.js:96:13) +22 silly fetchPackageMetaData at Request.emit (events.js:188:7) +22 silly fetchPackageMetaData at IncomingMessage. (c:\Program Files (x86)\nodejs\node_modules\npm\node_modules\request\request.js:965:12) +22 silly fetchPackageMetaData error for generate-assemble { Error: Registry returned 404 for GET on https://registry.npmjs.org/generate-assemble +22 silly fetchPackageMetaData at makeError (c:\Program Files (x86)\nodejs\node_modules\npm\node_modules\npm-registry-client\lib\request.js:302:12) +22 silly fetchPackageMetaData at CachingRegistryClient. (c:\Program Files (x86)\nodejs\node_modules\npm\node_modules\npm-registry-client\lib\request.js:280:14) +22 silly fetchPackageMetaData at Request._callback (c:\Program Files (x86)\nodejs\node_modules\npm\node_modules\npm-registry-client\lib\request.js:210:14) +22 silly fetchPackageMetaData at Request.self.callback (c:\Program Files (x86)\nodejs\node_modules\npm\node_modules\request\request.js:187:22) +22 silly fetchPackageMetaData at emitTwo (events.js:106:13) +22 silly fetchPackageMetaData at Request.emit (events.js:191:7) +22 silly fetchPackageMetaData at Request. (c:\Program Files (x86)\nodejs\node_modules\npm\node_modules\request\request.js:1044:10) +22 silly fetchPackageMetaData at emitOne (events.js:96:13) +22 silly fetchPackageMetaData at Request.emit (events.js:188:7) +22 silly fetchPackageMetaData at IncomingMessage. (c:\Program Files (x86)\nodejs\node_modules\npm\node_modules\request\request.js:965:12) pkgid: 'generate-assemble', statusCode: 404, code: 'E404' } +23 silly rollbackFailedOptional Starting +24 silly rollbackFailedOptional Finishing +25 silly runTopLevelLifecycles Finishing +26 silly install printInstalled +27 verbose stack Error: Registry returned 404 for GET on https://registry.npmjs.org/generate-assemble +27 verbose stack at makeError (c:\Program Files (x86)\nodejs\node_modules\npm\node_modules\npm-registry-client\lib\request.js:302:12) +27 verbose stack at CachingRegistryClient. (c:\Program Files (x86)\nodejs\node_modules\npm\node_modules\npm-registry-client\lib\request.js:280:14) +27 verbose stack at Request._callback (c:\Program Files (x86)\nodejs\node_modules\npm\node_modules\npm-registry-client\lib\request.js:210:14) +27 verbose stack at Request.self.callback (c:\Program Files (x86)\nodejs\node_modules\npm\node_modules\request\request.js:187:22) +27 verbose stack at emitTwo (events.js:106:13) +27 verbose stack at Request.emit (events.js:191:7) +27 verbose stack at Request. (c:\Program Files (x86)\nodejs\node_modules\npm\node_modules\request\request.js:1044:10) +27 verbose stack at emitOne (events.js:96:13) +27 verbose stack at Request.emit (events.js:188:7) +27 verbose stack at IncomingMessage. (c:\Program Files (x86)\nodejs\node_modules\npm\node_modules\request\request.js:965:12) +28 verbose statusCode 404 +29 verbose pkgid generate-assemble +30 verbose cwd c:\Users\BrunoMigliaretti\Documents\GitHub\jQuery plugins\mb_forks\bxslider-4 +31 error Windows_NT 10.0.14393 +32 error argv "c:\\Program Files (x86)\\nodejs\\node.exe" "c:\\Program Files (x86)\\nodejs\\node_modules\\npm\\bin\\npm-cli.js" "install" "-g" "generate-assemble" +33 error node v6.9.1 +34 error npm v3.10.8 +35 error code E404 +36 error 404 Registry returned 404 for GET on https://registry.npmjs.org/generate-assemble +37 error 404 +38 error 404 'generate-assemble' is not in the npm registry. +39 error 404 You should bug the author to publish it (or use the name yourself!) +40 error 404 Note that you can also install from a +41 error 404 tarball, folder, http url, or git url. +42 verbose exit [ 1, true ] diff --git a/src/config.rb b/src/config.rb new file mode 100644 index 00000000..be6fdcdd --- /dev/null +++ b/src/config.rb @@ -0,0 +1,28 @@ +require 'compass/import-once/activate' +# Require any additional compass plugins here. + + +# Set this to the root of your project when deployed: +http_path = "/" +css_dir = "css" +sass_dir = "sass" +images_dir = "images" +javascripts_dir = "js" + +# You can select your preferred output style here (can be overridden via the command line): +# output_style = :expanded or :nested or :compact or :compressed + +# To enable relative paths to assets via compass helper functions. Uncomment: +# relative_assets = true + +# To disable debugging comments that display the original location of your selectors. Uncomment: +# line_comments = false + + +# If you prefer the indented syntax, you might want to regenerate this +# project again passing --syntax sass, or you can uncomment this: +# preferred_syntax = :sass +# and then run: +# sass-convert -R --from scss --to sass sass scss && rm -rf sass && mv scss sass + +cache_path = 'C:\Temp\sass-cache' diff --git a/src/css/animate_custom.css b/src/css/animate_custom.css new file mode 100644 index 00000000..7132050c --- /dev/null +++ b/src/css/animate_custom.css @@ -0,0 +1,2145 @@ +/*! +Animate.css - http://daneden.me/animate +Licensed under the MIT license - http://opensource.org/licenses/MIT +Copyright (c) 2015 Daniel Eden +*/ +/* line 9, ../sass/helpers/_base.scss */ +body { + -webkit-backface-visibility: hidden; +} + +/* line 13, ../sass/helpers/_base.scss */ +.animated { + -webkit-animation-duration: 1s; + animation-duration: 1s; + -webkit-animation-fill-mode: both; + animation-fill-mode: both; +} +/* line 16, ../sass/helpers/_base.scss */ +.animated.infinite { + animation-iteration-count: infinite; +} +/* line 19, ../sass/helpers/_base.scss */ +.animated.hinge { + -webkit-animation-duration: 2s; + animation-duration: 2s; +} +/* line 22, ../sass/helpers/_base.scss */ +.animated.bounceIn, .animated.bounceOut { + -webkit-animation-duration: 0.75s; + animation-duration: 0.75s; +} +/* line 26, ../sass/helpers/_base.scss */ +.animated.flipOutX, .animated.flipOutY { + -webkit-animation-duration: 0.75s; + animation-duration: 0.75s; +} + +/* line 34, ../sass/helpers/_base.scss */ +.in .animated.fast, .in .animated.fastIn { + -webkit-animation-duration: 0.5s; + animation-duration: 0.5s; +} +/* line 38, ../sass/helpers/_base.scss */ +.in .animated.slow, .in .animated.slowIn { + -webkit-animation-duration: 1.5s; + animation-duration: 1.5s; +} +/* line 42, ../sass/helpers/_base.scss */ +.in .animated.xslow, .in .animated.xslowIn { + -webkit-animation-duration: 2.5s; + animation-duration: 2.5s; +} +/* line 47, ../sass/helpers/_base.scss */ +.in .animated.hinge.fast, .in .animated.hinge.fastIn { + -webkit-animation-duration: 1s; + animation-duration: 1s; +} +/* line 51, ../sass/helpers/_base.scss */ +.in .animated.hinge.slow, .in .animated.hinge.slowIn { + -webkit-animation-duration: 3s; + animation-duration: 3s; +} + +/* line 61, ../sass/helpers/_base.scss */ +.out .animated.fastOut { + -webkit-animation-duration: 0.5s; + animation-duration: 0.5s; +} +/* line 64, ../sass/helpers/_base.scss */ +.out .animated.slowOut { + -webkit-animation-duration: 1.5s; + animation-duration: 1.5s; +} +/* line 67, ../sass/helpers/_base.scss */ +.out .animated.xslowOut { + -webkit-animation-duration: 2.5s; + animation-duration: 2.5s; +} +/* line 71, ../sass/helpers/_base.scss */ +.out .animated.hinge.fastOut { + -webkit-animation-duration: 1s; + animation-duration: 1s; +} +/* line 74, ../sass/helpers/_base.scss */ +.out .animated.hinge.slowOut { + -webkit-animation-duration: 3s; + animation-duration: 3s; +} + +/* line 1, ../sass/helpers/_delay.scss */ +.in .animated { + -webkit-animation-delay: 0.5s; + animation-delay: 0.5s; +} +/* line 3, ../sass/helpers/_delay.scss */ +.in .animated.delay500, .in .animated.delayIn500 { + -webkit-animation-delay: 1s; + animation-delay: 1s; +} +/* line 6, ../sass/helpers/_delay.scss */ +.in .animated.delay1, .in .animated.delay1000, .in .animated.delayIn1000 { + -webkit-animation-delay: 1.5s; + animation-delay: 1.5s; +} +/* line 9, ../sass/helpers/_delay.scss */ +.in .animated.delay1500, .in .animated.delayIn1500 { + -webkit-animation-delay: 2s; + animation-delay: 2s; +} +/* line 12, ../sass/helpers/_delay.scss */ +.in .animated.delay2, .in .animated.delay2000, .in .animated.delayIn2000 { + -webkit-animation-delay: 2.5s; + animation-delay: 2.5s; +} +/* line 15, ../sass/helpers/_delay.scss */ +.in .animated.delay2500, .in .animated.delayIn2500 { + -webkit-animation-delay: 3s; + animation-delay: 3s; +} +/* line 18, ../sass/helpers/_delay.scss */ +.in .animated.delay3, .in .animated.delay3000, .in .animated.delayIn3000 { + -webkit-animation-delay: 3.5s; + animation-delay: 3.5s; +} +/* line 21, ../sass/helpers/_delay.scss */ +.in .animated.delay3500, .in .animated.delayIn3500 { + -webkit-animation-delay: 4s; + animation-delay: 4s; +} +/* line 24, ../sass/helpers/_delay.scss */ +.in .animated.delay4, .in .animated.delay4000, .in .animated.delayIn4000 { + -webkit-animation-delay: 4.5s; + animation-delay: 4.5s; +} +/* line 27, ../sass/helpers/_delay.scss */ +.in .animated.delay4500, .in .animated.delayIn4500 { + -webkit-animation-delay: 5s; + animation-delay: 5s; +} +/* line 30, ../sass/helpers/_delay.scss */ +.in .animated.delay5, .in .animateddelay5000, .in .animateddelayIn5000 { + -webkit-animation-delay: 5.5s; + animation-delay: 5.5s; +} + +/* line 37, ../sass/helpers/_delay.scss */ +.out .animated.delayOut500 { + -webkit-animation-delay: 1s; + animation-delay: 1s; +} +/* line 40, ../sass/helpers/_delay.scss */ +.out .animated.delayOut1000 { + -webkit-animation-delay: 1.5s; + animation-delay: 1.5s; +} +/* line 43, ../sass/helpers/_delay.scss */ +.out .animated.delayOut1500 { + -webkit-animation-delay: 2s; + animation-delay: 2s; +} +/* line 46, ../sass/helpers/_delay.scss */ +.out .animated.delayOut2000 { + -webkit-animation-delay: 2.5s; + animation-delay: 2.5s; +} +/* line 49, ../sass/helpers/_delay.scss */ +.out .animated.delayOut2500 { + -webkit-animation-delay: 3s; + animation-delay: 3s; +} +/* line 52, ../sass/helpers/_delay.scss */ +.out .animated.delayOut3000 { + -webkit-animation-delay: 3.5s; + animation-delay: 3.5s; +} +/* line 55, ../sass/helpers/_delay.scss */ +.out .animated.delayOut3500 { + -webkit-animation-delay: 4s; + animation-delay: 4s; +} +/* line 58, ../sass/helpers/_delay.scss */ +.out .animated.delayOut4000 { + -webkit-animation-delay: 4.5s; + animation-delay: 4.5s; +} +/* line 61, ../sass/helpers/_delay.scss */ +.out .animated.delayOut4500 { + -webkit-animation-delay: 5s; + animation-delay: 5s; +} +/* line 64, ../sass/helpers/_delay.scss */ +.out .animateddelayOut5000 { + -webkit-animation-delay: 5.5s; + animation-delay: 5.5s; +} + +@-webkit-keyframes bounce { + 0%, 20%, 50%, 80%, 100% { + -webkit-transform: translateY(0); + } + 40% { + -webkit-transform: translateY(-30px); + } + 60% { + -webkit-transform: translateY(-15px); + } +} +@keyframes bounce { + 0%, 20%, 50%, 80%, 100% { + transform: translateY(0); + } + 40% { + transform: translateY(-30px); + } + 60% { + transform: translateY(-15px); + } +} +/* line 15, ../sass/animations/attention-seekers/_bounce.scss */ +.bounce { + -webkit-animation-name: bounce; + animation-name: bounce; +} + +@-webkit-keyframes bounceIn { + 0% { + opacity: 0; + -webkit-transform: scale(0.3); + } + 50% { + opacity: 1; + -webkit-transform: scale(1.05); + } + 70% { + -webkit-transform: scale(0.9); + } + 100% { + -webkit-transform: scale(1); + } +} +@keyframes bounceIn { + 0% { + opacity: 0; + transform: scale(0.3); + } + 50% { + opacity: 1; + transform: scale(1.05); + } + 70% { + transform: scale(0.9); + } + 100% { + transform: scale(1); + } +} +/* line 43, ../sass/animations/bounce-enter/_bounceIn.scss */ +.in .bounceIn { + -webkit-animation-name: bounceIn; + animation-name: bounceIn; +} + +@-webkit-keyframes bounceInDown { + 0% { + opacity: 0; + -webkit-transform: translateY(-2000px); + } + 60% { + opacity: 1; + -webkit-transform: translateY(30px); + } + 80% { + -webkit-transform: translateY(-10px); + } + 100% { + -webkit-transform: translateY(0); + } +} +@keyframes bounceInDown { + 0% { + opacity: 0; + transform: translateY(-2000px); + } + 60% { + opacity: 1; + transform: translateY(30px); + } + 80% { + transform: translateY(-10px); + } + 100% { + transform: translateY(0); + } +} +/* line 43, ../sass/animations/bounce-enter/_bounceInDown.scss */ +.in .bounceInDown { + -webkit-animation-name: bounceInDown; + animation-name: bounceInDown; +} + +@-webkit-keyframes bounceInLeft { + 0% { + opacity: 0; + -webkit-transform: translateX(-2000px); + } + 60% { + opacity: 1; + -webkit-transform: translateX(30px); + } + 80% { + -webkit-transform: translateX(-10px); + } + 100% { + -webkit-transform: translateX(0); + } +} +@keyframes bounceInLeft { + 0% { + opacity: 0; + transform: translateX(-2000px); + } + 60% { + opacity: 1; + transform: translateX(30px); + } + 80% { + transform: translateX(-10px); + } + 100% { + transform: translateX(0); + } +} +/* line 43, ../sass/animations/bounce-enter/_bounceInLeft.scss */ +.in .bounceInLeft { + -webkit-animation-name: bounceInLeft; + animation-name: bounceInLeft; +} + +@-webkit-keyframes bounceInRight { + 0% { + opacity: 0; + -webkit-transform: translateX(2000px); + } + 60% { + opacity: 1; + -webkit-transform: translateX(-30px); + } + 80% { + -webkit-transform: translateX(10px); + } + 100% { + -webkit-transform: translateX(0); + } +} +@keyframes bounceInRight { + 0% { + opacity: 0; + transform: translateX(2000px); + } + 60% { + opacity: 1; + transform: translateX(-30px); + } + 80% { + transform: translateX(10px); + } + 100% { + transform: translateX(0); + } +} +/* line 43, ../sass/animations/bounce-enter/_bounceInRight.scss */ +.in .bounceInRight { + -webkit-animation-name: bounceInRight; + animation-name: bounceInRight; +} + +@-webkit-keyframes bounceInUp { + 0% { + opacity: 0; + -webkit-transform: translateY(2000px); + } + 60% { + opacity: 1; + -webkit-transform: translateY(-30px); + } + 80% { + -webkit-transform: translateY(10px); + } + 100% { + -webkit-transform: translateY(0); + } +} +@keyframes bounceInUp { + 0% { + opacity: 0; + transform: translateY(2000px); + } + 60% { + opacity: 1; + transform: translateY(-30px); + } + 80% { + transform: translateY(10px); + } + 100% { + transform: translateY(0); + } +} +/* line 43, ../sass/animations/bounce-enter/_bounceInUp.scss */ +.in .bounceInUp { + -webkit-animation-name: bounceInUp; + animation-name: bounceInUp; +} + +@-webkit-keyframes bounceOut { + 0% { + -webkit-transform: scale(1); + } + 25% { + -webkit-transform: scale(0.95); + } + 50% { + opacity: 1; + -webkit-transform: scale(1.1); + } + 100% { + opacity: 0; + -webkit-transform: scale(0.3); + } +} +@keyframes bounceOut { + 0% { + transform: scale(1); + } + 25% { + transform: scale(0.95); + } + 50% { + opacity: 1; + transform: scale(1.1); + } + 100% { + opacity: 0; + transform: scale(0.3); + } +} +/* line 43, ../sass/animations/bounce-exit/_bounceOut.scss */ +.out .bounceOut { + -webkit-animation-name: bounceOut; + animation-name: bounceOut; +} + +@-webkit-keyframes bounceOutDown { + 0% { + -webkit-transform: translateY(0); + } + 20% { + opacity: 1; + -webkit-transform: translateY(-20px); + } + 100% { + opacity: 0; + -webkit-transform: translateY(2000px); + } +} +@keyframes bounceOutDown { + 0% { + transform: translateY(0); + } + 20% { + opacity: 1; + transform: translateY(-20px); + } + 100% { + opacity: 0; + transform: translateY(2000px); + } +} +/* line 35, ../sass/animations/bounce-exit/_bounceOutDown.scss */ +.out .bounceOutDown { + -webkit-animation-name: bounceOutDown; + animation-name: bounceOutDown; +} + +@-webkit-keyframes bounceOutLeft { + 0% { + -webkit-transform: translateX(0); + } + 20% { + opacity: 1; + -webkit-transform: translateX(20px); + } + 100% { + opacity: 0; + -webkit-transform: translateX(-2000px); + } +} +@keyframes bounceOutLeft { + 0% { + transform: translateX(0); + } + 20% { + opacity: 1; + transform: translateX(20px); + } + 100% { + opacity: 0; + transform: translateX(-2000px); + } +} +/* line 35, ../sass/animations/bounce-exit/_bounceOutLeft.scss */ +.out .bounceOutLeft { + -webkit-animation-name: bounceOutLeft; + animation-name: bounceOutLeft; +} + +@-webkit-keyframes bounceOutRight { + 0% { + -webkit-transform: translateX(0); + } + 20% { + opacity: 1; + -webkit-transform: translateX(-20px); + } + 100% { + opacity: 0; + -webkit-transform: translateX(2000px); + } +} +@keyframes bounceOutRight { + 0% { + transform: translateX(0); + } + 20% { + opacity: 1; + transform: translateX(-20px); + } + 100% { + opacity: 0; + transform: translateX(2000px); + } +} +/* line 35, ../sass/animations/bounce-exit/_bounceOutRight.scss */ +.out .bounceOutRight { + -webkit-animation-name: bounceOutRight; + animation-name: bounceOutRight; +} + +@-webkit-keyframes bounceOutUp { + 0% { + -webkit-transform: translateY(0); + } + 20% { + opacity: 1; + -webkit-transform: translateY(20px); + } + 100% { + opacity: 0; + -webkit-transform: translateY(-2000px); + } +} +@keyframes bounceOutUp { + 0% { + transform: translateY(0); + } + 20% { + opacity: 1; + transform: translateY(20px); + } + 100% { + opacity: 0; + transform: translateY(-2000px); + } +} +/* line 35, ../sass/animations/bounce-exit/_bounceOutUp.scss */ +.out .bounceOutUp { + -webkit-animation-name: bounceOutUp; + animation-name: bounceOutUp; +} + +@-webkit-keyframes fadeIn { + 0% { + opacity: 0; + } + 100% { + opacity: 1; + } +} +@keyframes fadeIn { + 0% { + opacity: 0; + } + 100% { + opacity: 1; + } +} +/* line 8, ../sass/animations/fade-enter/_fadeIn.scss */ +.in .fadeIn { + -webkit-animation-name: fadeIn; + animation-name: fadeIn; +} + +@-webkit-keyframes fadeInDown { + 0% { + opacity: 0; + -webkit-transform: translateY(-20px); + } + 100% { + opacity: 1; + -webkit-transform: translateY(0); + } +} +@keyframes fadeInDown { + 0% { + opacity: 0; + transform: translateY(-20px); + } + 100% { + opacity: 1; + transform: translateY(0); + } +} +/* line 27, ../sass/animations/fade-enter/_fadeInDown.scss */ +.in .fadeInDown { + -webkit-animation-name: fadeInDown; + animation-name: fadeInDown; +} + +@-webkit-keyframes fadeInDownBig { + 0% { + opacity: 0; + -webkit-transform: translateY(-2000px); + } + 100% { + opacity: 1; + -webkit-transform: translateY(0); + } +} +@keyframes fadeInDownBig { + 0% { + opacity: 0; + transform: translateY(-2000px); + } + 100% { + opacity: 1; + transform: translateY(0); + } +} +/* line 27, ../sass/animations/fade-enter/_fadeInDownBig.scss */ +.in .fadeInDownBig { + -webkit-animation-name: fadeInDownBig; + animation-name: fadeInDownBig; +} + +@-webkit-keyframes fadeInLeft { + 0% { + opacity: 0; + -webkit-transform: translateX(-20px); + } + 100% { + opacity: 1; + -webkit-transform: translateX(0); + } +} +@keyframes fadeInLeft { + 0% { + opacity: 0; + transform: translateX(-20px); + } + 100% { + opacity: 1; + transform: translateX(0); + } +} +/* line 27, ../sass/animations/fade-enter/_fadeInLeft.scss */ +.in .fadeInLeft { + -webkit-animation-name: fadeInLeft; + animation-name: fadeInLeft; +} + +@-webkit-keyframes fadeInLeftBig { + 0% { + opacity: 0; + -webkit-transform: translateX(-2000px); + } + 100% { + opacity: 1; + -webkit-transform: translateX(0); + } +} +@keyframes fadeInLeftBig { + 0% { + opacity: 0; + transform: translateX(-2000px); + } + 100% { + opacity: 1; + transform: translateX(0); + } +} +/* line 27, ../sass/animations/fade-enter/_fadeInLeftBig.scss */ +.in .fadeInLeftBig { + -webkit-animation-name: fadeInLeftBig; + animation-name: fadeInLeftBig; +} + +@-webkit-keyframes fadeInRight { + 0% { + opacity: 0; + -webkit-transform: translateX(20px); + } + 100% { + opacity: 1; + -webkit-transform: translateX(0); + } +} +@keyframes fadeInRight { + 0% { + opacity: 0; + transform: translateX(20px); + } + 100% { + opacity: 1; + transform: translateX(0); + } +} +/* line 27, ../sass/animations/fade-enter/_fadeInRight.scss */ +.in .fadeInRight { + -webkit-animation-name: fadeInRight; + animation-name: fadeInRight; +} + +@-webkit-keyframes fadeInRightBig { + 0% { + opacity: 0; + -webkit-transform: translateX(2000px); + } + 100% { + opacity: 1; + -webkit-transform: translateX(0); + } +} +@keyframes fadeInRightBig { + 0% { + opacity: 0; + transform: translateX(2000px); + } + 100% { + opacity: 1; + transform: translateX(0); + } +} +/* line 27, ../sass/animations/fade-enter/_fadeInRightBig.scss */ +.in .fadeInRightBig { + -webkit-animation-name: fadeInRightBig; + animation-name: fadeInRightBig; +} + +@-webkit-keyframes fadeInUp { + 0% { + opacity: 0; + -webkit-transform: translateY(20px); + } + 100% { + opacity: 1; + -webkit-transform: translateY(0); + } +} +@keyframes fadeInUp { + 0% { + opacity: 0; + transform: translateY(20px); + } + 100% { + opacity: 1; + transform: translateY(0); + } +} +/* line 27, ../sass/animations/fade-enter/_fadeInUp.scss */ +.in .fadeInUp { + -webkit-animation-name: fadeInUp; + animation-name: fadeInUp; +} + +@-webkit-keyframes fadeInUpBig { + 0% { + opacity: 0; + -webkit-transform: translateY(2000px); + } + 100% { + opacity: 1; + -webkit-transform: translateY(0); + } +} +@keyframes fadeInUpBig { + 0% { + opacity: 0; + transform: translateY(2000px); + } + 100% { + opacity: 1; + transform: translateY(0); + } +} +/* line 27, ../sass/animations/fade-enter/_fadeInUpBig.scss */ +.in .fadeInUpBig { + -webkit-animation-name: fadeInUpBig; + animation-name: fadeInUpBig; +} + +@-webkit-keyframes fadeOut { + 0% { + opacity: 1; + } + 100% { + opacity: 0; + } +} +@keyframes fadeOut { + 0% { + opacity: 1; + } + 100% { + opacity: 0; + } +} +/* line 8, ../sass/animations/fade-exit/_fadeOut.scss */ +.out .fadeOut { + -webkit-animation-name: fadeOut; + animation-name: fadeOut; +} + +@-webkit-keyframes fadeOutDown { + 0% { + opacity: 1; + -webkit-transform: translateY(0); + } + 100% { + opacity: 0; + -webkit-transform: translateY(20px); + } +} +@keyframes fadeOutDown { + 0% { + opacity: 1; + transform: translateY(0); + } + 100% { + opacity: 0; + transform: translateY(20px); + } +} +/* line 27, ../sass/animations/fade-exit/_fadeOutDown.scss */ +.out .fadeOutDown { + -webkit-animation-name: fadeOutDown; + animation-name: fadeOutDown; +} + +@-webkit-keyframes fadeOutDownBig { + 0% { + opacity: 1; + -webkit-transform: translateY(0); + } + 100% { + opacity: 0; + -webkit-transform: translateY(2000px); + } +} +@keyframes fadeOutDownBig { + 0% { + opacity: 1; + transform: translateY(0); + } + 100% { + opacity: 0; + transform: translateY(2000px); + } +} +/* line 27, ../sass/animations/fade-exit/_fadeOutDownBig.scss */ +.out .fadeOutDownBig { + -webkit-animation-name: fadeOutDownBig; + animation-name: fadeOutDownBig; +} + +@-webkit-keyframes fadeOutLeft { + 0% { + opacity: 1; + -webkit-transform: translateX(0); + } + 100% { + opacity: 0; + -webkit-transform: translateX(-20px); + } +} +@keyframes fadeOutLeft { + 0% { + opacity: 1; + transform: translateX(0); + } + 100% { + opacity: 0; + transform: translateX(-20px); + } +} +/* line 27, ../sass/animations/fade-exit/_fadeOutLeft.scss */ +.out .fadeOutLeft { + -webkit-animation-name: fadeOutLeft; + animation-name: fadeOutLeft; +} + +@-webkit-keyframes fadeOutLeftBig { + 0% { + opacity: 1; + -webkit-transform: translateX(0); + } + 100% { + opacity: 0; + -webkit-transform: translateX(-2000px); + } +} +@keyframes fadeOutLeftBig { + 0% { + opacity: 1; + transform: translateX(0); + } + 100% { + opacity: 0; + transform: translateX(-2000px); + } +} +/* line 27, ../sass/animations/fade-exit/_fadeOutLeftBig.scss */ +.out .fadeOutLeftBig { + -webkit-animation-name: fadeOutLeftBig; + animation-name: fadeOutLeftBig; +} + +@-webkit-keyframes fadeOutRight { + 0% { + opacity: 1; + -webkit-transform: translateX(0); + } + 100% { + opacity: 0; + -webkit-transform: translateX(20px); + } +} +@keyframes fadeOutRight { + 0% { + opacity: 1; + transform: translateX(0); + } + 100% { + opacity: 0; + transform: translateX(20px); + } +} +/* line 27, ../sass/animations/fade-exit/_fadeOutRight.scss */ +.out .fadeOutRight { + -webkit-animation-name: fadeOutRight; + animation-name: fadeOutRight; +} + +@-webkit-keyframes fadeOutRightBig { + 0% { + opacity: 1; + -webkit-transform: translateX(0); + } + 100% { + opacity: 0; + -webkit-transform: translateX(2000px); + } +} +@keyframes fadeOutRightBig { + 0% { + opacity: 1; + transform: translateX(0); + } + 100% { + opacity: 0; + transform: translateX(2000px); + } +} +/* line 27, ../sass/animations/fade-exit/_fadeOutRightBig.scss */ +.out .fadeOutRightBig { + -webkit-animation-name: fadeOutRightBig; + animation-name: fadeOutRightBig; +} + +@-webkit-keyframes fadeOutUp { + 0% { + opacity: 1; + -webkit-transform: translateY(0); + } + 100% { + opacity: 0; + -webkit-transform: translateY(-20px); + } +} +@keyframes fadeOutUp { + 0% { + opacity: 1; + transform: translateY(0); + } + 100% { + opacity: 0; + transform: translateY(-20px); + } +} +/* line 27, ../sass/animations/fade-exit/_fadeOutUp.scss */ +.out .fadeOutUp { + -webkit-animation-name: fadeOutUp; + animation-name: fadeOutUp; +} + +@-webkit-keyframes fadeOutUpBig { + 0% { + opacity: 1; + -webkit-transform: translateY(0); + } + 100% { + opacity: 0; + -webkit-transform: translateY(-2000px); + } +} +@keyframes fadeOutUpBig { + 0% { + opacity: 1; + transform: translateY(0); + } + 100% { + opacity: 0; + transform: translateY(-2000px); + } +} +/* line 27, ../sass/animations/fade-exit/_fadeOutUpBig.scss */ +.out .fadeOutUpBig { + -webkit-animation-name: fadeOutUpBig; + animation-name: fadeOutUpBig; +} + +@-webkit-keyframes flipInX { + 0% { + -webkit-transform: perspective(400px) rotateX(90deg); + opacity: 0; + } + 40% { + -webkit-transform: perspective(400px) rotateX(-10deg); + } + 70% { + -webkit-transform: perspective(400px) rotateX(10deg); + } + 100% { + -webkit-transform: perspective(400px) rotateX(0deg); + opacity: 1; + } +} +@keyframes flipInX { + 0% { + transform: perspective(400px) rotateX(90deg); + opacity: 0; + } + 40% { + transform: perspective(400px) rotateX(-10deg); + } + 70% { + transform: perspective(400px) rotateX(10deg); + } + 100% { + transform: perspective(400px) rotateX(0deg); + opacity: 1; + } +} +/* line 43, ../sass/animations/flippers/_flipInX.scss */ +.in .flipInX { + -webkit-backface-visibility: visible !important; + backface-visibility: visible !important; + -webkit-animation-name: flipInX; + animation-name: flipInX; +} + +@-webkit-keyframes flipInY { + 0% { + -webkit-transform: perspective(400px) rotateY(90deg); + opacity: 0; + } + 40% { + -webkit-transform: perspective(400px) rotateY(-10deg); + } + 70% { + -webkit-transform: perspective(400px) rotateY(10deg); + } + 100% { + -webkit-transform: perspective(400px) rotateY(0deg); + opacity: 1; + } +} +@keyframes flipInY { + 0% { + transform: perspective(400px) rotateY(90deg); + opacity: 0; + } + 40% { + transform: perspective(400px) rotateY(-10deg); + } + 70% { + transform: perspective(400px) rotateY(10deg); + } + 100% { + transform: perspective(400px) rotateY(0deg); + opacity: 1; + } +} +/* line 43, ../sass/animations/flippers/_flipInY.scss */ +.in .flipInY { + -webkit-backface-visibility: visible !important; + backface-visibility: visible !important; + -webkit-animation-name: flipInY; + animation-name: flipInY; +} + +@-webkit-keyframes flipOutX { + 0% { + -webkit-transform: perspective(400px) rotateX(0deg); + opacity: 1; + } + 100% { + -webkit-transform: perspective(400px) rotateX(90deg); + opacity: 0; + } +} +@keyframes flipOutX { + 0% { + transform: perspective(400px) rotateX(0deg); + opacity: 1; + } + 100% { + transform: perspective(400px) rotateX(90deg); + opacity: 0; + } +} +/* line 25, ../sass/animations/flippers/_flipOutX.scss */ +.out .flipOutX { + -webkit-animation-name: flipOutX; + animation-name: flipOutX; + -webkit-backface-visibility: visible !important; + backface-visibility: visible !important; +} + +@-webkit-keyframes flipOutY { + 0% { + -webkit-transform: perspective(400px) rotateY(0deg); + opacity: 1; + } + 100% { + -webkit-transform: perspective(400px) rotateY(90deg); + opacity: 0; + } +} +@keyframes flipOutY { + 0% { + transform: perspective(400px) rotateY(0deg); + opacity: 1; + } + 100% { + transform: perspective(400px) rotateY(90deg); + opacity: 0; + } +} +/* line 25, ../sass/animations/flippers/_flipOutY.scss */ +.out .flipOutY { + -webkit-backface-visibility: visible !important; + backface-visibility: visible !important; + -webkit-animation-name: flipOutY; + animation-name: flipOutY; +} + +@-webkit-keyframes lightSpeedIn { + 0% { + -webkit-transform: translateX(100%) skewX(-30deg); + opacity: 0; + } + 60% { + -webkit-transform: translateX(-20%) skewX(30deg); + opacity: 1; + } + 80% { + -webkit-transform: translateX(0%) skewX(-15deg); + opacity: 1; + } + 100% { + -webkit-transform: translateX(0%) skewX(0deg); + opacity: 1; + } +} +@keyframes lightSpeedIn { + 0% { + transform: translateX(100%) skewX(-30deg); + opacity: 0; + } + 60% { + transform: translateX(-20%) skewX(30deg); + opacity: 1; + } + 80% { + transform: translateX(0%) skewX(-15deg); + opacity: 1; + } + 100% { + transform: translateX(0%) skewX(0deg); + opacity: 1; + } +} +/* line 17, ../sass/animations/lightspeed/_lightSpeedIn.scss */ +.in .lightSpeedIn { + -webkit-animation-name: lightSpeedIn; + animation-name: lightSpeedIn; + -webkit-animation-timing-function: ease-out; + animation-timing-function: ease-out; +} + +@-webkit-keyframes lightSpeedOut { + 0% { + -webkit-transform: translateX(0%) skewX(0deg); + opacity: 1; + } + 100% { + -webkit-transform: translateX(100%) skewX(-30deg); + opacity: 0; + } +} +@keyframes lightSpeedOut { + 0% { + transform: translateX(0%) skewX(0deg); + opacity: 1; + } + 100% { + transform: translateX(100%) skewX(-30deg); + opacity: 0; + } +} +/* line 13, ../sass/animations/lightspeed/_lightSpeedOut.scss */ +.out .lightSpeedOut { + -webkit-animation-name: lightSpeedOut; + animation-name: lightSpeedOut; + -webkit-animation-timing-function: ease-in; + animation-timing-function: ease-in; +} + +@-webkit-keyframes rotateIn { + 0% { + -webkit-transform-origin: center center; + -webkit-transform: rotate(-200deg); + opacity: 0; + } + 100% { + -webkit-transform-origin: center center; + -webkit-transform: rotate(0); + opacity: 1; + } +} +@keyframes rotateIn { + 0% { + transform-origin: center center; + transform: rotate(-200deg); + opacity: 0; + } + 100% { + transform-origin: center center; + transform: rotate(0); + opacity: 1; + } +} +/* line 31, ../sass/animations/rotate-enter/_rotateIn.scss */ +.in .rotateIn { + -webkit-animation-name: rotateIn; + animation-name: rotateIn; +} + +@-webkit-keyframes rotateInDownLeft { + 0% { + -webkit-transform-origin: left bottom; + -webkit-transform: rotate(-90deg); + opacity: 0; + } + 100% { + -webkit-transform-origin: left bottom; + -webkit-transform: rotate(0); + opacity: 1; + } +} +@keyframes rotateInDownLeft { + 0% { + transform-origin: left bottom; + transform: rotate(-90deg); + opacity: 0; + } + 100% { + transform-origin: left bottom; + transform: rotate(0); + opacity: 1; + } +} +/* line 31, ../sass/animations/rotate-enter/_rotateInDownLeft.scss */ +.in .rotateInDownLeft { + -webkit-animation-name: rotateInDownLeft; + animation-name: rotateInDownLeft; +} + +@-webkit-keyframes rotateInDownRight { + 0% { + -webkit-transform-origin: right bottom; + -webkit-transform: rotate(90deg); + opacity: 0; + } + 100% { + -webkit-transform-origin: right bottom; + -webkit-transform: rotate(0); + opacity: 1; + } +} +@keyframes rotateInDownRight { + 0% { + transform-origin: right bottom; + transform: rotate(90deg); + opacity: 0; + } + 100% { + transform-origin: right bottom; + transform: rotate(0); + opacity: 1; + } +} +/* line 31, ../sass/animations/rotate-enter/_rotateInDownRight.scss */ +.in .rotateInDownRight { + -webkit-animation-name: rotateInDownRight; + animation-name: rotateInDownRight; +} + +@-webkit-keyframes rotateInUpLeft { + 0% { + -webkit-transform-origin: left bottom; + -webkit-transform: rotate(90deg); + opacity: 0; + } + 100% { + -webkit-transform-origin: left bottom; + -webkit-transform: rotate(0); + opacity: 1; + } +} +@keyframes rotateInUpLeft { + 0% { + transform-origin: left bottom; + transform: rotate(90deg); + opacity: 0; + } + 100% { + transform-origin: left bottom; + transform: rotate(0); + opacity: 1; + } +} +/* line 31, ../sass/animations/rotate-enter/_rotateInUpLeft.scss */ +.in .rotateInUpLeft { + -webkit-animation-name: rotateInUpLeft; + animation-name: rotateInUpLeft; +} + +@-webkit-keyframes rotateInUpRight { + 0% { + -webkit-transform-origin: right bottom; + -webkit-transform: rotate(-90deg); + opacity: 0; + } + 100% { + -webkit-transform-origin: right bottom; + -webkit-transform: rotate(0); + opacity: 1; + } +} +@keyframes rotateInUpRight { + 0% { + transform-origin: right bottom; + transform: rotate(-90deg); + opacity: 0; + } + 100% { + transform-origin: right bottom; + transform: rotate(0); + opacity: 1; + } +} +/* line 31, ../sass/animations/rotate-enter/_rotateInUpRight.scss */ +.in .rotateInUpRight { + -webkit-animation-name: rotateInUpRight; + animation-name: rotateInUpRight; +} + +@-webkit-keyframes rotateOut { + 0% { + -webkit-transform-origin: center center; + -webkit-transform: rotate(0); + opacity: 1; + } + 100% { + -webkit-transform-origin: center center; + -webkit-transform: rotate(200deg); + opacity: 0; + } +} +@keyframes rotateOut { + 0% { + transform-origin: center center; + transform: rotate(0); + opacity: 1; + } + 100% { + transform-origin: center center; + transform: rotate(200deg); + opacity: 0; + } +} +/* line 31, ../sass/animations/rotate-exit/_rotateOut.scss */ +.out .rotateOut { + -webkit-animation-name: rotateOut; + animation-name: rotateOut; +} + +@-webkit-keyframes rotateOutDownLeft { + 0% { + -webkit-transform-origin: left bottom; + -webkit-transform: rotate(0); + opacity: 1; + } + 100% { + -webkit-transform-origin: left bottom; + -webkit-transform: rotate(90deg); + opacity: 0; + } +} +@keyframes rotateOutDownLeft { + 0% { + transform-origin: left bottom; + transform: rotate(0); + opacity: 1; + } + 100% { + transform-origin: left bottom; + transform: rotate(90deg); + opacity: 0; + } +} +/* line 31, ../sass/animations/rotate-exit/_rotateOutDownLeft.scss */ +.out .rotateOutDownLeft { + -webkit-animation-name: rotateOutDownLeft; + animation-name: rotateOutDownLeft; +} + +@-webkit-keyframes rotateOutDownRight { + 0% { + -webkit-transform-origin: right bottom; + -webkit-transform: rotate(0); + opacity: 1; + } + 100% { + -webkit-transform-origin: right bottom; + -webkit-transform: rotate(-90deg); + opacity: 0; + } +} +@keyframes rotateOutDownRight { + 0% { + transform-origin: right bottom; + transform: rotate(0); + opacity: 1; + } + 100% { + transform-origin: right bottom; + transform: rotate(-90deg); + opacity: 0; + } +} +/* line 31, ../sass/animations/rotate-exit/_rotateOutDownRight.scss */ +.out .rotateOutDownRight { + -webkit-animation-name: rotateOutDownRight; + animation-name: rotateOutDownRight; +} + +@-webkit-keyframes rotateOutUpLeft { + 0% { + -webkit-transform-origin: left bottom; + -webkit-transform: rotate(0); + opacity: 1; + } + 100% { + -webkit-transform-origin: left bottom; + -webkit-transform: rotate(-90deg); + opacity: 0; + } +} +@keyframes rotateOutUpLeft { + 0% { + transform-origin: left bottom; + transform: rotate(0); + opacity: 1; + } + 100% { + -transform-origin: left bottom; + -transform: rotate(-90deg); + opacity: 0; + } +} +/* line 31, ../sass/animations/rotate-exit/_rotateOutUpLeft.scss */ +.out .rotateOutUpLeft { + -webkit-animation-name: rotateOutUpLeft; + animation-name: rotateOutUpLeft; +} + +@-webkit-keyframes rotateOutUpRight { + 0% { + -webkit-transform-origin: right bottom; + -webkit-transform: rotate(0); + opacity: 1; + } + 100% { + -webkit-transform-origin: right bottom; + -webkit-transform: rotate(90deg); + opacity: 0; + } +} +@keyframes rotateOutUpRight { + 0% { + transform-origin: right bottom; + transform: rotate(0); + opacity: 1; + } + 100% { + transform-origin: right bottom; + transform: rotate(90deg); + opacity: 0; + } +} +/* line 30, ../sass/animations/rotate-exit/_rotateOutUpRight.scss */ +.out .rotateOutUpRight { + -webkit-animation-name: rotateOutUpRight; + animation-name: rotateOutUpRight; +} + +@-webkit-keyframes slideInDown { + 0% { + -webkit-transform: translate3d(0, -100%, 0); + visibility: visible; + } + 100% { + -webkit-transform: translate3d(0, 0, 0); + } +} +@keyframes slideInDown { + 0% { + transform: translate3d(0, -100%, 0); + visibility: visible; + } + 100% { + transform: translate3d(0, 0, 0); + } +} +/* line 25, ../sass/animations/slide-enter/_slideInDown.scss */ +.in .slideInDown { + -webkit-animation-name: slideInDown; + animation-name: slideInDown; +} + +@-webkit-keyframes slideInLeft { + 0% { + -webkit-transform: translate3d(-100%, 0, 0); + visibility: visible; + } + 100% { + -webkit-transform: translate3d(0, 0, 0); + } +} +@keyframes slideInLeft { + 0% { + transform: translate3d(-100%, 0, 0); + visibility: visible; + } + 100% { + transform: translate3d(0, 0, 0); + } +} +/* line 25, ../sass/animations/slide-enter/_slideInLeft.scss */ +.in .slideInLeft { + -webkit-animation-name: slideInLeft; + animation-name: slideInLeft; +} + +@-webkit-keyframes slideInRight { + 0% { + -webkit-transform: translate3d(100%, 0, 0); + visibility: visible; + } + 100% { + -webkit-transform: translate3d(0, 0, 0); + } +} +@keyframes slideInRight { + 0% { + transform: translate3d(100%, 0, 0); + visibility: visible; + } + 100% { + transform: translate3d(0, 0, 0); + } +} +/* line 25, ../sass/animations/slide-enter/_slideInRight.scss */ +.in .slideInRight { + -webkit-animation-name: slideInRight; + animation-name: slideInRight; +} + +@-webkit-keyframes slideInUp { + 0% { + -webkit-transform: translate3d(0, 100%, 0); + visibility: visible; + } + 100% { + -webkit-transform: translate3d(0, 0, 0); + } +} +@keyframes slideInUp { + 0% { + transform: translate3d(0, 100%, 0); + visibility: visible; + } + 100% { + transform: translate3d(0, 0, 0); + } +} +/* line 25, ../sass/animations/slide-enter/_slideInUp.scss */ +.in .slideInUp { + -webkit-animation-name: slideInUp; + animation-name: slideInUp; +} + +@-webkit-keyframes slideOutDown { + 0% { + -webkit-transform: translate3d(0, 0, 0); + visibility: visible; + } + 100% { + -webkit-transform: translate3d(0, 100%, 0); + } +} +@keyframes slideOutDown { + 0% { + transform: translate3d(0, 0, 0); + visibility: visible; + } + 100% { + transform: translate3d(0, 100%, 0); + } +} +/* line 25, ../sass/animations/slide-exit/_slideOutDown.scss */ +.out .slideOutDown { + -webkit-animation-name: slideOutDown; + animation-name: slideOutDown; +} + +@-webkit-keyframes slideOutLeft { + 0% { + -webkit-transform: translate3d(0, 0, 0); + visibility: visible; + } + 100% { + -webkit-transform: translate3d(-100%, 0, 0); + } +} +@keyframes slideOutLeft { + 0% { + transform: translate3d(0, 0, 0); + visibility: visible; + } + 100% { + transform: translate3d(-100%, 0, 0); + } +} +/* line 25, ../sass/animations/slide-exit/_slideOutLeft.scss */ +.out .slideOutLeft { + -webkit-animation-name: slideOutLeft; + animation-name: slideOutLeft; +} + +@-webkit-keyframes slideOutRight { + 0% { + -webkit-transform: translate3d(0, 0, 0); + visibility: visible; + } + 100% { + -webkit-transform: translate3d(100%, 0, 0); + } +} +@keyframes slideOutRight { + 0% { + transform: translate3d(0, 0, 0); + visibility: visible; + } + 100% { + transform: translate3d(100%, 0, 0); + } +} +/* line 25, ../sass/animations/slide-exit/_slideOutRight.scss */ +.out .slideOutRight { + -webkit-animation-name: slideOutRight; + animation-name: slideOutRight; +} + +@-webkit-keyframes slideOutUp { + 0% { + -webkit-transform: translate3d(0, 0, 0); + visibility: visible; + } + 100% { + -webkit-transform: translate3d(0, -100%, 0); + } +} +@keyframes slideOutUp { + 0% { + transform: translate3d(0, 0, 0); + visibility: visible; + } + 100% { + transform: translate3d(0, -100%, 0); + } +} +/* line 25, ../sass/animations/slide-exit/_slideOutUp.scss */ +.out .slideOutUp { + -webkit-animation-name: slideOutUp; + animation-name: slideOutUp; +} + +@-webkit-keyframes hinge { + 0% { + -webkit-transform: rotate(0); + -webkit-transform-origin: top left; + -webkit-animation-timing-function: ease-in-out; + } + 20%, 60% { + -webkit-transform: rotate(80deg); + -webkit-transform-origin: top left; + -webkit-animation-timing-function: ease-in-out; + } + 40% { + -webkit-transform: rotate(60deg); + -webkit-transform-origin: top left; + -webkit-animation-timing-function: ease-in-out; + } + 80% { + -webkit-transform: rotate(60deg) translateY(0); + opacity: 1; + -webkit-transform-origin: top left; + -webkit-animation-timing-function: ease-in-out; + } + 100% { + -webkit-transform: translateY(700px); + opacity: 0; + } +} +@keyframes hinge { + 0% { + transform: rotate(0); + transform-origin: top left; + animation-timing-function: ease-in-out; + } + 20%, 60% { + transform: rotate(80deg); + transform-origin: top left; + animation-timing-function: ease-in-out; + } + 40% { + transform: rotate(60deg); + transform-origin: top left; + animation-timing-function: ease-in-out; + } + 80% { + transform: rotate(60deg) translateY(0); + opacity: 1; + transform-origin: top left; + animation-timing-function: ease-in-out; + } + 100% { + transform: translateY(700px); + opacity: 0; + } +} +/* line 19, ../sass/animations/special/_hinge.scss */ +.out .hingeOut { + -webkit-animation-name: hinge; + animation-name: hinge; +} + +@-webkit-keyframes rollIn { + 0% { + opacity: 0; + -webkit-transform: translateX(-100%) rotate(-120deg); + } + 100% { + opacity: 1; + -webkit-transform: translateX(0px) rotate(0deg); + } +} +@keyframes rollIn { + 0% { + opacity: 0; + transform: translateX(-100%) rotate(-120deg); + } + 100% { + opacity: 1; + transform: translateX(0px) rotate(0deg); + } +} +/* line 15, ../sass/animations/special/_rollIn.scss */ +.in .rollIn { + -webkit-animation-name: rollIn; + animation-name: rollIn; +} + +@-webkit-keyframes rollOut { + 0% { + opacity: 1; + -webkit-transform: translateX(0px) rotate(0deg); + } + 100% { + opacity: 0; + -webkit-transform: translateX(100%) rotate(120deg); + } +} +@keyframes rollOut { + 0% { + opacity: 1; + transform: translateX(0px) rotate(0deg); + } + 100% { + opacity: 0; + transform: translateX(100%) rotate(120deg); + } +} +/* line 29, ../sass/animations/special/_rollOut.scss */ +.out .rollOut { + -webkit-animation-name: rollOut; + animation-name: rollOut; +} + +@-webkit-keyframes zoomIn { + 0% { + opacity: 0; + -webkit-transform: scale3d(0.3, 0.3, 0.3); + } + 50% { + opacity: 1; + } +} +@keyframes zoomIn { + 0% { + opacity: 0; + transform: scale3d(0.3, 0.3, 0.3); + } + 50% { + opacity: 1; + } +} +/* line 24, ../sass/animations/zoom-enter/_zoomIn.scss */ +.in .zoomIn { + -webkit-animation-name: zoomIn; + animation-name: zoomIn; +} + +@-webkit-keyframes zoomInDown { + 0% { + opacity: 0; + -webkit-transform: scale3d(0.1, 0.1, 0.1) translate3d(0, -1000px, 0); + -webkit-animation-timing-function: cubic-bezier(0.55, 0.055, 0.675, 0.19); + } + 60% { + opacity: 1; + -webkit-transform: scale3d(0.475, 0.475, 0.475) translate3d(0, 60px, 0); + -webkit-animation-timing-function: cubic-bezier(0.175, 0.885, 0.32, 1); + } +} +@keyframes zoomInDown { + 0% { + opacity: 0; + transform: scale3d(0.1, 0.1, 0.1) translate3d(0, -1000px, 0); + animation-timing-function: cubic-bezier(0.55, 0.055, 0.675, 0.19); + } + 60% { + opacity: 1; + transform: scale3d(0.475, 0.475, 0.475) translate3d(0, 60px, 0); + animation-timing-function: cubic-bezier(0.175, 0.885, 0.32, 1); + } +} +/* line 27, ../sass/animations/zoom-enter/_zoomInDown.scss */ +.in .zoomInDown { + -webkit-animation-name: zoomInDown; + animation-name: zoomInDown; +} + +@-webkit-keyframes zoomInLeft { + 0% { + opacity: 0; + -webkit-transform: scale3d(0.1, 0.1, 0.1) translate3d(-1000px, 0, 0); + -webkit-animation-timing-function: cubic-bezier(0.55, 0.055, 0.675, 0.19); + } + 60% { + opacity: 1; + -webkit-transform: scale3d(0.475, 0.475, 0.475) translate3d(10px, 0, 0); + -webkit-animation-timing-function: cubic-bezier(0.175, 0.885, 0.32, 1); + } +} +@keyframes zoomInLeft { + 0% { + opacity: 0; + transform: scale3d(0.1, 0.1, 0.1) translate3d(-1000px, 0, 0); + animation-timing-function: cubic-bezier(0.55, 0.055, 0.675, 0.19); + } + 60% { + opacity: 1; + transform: scale3d(0.475, 0.475, 0.475) translate3d(10px, 0, 0); + animation-timing-function: cubic-bezier(0.175, 0.885, 0.32, 1); + } +} +/* line 27, ../sass/animations/zoom-enter/_zoomInLeft.scss */ +.in .zoomInLeft { + -webkit-animation-name: zoomInLeft; + animation-name: zoomInLeft; +} + +@-webkit-keyframes zoomInRight { + 0% { + opacity: 0; + -webkit-transform: scale3d(0.1, 0.1, 0.1) translate3d(1000px, 0, 0); + -webkit-animation-timing-function: cubic-bezier(0.55, 0.055, 0.675, 0.19); + } + 60% { + opacity: 1; + -webkit-transform: scale3d(0.475, 0.475, 0.475) translate3d(-10px, 0, 0); + -webkit-animation-timing-function: cubic-bezier(0.175, 0.885, 0.32, 1); + } +} +@keyframes zoomInRight { + 0% { + opacity: 0; + transform: scale3d(0.1, 0.1, 0.1) translate3d(1000px, 0, 0); + animation-timing-function: cubic-bezier(0.55, 0.055, 0.675, 0.19); + } + 60% { + opacity: 1; + transform: scale3d(0.475, 0.475, 0.475) translate3d(-10px, 0, 0); + animation-timing-function: cubic-bezier(0.175, 0.885, 0.32, 1); + } +} +/* line 27, ../sass/animations/zoom-enter/_zoomInRight.scss */ +.in .zoomInRight { + -webkit-animation-name: zoomInRight; + animation-name: zoomInRight; +} + +@-webkit-keyframes zoomInUp { + 0% { + opacity: 0; + -webkit-transform: scale3d(0.1, 0.1, 0.1) translate3d(0, 1000px, 0); + -webkit-animation-timing-function: cubic-bezier(0.55, 0.055, 0.675, 0.19); + } + 60% { + opacity: 1; + -webkit-transform: scale3d(0.475, 0.475, 0.475) translate3d(0, -60px, 0); + -webkit-animation-timing-function: cubic-bezier(0.175, 0.885, 0.32, 1); + } +} +@keyframes zoomInUp { + 0% { + opacity: 0; + transform: scale3d(0.1, 0.1, 0.1) translate3d(0, 1000px, 0); + animation-timing-function: cubic-bezier(0.55, 0.055, 0.675, 0.19); + } + 60% { + opacity: 1; + transform: scale3d(0.475, 0.475, 0.475) translate3d(0, -60px, 0); + animation-timing-function: cubic-bezier(0.175, 0.885, 0.32, 1); + } +} +/* line 27, ../sass/animations/zoom-enter/_zoomInUp.scss */ +.in .zoomInUp { + -webkit-animation-name: zoomInUp; + animation-name: zoomInUp; +} + +@-webkit-keyframes zoomOut { + 0% { + opacity: 1; + } + 50% { + opacity: 0; + -webkit-transform: scale3d(0.3, 0.3, 0.3); + } + 100% { + opacity: 0; + } +} +@keyframes zoomOut { + 0% { + opacity: 1; + } + 50% { + opacity: 0; + transform: scale3d(0.3, 0.3, 0.3); + } + 100% { + opacity: 0; + } +} +/* line 28, ../sass/animations/zoom-exit/_zoomOut.scss */ +.out .zoomOut { + -webkit-animation-name: zoomOut; + animation-name: zoomOut; +} + +@-webkit-keyframes zoomOutDown { + 40% { + opacity: 1; + -webkit-transform: scale3d(0.475, 0.475, 0.475) translate3d(0, -60px, 0); + -webkit-animation-timing-function: cubic-bezier(0.55, 0.055, 0.675, 0.19); + } + 100% { + opacity: 0; + -webkit-transform: scale3d(0.1, 0.1, 0.1) translate3d(0, 2000px, 0); + -webkit-transform-origin: center bottom; + -webkit-animation-timing-function: cubic-bezier(0.175, 0.885, 0.32, 1); + } +} +@keyframes zoomOutDown { + 40% { + opacity: 1; + transform: scale3d(0.475, 0.475, 0.475) translate3d(0, -60px, 0); + animation-timing-function: cubic-bezier(0.55, 0.055, 0.675, 0.19); + } + 100% { + opacity: 0; + transform: scale3d(0.1, 0.1, 0.1) translate3d(0, 2000px, 0); + transform-origin: center bottom; + animation-timing-function: cubic-bezier(0.175, 0.885, 0.32, 1); + } +} +/* line 28, ../sass/animations/zoom-exit/_zoomOutDown.scss */ +.out .zoomOutDown { + -webkit-animation-name: zoomOutDown; + animation-name: zoomOutDown; +} + +@-webkit-keyframes zoomOutLeft { + 40% { + opacity: 1; + -webkit-transform: scale3d(0.475, 0.475, 0.475) translate3d(42px, 0, 0); + } + 100% { + opacity: 0; + -webkit-transform: scale3d(0.1) translate3d(-2000px, 0, 0); + -webkit-transform-origin: left center; + } +} +@keyframes zoomOutLeft { + 40% { + opacity: 1; + transform: scale3d(0.475, 0.475, 0.475) translate3d(42px, 0, 0); + } + 100% { + opacity: 0; + transform: scale3d(0.1) translate3d(-2000px, 0, 0); + transform-origin: left center; + } +} +/* line 26, ../sass/animations/zoom-exit/_zoomOutLeft.scss */ +.out .zoomOutLeft { + -webkit-animation-name: zoomOutLeft; + animation-name: zoomOutLeft; +} + +@-webkit-keyframes zoomOutRight { + 40% { + opacity: 1; + -webkit-transform: scale3d(0.475, 0.475, 0.475) translate3d(-42px, 0, 0); + } + 100% { + opacity: 0; + -webkit-transform: scale3d(0.1) translate3d(2000px, 0, 0); + -webkit-transform-origin: right center; + } +} +@keyframes zoomOutRight { + 40% { + opacity: 1; + transform: scale3d(0.475, 0.475, 0.475) translate3d(-42px, 0, 0); + } + 100% { + opacity: 0; + transform: scale3d(0.1) translate3d(2000px, 0, 0); + transform-origin: right center; + } +} +/* line 26, ../sass/animations/zoom-exit/_zoomOutRight.scss */ +.out .zoomOutRight { + -webkit-animation-name: zoomOutRight; + animation-name: zoomOutRight; +} + +@-webkit-keyframes zoomOutUp { + 40% { + opacity: 1; + -webkit-transform: scale3d(0.475, 0.475, 0.475) translate3d(0, 60px, 0); + -webkit-animation-timing-function: cubic-bezier(0.55, 0.055, 0.675, 0.19); + } + 100% { + opacity: 0; + -webkit-transform: scale3d(0.1, 0.1, 0.1) translate3d(0, -2000px, 0); + -webkit-transform-origin: center bottom; + -webkit-animation-timing-function: cubic-bezier(0.175, 0.885, 0.32, 1); + } +} +@keyframes zoomOutUp { + 40% { + opacity: 1; + transform: scale3d(0.475, 0.475, 0.475) translate3d(0, 60px, 0); + animation-timing-function: cubic-bezier(0.55, 0.055, 0.675, 0.19); + } + 100% { + opacity: 0; + transform: scale3d(0.1, 0.1, 0.1) translate3d(0, -2000px, 0); + transform-origin: center bottom; + animation-timing-function: cubic-bezier(0.175, 0.885, 0.32, 1); + } +} +/* line 28, ../sass/animations/zoom-exit/_zoomOutUp.scss */ +.out .zoomOutUp { + -webkit-animation-name: zoomOutUp; + animation-name: zoomOutUp; +} diff --git a/src/css/jquery.bxslider.css b/src/css/jquery.bxslider.css index c18fd726..6c3ceccf 100644 --- a/src/css/jquery.bxslider.css +++ b/src/css/jquery.bxslider.css @@ -27,13 +27,6 @@ ul.bxslider { } /** THEME ===================================*/ -.bx-wrapper { - -moz-box-shadow: 0 0 5px #ccc; - -webkit-box-shadow: 0 0 5px #ccc; - box-shadow: 0 0 5px #ccc; - border: 5px solid #fff; - background: #fff; -} .bx-wrapper .bx-pager, .bx-wrapper .bx-controls-auto { position: absolute; @@ -43,7 +36,7 @@ ul.bxslider { /* LOADER */ .bx-wrapper .bx-loading { min-height: 50px; - background: url('images/bx_loader.gif') center center no-repeat #ffffff; + background: url('images/bx_loader.gif') center center no-repeat #fff; height: 100%; width: 100%; position: absolute; diff --git a/src/js/.jshintrc b/src/js/.jshintrc index aa4f6f6f..f65cbf41 100644 --- a/src/js/.jshintrc +++ b/src/js/.jshintrc @@ -12,5 +12,6 @@ "noarg": true, "node": true, "strict": false, - "trailing": true -} \ No newline at end of file + "trailing": true, + "laxcomma": true +} diff --git a/src/js/jquery.bxslider.js b/src/js/jquery.bxslider.js index a0a834b6..0f9ec51b 100644 --- a/src/js/jquery.bxslider.js +++ b/src/js/jquery.bxslider.js @@ -1,126 +1,117 @@ -;(function($) { - +;(function ($) { var defaults = { - // GENERAL - mode: 'horizontal', - slideSelector: '', - infiniteLoop: true, - hideControlOnEnd: false, - speed: 500, - easing: null, - slideMargin: 0, - startSlide: 0, - randomStart: false, - captions: false, - ticker: false, - tickerHover: false, - adaptiveHeight: false, - adaptiveHeightSpeed: 500, - video: false, - useCSS: true, - preloadImages: 'visible', - responsive: true, - slideZIndex: 50, - wrapperClass: 'bx-wrapper', - - // TOUCH - touchEnabled: true, - swipeThreshold: 50, - oneToOneTouch: true, - preventDefaultSwipeX: true, - preventDefaultSwipeY: false, - - // ACCESSIBILITY - ariaLive: true, - ariaHidden: true, - - // KEYBOARD - keyboardEnabled: false, - - // PAGER - pager: true, - pagerType: 'full', - pagerShortSeparator: ' / ', - pagerSelector: null, - buildPager: null, - pagerCustom: null, - - // CONTROLS - controls: true, - nextText: 'Next', - prevText: 'Prev', - nextSelector: null, - prevSelector: null, - autoControls: false, - startText: 'Start', - stopText: 'Stop', - autoControlsCombine: false, - autoControlsSelector: null, - - // AUTO - auto: false, - pause: 4000, - autoStart: true, - autoDirection: 'next', - stopAutoOnClick: false, - autoHover: false, - autoDelay: 0, - autoSlideForOnePage: false, - - // CAROUSEL - minSlides: 1, - maxSlides: 1, - moveSlides: 0, - slideWidth: 0, - shrinkItems: false, - - // CALLBACKS - onSliderLoad: function() { return true; }, - onSlideBefore: function() { return true; }, - onSlideAfter: function() { return true; }, - onSlideNext: function() { return true; }, - onSlidePrev: function() { return true; }, - onSliderResize: function() { return true; } + mode: 'horizontal' + , slideSelector: '' + , infiniteLoop: true + , hideControlOnEnd: false + , speed: 500 + , easing: null + , slideMargin: 0 + , startSlide: 0 + , randomStart: false + , captions: false + , ticker: false + , tickerHover: false + , adaptiveHeight: false + , adaptiveHeightSpeed: 500 + , video: false + , useCSS: true + , preloadImages: 'visible' + , responsive: true + , slideZIndex: 50 + , wrapperClass: 'bx-wrapper', // TOUCH + touchEnabled: true + , swipeThreshold: 50 + , oneToOneTouch: true + , preventDefaultSwipeX: true + , preventDefaultSwipeY: false, // ACCESSIBILITY + ariaLive: true + , ariaHidden: true, // KEYBOARD + keyboardEnabled: false, // PAGER + pager: true + , pagerType: 'full' + , pagerShortSeparator: ' / ' + , pagerSelector: null + , buildPager: null + , pagerCustom: null, // CONTROLS + controls: true + , nextText: 'Next' + , prevText: 'Prev' + , nextSelector: null + , prevSelector: null + , autoControls: false + , startText: 'Start' + , stopText: 'Stop' + , autoControlsCombine: false + , autoControlsSelector: null + , pauseBeforeOut: 1000 + , pauseAfterIn: 3000, // AUTO + auto: false + , pause: 4000 + , autoStart: true + , autoDirection: 'next' + , stopAutoOnClick: false + , autoHover: false + , autoDelay: 0 + , autoSlideForOnePage: false, // CAROUSEL + minSlides: 1 + , maxSlides: 1 + , moveSlides: 0 + , slideWidth: 0 + , shrinkItems: false, // CALLBACKS + onSliderLoad: function () { + return true; + } + , onSlideBefore: function () { + return true; + } + , onSlideAfter: function () { + return true; + } + , onSlideNext: function () { + return true; + } + , onSlidePrev: function () { + return true; + } + , onSliderResize: function () { + return true; + } }; - - $.fn.bxSlider = function(options) { - + $.fn.bxSlider = function (options) { if (this.length === 0) { return this; } - // support multiple elements if (this.length > 1) { - this.each(function() { + this.each(function () { $(this).bxSlider(options); }); return this; } - // create a namespace to be used throughout the plugin - var slider = {}, - // set a reference to our slider element - el = this, - // get the original window dimens (thanks a lot IE) - windowWidth = $(window).width(), - windowHeight = $(window).height(); - + var slider = {}, // set a reference to our slider element + el = this, // get the original window dimens (thanks a lot IE) + windowWidth = $(window).width() + , windowHeight = $(window).height(); // Return if slider is already initialized - if ($(el).data('bxSlider')) { return; } - + if ($(el).data('bxSlider')) { + return; + } /** * =================================================================================== * = PRIVATE FUNCTIONS * =================================================================================== */ - /** * Initializes namespace settings to be used throughout plugin */ - var init = function() { + var init = function () { // Return if slider is already initialized - if ($(el).data('bxSlider')) { return; } + if ($(el).data('bxSlider')) { + return; + } // merge user-supplied options with the defaults slider.settings = $.extend({}, defaults, options); // parse slideWidth setting @@ -128,16 +119,26 @@ // store the original children slider.children = el.children(slider.settings.slideSelector); // check if actual number of slides is less than minSlides / maxSlides - if (slider.children.length < slider.settings.minSlides) { slider.settings.minSlides = slider.children.length; } - if (slider.children.length < slider.settings.maxSlides) { slider.settings.maxSlides = slider.children.length; } + if (slider.children.length < slider.settings.minSlides) { + slider.settings.minSlides = slider.children.length; + } + if (slider.children.length < slider.settings.maxSlides) { + slider.settings.maxSlides = slider.children.length; + } // if random start, set the startSlide setting to random number - if (slider.settings.randomStart) { slider.settings.startSlide = Math.floor(Math.random() * slider.children.length); } + if (slider.settings.randomStart) { + slider.settings.startSlide = Math.floor(Math.random() * slider.children.length); + } // store active slide information - slider.active = { index: slider.settings.startSlide }; + slider.active = { + index: slider.settings.startSlide + }; // store if the slider is in carousel mode (displaying / moving multiple slides) slider.carousel = slider.settings.minSlides > 1 || slider.settings.maxSlides > 1 ? true : false; // if carousel, force preloadImages = 'all' - if (slider.carousel) { slider.settings.preloadImages = 'all'; } + if (slider.carousel) { + slider.settings.preloadImages = 'all'; + } // calculate the min / max width thresholds based on min / max number of slides // used to setup and update carousel slides dimensions slider.minThreshold = (slider.settings.minSlides * slider.settings.slideWidth) + ((slider.settings.minSlides - 1) * slider.settings.slideMargin); @@ -151,11 +152,10 @@ // determine which property to use for transitions slider.animProp = slider.settings.mode === 'vertical' ? 'top' : 'left'; // determine if hardware acceleration can be used - slider.usingCSS = slider.settings.useCSS && slider.settings.mode !== 'fade' && (function() { + slider.usingCSS = slider.settings.useCSS && slider.settings.mode !== 'fade' && (function () { // create our test div element - var div = document.createElement('div'), - // css transition properties - props = ['WebkitPerspective', 'MozPerspective', 'OPerspective', 'msPerspective']; + var div = document.createElement('div'), // css transition properties + props = ['WebkitPerspective', 'MozPerspective', 'OPerspective', 'msPerspective']; // test for each property for (var i = 0; i < props.length; i++) { if (div.style[props[i]] !== undefined) { @@ -167,28 +167,26 @@ return false; }()); // if vertical mode always make maxSlides and minSlides equal - if (slider.settings.mode === 'vertical') { slider.settings.maxSlides = slider.settings.minSlides; } + if (slider.settings.mode === 'vertical') { + slider.settings.maxSlides = slider.settings.minSlides; + } // save original style data el.data('origStyle', el.attr('style')); - el.children(slider.settings.slideSelector).each(function() { + el.children(slider.settings.slideSelector).each(function () { $(this).data('origStyle', $(this).attr('style')); }); - // perform all DOM / CSS modifications setup(); }; - /** * Performs all DOM and CSS modifications */ - var setup = function() { + var setup = function () { var preloadSelector = slider.children.eq(slider.settings.startSlide); // set the default preload selector (visible) - // wrap el in a wrapper el.wrap('
'); // store a namespace reference to .bx-viewport slider.viewport = el.parent(); - // add aria-live if the setting is enabled and ticker mode is disabled if (slider.settings.ariaLive && !slider.settings.ticker) { slider.viewport.attr('aria-live', 'polite'); @@ -199,21 +197,22 @@ // set el to a massive width, to hold any needed slides // also strip any margin and padding from el el.css({ - width: slider.settings.mode === 'horizontal' ? (slider.children.length * 1000 + 215) + '%' : 'auto', - position: 'relative' + width: slider.settings.mode === 'horizontal' ? (slider.children.length * 1000 + 215) + '%' : 'auto' + , position: 'relative' }); // if using CSS, add the easing property if (slider.usingCSS && slider.settings.easing) { el.css('-' + slider.cssPrefix + '-transition-timing-function', slider.settings.easing); - // if not using CSS and no easing value was supplied, use the default JS animation easing (swing) - } else if (!slider.settings.easing) { + // if not using CSS and no easing value was supplied, use the default JS animation easing (swing) + } + else if (!slider.settings.easing) { slider.settings.easing = 'swing'; } // make modifications to the viewport (.bx-viewport) slider.viewport.css({ - width: '100%', - overflow: 'hidden', - position: 'relative' + width: '100%' + , overflow: 'hidden' + , position: 'relative' }); slider.viewport.parent().css({ maxWidth: getViewportMaxWidth() @@ -226,76 +225,103 @@ } // apply css to all slider children slider.children.css({ - float: slider.settings.mode === 'horizontal' ? 'left' : 'none', - listStyle: 'none', - position: 'relative' + float: slider.settings.mode === 'horizontal' ? 'left' : 'none' + , listStyle: 'none' + , position: 'relative' }); // apply the calculated width after the float is applied to prevent scrollbar interference slider.children.css('width', getSlideWidth()); // if slideMargin is supplied, add the css - if (slider.settings.mode === 'horizontal' && slider.settings.slideMargin > 0) { slider.children.css('marginRight', slider.settings.slideMargin); } - if (slider.settings.mode === 'vertical' && slider.settings.slideMargin > 0) { slider.children.css('marginBottom', slider.settings.slideMargin); } + if (slider.settings.mode === 'horizontal' && slider.settings.slideMargin > 0) { + slider.children.css('marginRight', slider.settings.slideMargin); + } + if (slider.settings.mode === 'vertical' && slider.settings.slideMargin > 0) { + slider.children.css('marginBottom', slider.settings.slideMargin); + } // if "fade" mode, add positioning and z-index CSS if (slider.settings.mode === 'fade') { slider.children.css({ - position: 'absolute', - zIndex: 0, - display: 'none' + position: 'absolute' + , zIndex: 0 + , display: 'none' }); // prepare the z-index on the showing element - slider.children.eq(slider.settings.startSlide).css({zIndex: slider.settings.slideZIndex, display: 'block'}); + slider.children.eq(slider.settings.startSlide).css({ + zIndex: slider.settings.slideZIndex + , display: 'block' + }); } + // Set animation class to 'out' + slider.children.removeClass('in').addClass('out'); + // create an element to contain all slider controls (pager, start / stop, etc) slider.controls.el = $('
'); // if captions are requested, add them - if (slider.settings.captions) { appendCaptions(); } + if (slider.settings.captions) { + appendCaptions(); + } // check if startSlide is last slide slider.active.last = slider.settings.startSlide === getPagerQty() - 1; // if video is true, set up the fitVids plugin - if (slider.settings.video) { el.fitVids(); } - if (slider.settings.preloadImages === 'all' || slider.settings.ticker) { preloadSelector = slider.children; } + if (slider.settings.video) { + el.fitVids(); + } + if (slider.settings.preloadImages === 'all' || slider.settings.ticker) { + preloadSelector = slider.children; + } // only check for control addition if not in "ticker" mode if (!slider.settings.ticker) { // if controls are requested, add them - if (slider.settings.controls) { appendControls(); } + if (slider.settings.controls) { + appendControls(); + } // if auto is true, and auto controls are requested, add them - if (slider.settings.auto && slider.settings.autoControls) { appendControlsAuto(); } + if (slider.settings.auto && slider.settings.autoControls) { + appendControlsAuto(); + } // if pager is requested, add it - if (slider.settings.pager) { appendPager(); } + if (slider.settings.pager) { + appendPager(); + } // if any control option is requested, add the controls wrapper - if (slider.settings.controls || slider.settings.autoControls || slider.settings.pager) { slider.viewport.after(slider.controls.el); } - // if ticker mode, do not allow a pager - } else { + if (slider.settings.controls || slider.settings.autoControls || slider.settings.pager) { + slider.viewport.after(slider.controls.el); + } + // if ticker mode, do not allow a pager + } + else { slider.settings.pager = false; } loadElements(preloadSelector, start); }; - - var loadElements = function(selector, callback) { - var total = selector.find('img:not([src=""]), iframe').length, - count = 0; + var loadElements = function (selector, callback) { + var total = selector.find('img:not([src=""]), iframe').length + , count = 0; if (total === 0) { callback(); return; } - selector.find('img:not([src=""]), iframe').each(function() { - $(this).one('load error', function() { - if (++count === total) { callback(); } - }).each(function() { - if (this.complete) { $(this).load(); } + selector.find('img:not([src=""]), iframe').each(function () { + $(this).one('load error', function () { + if (++count === total) { + callback(); + } + }).each(function () { + if (this.complete) { + $(this).load(); + } }); }); }; - /** * Start the slider */ - var start = function() { + var start = function () { // if infinite loop, prepare additional slides if (slider.settings.infiniteLoop && slider.settings.mode !== 'fade' && !slider.settings.ticker) { - var slice = slider.settings.mode === 'vertical' ? slider.settings.minSlides : slider.settings.maxSlides, - sliceAppend = slider.children.slice(0, slice).clone(true).addClass('bx-clone'), - slicePrepend = slider.children.slice(-slice).clone(true).addClass('bx-clone'); + var slice = slider.settings.mode === 'vertical' ? slider.settings.minSlides : slider.settings.maxSlides + , sliceAppend = slider.children.slice(0, slice).clone(true).addClass('bx-clone') + , slicePrepend = slider.children.slice(-slice).clone(true).addClass('bx-clone'); if (slider.settings.ariaHidden) { sliceAppend.attr('aria-hidden', true); slicePrepend.attr('aria-hidden', true); @@ -307,49 +333,67 @@ // set the left / top position of "el" setSlidePosition(); // if "vertical" mode, always use adaptiveHeight to prevent odd behavior - if (slider.settings.mode === 'vertical') { slider.settings.adaptiveHeight = true; } + if (slider.settings.mode === 'vertical') { + slider.settings.adaptiveHeight = true; + } // set the viewport height slider.viewport.height(getViewportHeight()); // make sure everything is positioned just right (same as a window resize) el.redrawSlider(); // onSliderLoad callback slider.settings.onSliderLoad.call(el, slider.active.index); + setTimeout(function() { + slider.children.eq(slider.active.index).removeClass('out').addClass('in'); + }, 1500); // slider has been fully initialized slider.initialized = true; // bind the resize call to the window - if (slider.settings.responsive) { $(window).bind('resize', resizeWindow); } + if (slider.settings.responsive) { + $(window).bind('resize', resizeWindow); + } // if auto is true and has more than 1 page, start the show - if (slider.settings.auto && slider.settings.autoStart && (getPagerQty() > 1 || slider.settings.autoSlideForOnePage)) { initAuto(); } + if (slider.settings.auto && slider.settings.autoStart && (getPagerQty() > 1 || slider.settings.autoSlideForOnePage)) { + initAuto(); + } // if ticker is true, start the ticker - if (slider.settings.ticker) { initTicker(); } + if (slider.settings.ticker) { + initTicker(); + } // if pager is requested, make the appropriate pager link active - if (slider.settings.pager) { updatePagerActive(slider.settings.startSlide); } + if (slider.settings.pager) { + updatePagerActive(slider.settings.startSlide); + } // check for any updates to the controls (like hideControlOnEnd updates) - if (slider.settings.controls) { updateDirectionControls(); } + if (slider.settings.controls) { + updateDirectionControls(); + } // if touchEnabled is true, setup the touch events - if (slider.settings.touchEnabled && !slider.settings.ticker) { initTouch(); } + if (slider.settings.touchEnabled && !slider.settings.ticker) { + initTouch(); + } // if keyboardEnabled is true, setup the keyboard events if (slider.settings.keyboardEnabled && !slider.settings.ticker) { $(document).keydown(keyPress); } }; - /** * Returns the calculated height of the viewport, used to determine either adaptiveHeight or the maxHeight value */ - var getViewportHeight = function() { + var getViewportHeight = function () { var height = 0; // first determine which children (slides) should be used in our height calculation var children = $(); // if mode is not "vertical" and adaptiveHeight is false, include all children if (slider.settings.mode !== 'vertical' && !slider.settings.adaptiveHeight) { children = slider.children; - } else { + } + else { // if not carousel, return the single active child if (!slider.carousel) { children = slider.children.eq(slider.active.index); - // if carousel, return a slice of children - } else { + // if carousel, return a slice of children + } + else { // get the individual slide index var currentIndex = slider.settings.moveSlides === 1 ? slider.active.index : slider.active.index * getMoveBy(); // add the current slide to the children @@ -359,7 +403,8 @@ // if looped back to the start if (currentIndex + i >= slider.children.length) { children = children.add(slider.children.eq(i - 1)); - } else { + } + else { children = children.add(slider.children.eq(currentIndex + i)); } } @@ -367,107 +412,107 @@ } // if "vertical" mode, calculate the sum of the heights of the children if (slider.settings.mode === 'vertical') { - children.each(function(index) { + children.each(function (index) { height += $(this).outerHeight(); }); // add user-supplied margins if (slider.settings.slideMargin > 0) { height += slider.settings.slideMargin * (slider.settings.minSlides - 1); } - // if not "vertical" mode, calculate the max height of the children - } else { - height = Math.max.apply(Math, children.map(function() { + // if not "vertical" mode, calculate the max height of the children + } + else { + height = Math.max.apply(Math, children.map(function () { return $(this).outerHeight(false); }).get()); } - if (slider.viewport.css('box-sizing') === 'border-box') { - height += parseFloat(slider.viewport.css('padding-top')) + parseFloat(slider.viewport.css('padding-bottom')) + - parseFloat(slider.viewport.css('border-top-width')) + parseFloat(slider.viewport.css('border-bottom-width')); - } else if (slider.viewport.css('box-sizing') === 'padding-box') { + height += parseFloat(slider.viewport.css('padding-top')) + parseFloat(slider.viewport.css('padding-bottom')) + parseFloat(slider.viewport.css('border-top-width')) + parseFloat(slider.viewport.css('border-bottom-width')); + } + else if (slider.viewport.css('box-sizing') === 'padding-box') { height += parseFloat(slider.viewport.css('padding-top')) + parseFloat(slider.viewport.css('padding-bottom')); } - return height; }; - /** * Returns the calculated width to be used for the outer wrapper / viewport */ - var getViewportMaxWidth = function() { + var getViewportMaxWidth = function () { var width = '100%'; if (slider.settings.slideWidth > 0) { if (slider.settings.mode === 'horizontal') { width = (slider.settings.maxSlides * slider.settings.slideWidth) + ((slider.settings.maxSlides - 1) * slider.settings.slideMargin); - } else { + } + else { width = slider.settings.slideWidth; } } return width; }; - /** * Returns the calculated width to be applied to each slide */ - var getSlideWidth = function() { + var getSlideWidth = function () { var newElWidth = slider.settings.slideWidth, // start with any user-supplied slide width - wrapWidth = slider.viewport.width(); // get the current viewport width + wrapWidth = slider.viewport.width(); // get the current viewport width // if slide width was not supplied, or is larger than the viewport use the viewport width - if (slider.settings.slideWidth === 0 || - (slider.settings.slideWidth > wrapWidth && !slider.carousel) || - slider.settings.mode === 'vertical') { + if (slider.settings.slideWidth === 0 || (slider.settings.slideWidth > wrapWidth && !slider.carousel) || slider.settings.mode === 'vertical') { newElWidth = wrapWidth; - // if carousel, use the thresholds to determine the width - } else if (slider.settings.maxSlides > 1 && slider.settings.mode === 'horizontal') { + // if carousel, use the thresholds to determine the width + } + else if (slider.settings.maxSlides > 1 && slider.settings.mode === 'horizontal') { if (wrapWidth > slider.maxThreshold) { return newElWidth; - } else if (wrapWidth < slider.minThreshold) { + } + else if (wrapWidth < slider.minThreshold) { newElWidth = (wrapWidth - (slider.settings.slideMargin * (slider.settings.minSlides - 1))) / slider.settings.minSlides; - } else if (slider.settings.shrinkItems) { + } + else if (slider.settings.shrinkItems) { newElWidth = Math.floor((wrapWidth + slider.settings.slideMargin) / (Math.ceil((wrapWidth + slider.settings.slideMargin) / (newElWidth + slider.settings.slideMargin))) - slider.settings.slideMargin); } } return newElWidth; }; - /** * Returns the number of slides currently visible in the viewport (includes partially visible slides) */ - var getNumberSlidesShowing = function() { - var slidesShowing = 1, - childWidth = null; + var getNumberSlidesShowing = function () { + var slidesShowing = 1 + , childWidth = null; if (slider.settings.mode === 'horizontal' && slider.settings.slideWidth > 0) { // if viewport is smaller than minThreshold, return minSlides if (slider.viewport.width() < slider.minThreshold) { slidesShowing = slider.settings.minSlides; - // if viewport is larger than maxThreshold, return maxSlides - } else if (slider.viewport.width() > slider.maxThreshold) { + // if viewport is larger than maxThreshold, return maxSlides + } + else if (slider.viewport.width() > slider.maxThreshold) { slidesShowing = slider.settings.maxSlides; - // if viewport is between min / max thresholds, divide viewport width by first child width - } else { + // if viewport is between min / max thresholds, divide viewport width by first child width + } + else { childWidth = slider.children.first().width() + slider.settings.slideMargin; - slidesShowing = Math.floor((slider.viewport.width() + - slider.settings.slideMargin) / childWidth); + slidesShowing = Math.floor((slider.viewport.width() + slider.settings.slideMargin) / childWidth); } - // if "vertical" mode, slides showing will always be minSlides - } else if (slider.settings.mode === 'vertical') { + // if "vertical" mode, slides showing will always be minSlides + } + else if (slider.settings.mode === 'vertical') { slidesShowing = slider.settings.minSlides; } return slidesShowing; }; - /** * Returns the number of pages (one full viewport of slides is one "page") */ - var getPagerQty = function() { - var pagerQty = 0, - breakPoint = 0, - counter = 0; + var getPagerQty = function () { + var pagerQty = 0 + , breakPoint = 0 + , counter = 0; // if moveSlides is specified by the user if (slider.settings.moveSlides > 0) { if (slider.settings.infiniteLoop) { pagerQty = Math.ceil(slider.children.length / getMoveBy()); - } else { + } + else { // when breakpoint goes above children length, counter is the number of pages while (breakPoint < slider.children.length) { ++pagerQty; @@ -475,17 +520,17 @@ counter += slider.settings.moveSlides <= getNumberSlidesShowing() ? slider.settings.moveSlides : getNumberSlidesShowing(); } } - // if moveSlides is 0 (auto) divide children length by sides showing, then round up - } else { + // if moveSlides is 0 (auto) divide children length by sides showing, then round up + } + else { pagerQty = Math.ceil(slider.children.length / getNumberSlidesShowing()); } return pagerQty; }; - /** * Returns the number of individual slides by which to shift the slider */ - var getMoveBy = function() { + var getMoveBy = function () { // if moveSlides was set by the user and moveSlides is less than number of slides showing if (slider.settings.moveSlides > 0 && slider.settings.moveSlides <= getNumberSlidesShowing()) { return slider.settings.moveSlides; @@ -493,11 +538,10 @@ // if moveSlides is 0 (auto) return getNumberSlidesShowing(); }; - /** * Sets the slider's (el) left or top position */ - var setSlidePosition = function() { + var setSlidePosition = function () { var position, lastChild, lastShowingIndex; // if last slide, not infinite loop, and number of children is larger than specified maxSlides if (slider.children.length > slider.settings.maxSlides && slider.active.last && !slider.settings.infiniteLoop) { @@ -507,27 +551,34 @@ position = lastChild.position(); // set the left position setPositionProperty(-(position.left - (slider.viewport.width() - lastChild.outerWidth())), 'reset', 0); - } else if (slider.settings.mode === 'vertical') { + } + else if (slider.settings.mode === 'vertical') { // get the last showing index's position lastShowingIndex = slider.children.length - slider.settings.minSlides; position = slider.children.eq(lastShowingIndex).position(); // set the top position setPositionProperty(-position.top, 'reset', 0); } - // if not last slide - } else { + // if not last slide + } + else { // get the position of the first showing slide position = slider.children.eq(slider.active.index * getMoveBy()).position(); // check for last slide - if (slider.active.index === getPagerQty() - 1) { slider.active.last = true; } + if (slider.active.index === getPagerQty() - 1) { + slider.active.last = true; + } // set the respective position if (position !== undefined) { - if (slider.settings.mode === 'horizontal') { setPositionProperty(-position.left, 'reset', 0); } - else if (slider.settings.mode === 'vertical') { setPositionProperty(-position.top, 'reset', 0); } + if (slider.settings.mode === 'horizontal') { + setPositionProperty(-position.left, 'reset', 0); + } + else if (slider.settings.mode === 'vertical') { + setPositionProperty(-position.top, 'reset', 0); + } } } }; - /** * Sets the el's animating property position (which in turn will sometimes animate el). * If using CSS, sets the transform property. If not using CSS, sets the top / left property. @@ -544,7 +595,7 @@ * @param params (array) optional * - an optional parameter containing any variables that need to be passed in */ - var setPositionProperty = function(value, type, duration, params) { + var setPositionProperty = function (value, type, duration, params) { var animateObj, propValue; // use CSS transform if (slider.usingCSS) { @@ -557,26 +608,33 @@ el.css(slider.animProp, propValue); if (duration !== 0) { // bind a callback method - executes when CSS transition completes - el.bind('transitionend webkitTransitionEnd oTransitionEnd MSTransitionEnd', function(e) { + el.bind('transitionend webkitTransitionEnd oTransitionEnd MSTransitionEnd', function (e) { //make sure it's the correct one - if (!$(e.target).is(el)) { return; } + if (!$(e.target).is(el)) { + return; + } // unbind the callback el.unbind('transitionend webkitTransitionEnd oTransitionEnd MSTransitionEnd'); updateAfterSlideTransition(); }); - } else { //duration = 0 + } + else { //duration = 0 updateAfterSlideTransition(); } - } else if (type === 'reset') { + } + else if (type === 'reset') { el.css(slider.animProp, propValue); - } else if (type === 'ticker') { + } + else if (type === 'ticker') { // make the transition use 'linear' el.css('-' + slider.cssPrefix + '-transition-timing-function', 'linear'); el.css(slider.animProp, propValue); if (duration !== 0) { - el.bind('transitionend webkitTransitionEnd oTransitionEnd MSTransitionEnd', function(e) { + el.bind('transitionend webkitTransitionEnd oTransitionEnd MSTransitionEnd', function (e) { //make sure it's the correct one - if (!$(e.target).is(el)) { return; } + if (!$(e.target).is(el)) { + return; + } // unbind the callback el.unbind('transitionend webkitTransitionEnd oTransitionEnd MSTransitionEnd'); // reset the position @@ -584,23 +642,27 @@ // start the loop again tickerLoop(); }); - } else { //duration = 0 + } + else { //duration = 0 setPositionProperty(params.resetValue, 'reset', 0); tickerLoop(); } } - // use JS animate - } else { + // use JS animate + } + else { animateObj = {}; animateObj[slider.animProp] = value; if (type === 'slide') { - el.animate(animateObj, duration, slider.settings.easing, function() { + el.animate(animateObj, duration, slider.settings.easing, function () { updateAfterSlideTransition(); }); - } else if (type === 'reset') { + } + else if (type === 'reset') { el.css(slider.animProp, value); - } else if (type === 'ticker') { - el.animate(animateObj, duration, 'linear', function() { + } + else if (type === 'ticker') { + el.animate(animateObj, duration, 'linear', function () { setPositionProperty(params.resetValue, 'reset', 0); // run the recursive loop after animation tickerLoop(); @@ -608,14 +670,13 @@ } } }; - /** * Populates the pager with proper amount of pages */ - var populatePager = function() { - var pagerHtml = '', - linkContent = '', - pagerQty = getPagerQty(); + var populatePager = function () { + var pagerHtml = '' + , linkContent = '' + , pagerQty = getPagerQty(); // loop through each pager item for (var i = 0; i < pagerQty; i++) { linkContent = ''; @@ -623,7 +684,8 @@ if (slider.settings.buildPager && $.isFunction(slider.settings.buildPager) || slider.settings.pagerCustom) { linkContent = slider.settings.buildPager(i); slider.pagerEl.addClass('bx-custom-pager'); - } else { + } + else { linkContent = i + 1; slider.pagerEl.addClass('bx-default-pager'); } @@ -634,34 +696,34 @@ // populate the pager element with pager links slider.pagerEl.html(pagerHtml); }; - /** * Appends the pager to the controls element */ - var appendPager = function() { + var appendPager = function () { if (!slider.settings.pagerCustom) { // create the pager DOM element slider.pagerEl = $('
'); // if a pager selector was supplied, populate it with the pager if (slider.settings.pagerSelector) { $(slider.settings.pagerSelector).html(slider.pagerEl); - // if no pager selector was supplied, add it after the wrapper - } else { + // if no pager selector was supplied, add it after the wrapper + } + else { slider.controls.el.addClass('bx-has-pager').append(slider.pagerEl); } // populate the pager populatePager(); - } else { + } + else { slider.pagerEl = $(slider.settings.pagerCustom); } // assign the pager click binding slider.pagerEl.on('click touchend', 'a', clickPagerBind); }; - /** * Appends prev / next controls to the controls element */ - var appendControls = function() { + var appendControls = function () { slider.controls.next = $('' + slider.settings.nextText + ''); slider.controls.prev = $('' + slider.settings.prevText + ''); // bind click actions to the controls @@ -685,11 +747,10 @@ slider.controls.el.addClass('bx-has-controls-direction').append(slider.controls.directionEl); } }; - /** * Appends start / stop auto controls to the controls element */ - var appendControlsAuto = function() { + var appendControlsAuto = function () { slider.controls.start = $(''); slider.controls.stop = $(''); // add the controls to the DOM @@ -700,27 +761,28 @@ // if autoControlsCombine, insert only the "start" control if (slider.settings.autoControlsCombine) { slider.controls.autoEl.append(slider.controls.start); - // if autoControlsCombine is false, insert both controls - } else { + // if autoControlsCombine is false, insert both controls + } + else { slider.controls.autoEl.append(slider.controls.start).append(slider.controls.stop); } // if auto controls selector was supplied, populate it with the controls if (slider.settings.autoControlsSelector) { $(slider.settings.autoControlsSelector).html(slider.controls.autoEl); - // if auto controls selector was not supplied, add it after the wrapper - } else { + // if auto controls selector was not supplied, add it after the wrapper + } + else { slider.controls.el.addClass('bx-has-controls-auto').append(slider.controls.autoEl); } // update the auto controls updateAutoControls(slider.settings.autoStart ? 'stop' : 'start'); }; - /** * Appends image captions to the DOM */ - var appendCaptions = function() { + var appendCaptions = function () { // cycle through each child - slider.children.each(function(index) { + slider.children.each(function (index) { // get the image title attribute var title = $(this).find('img:first').attr('title'); // append the caption @@ -729,86 +791,92 @@ } }); }; - /** * Click next binding * * @param e (event) * - DOM event object */ - var clickNextBind = function(e) { + var clickNextBind = function (e) { e.preventDefault(); - if (slider.controls.el.hasClass('disabled')) { return; } + if (slider.controls.el.hasClass('disabled')) { + return; + } // if auto show is running, stop it - if (slider.settings.auto && slider.settings.stopAutoOnClick) { el.stopAuto(); } + if (slider.settings.auto && slider.settings.stopAutoOnClick) { + el.stopAuto(); + } el.goToNextSlide(); }; - /** * Click prev binding * * @param e (event) * - DOM event object */ - var clickPrevBind = function(e) { + var clickPrevBind = function (e) { e.preventDefault(); - if (slider.controls.el.hasClass('disabled')) { return; } + if (slider.controls.el.hasClass('disabled')) { + return; + } // if auto show is running, stop it - if (slider.settings.auto && slider.settings.stopAutoOnClick) { el.stopAuto(); } + if (slider.settings.auto && slider.settings.stopAutoOnClick) { + el.stopAuto(); + } el.goToPrevSlide(); }; - /** * Click start binding * * @param e (event) * - DOM event object */ - var clickStartBind = function(e) { + var clickStartBind = function (e) { el.startAuto(); e.preventDefault(); }; - /** * Click stop binding * * @param e (event) * - DOM event object */ - var clickStopBind = function(e) { + var clickStopBind = function (e) { el.stopAuto(); e.preventDefault(); }; - /** * Click pager binding * * @param e (event) * - DOM event object */ - var clickPagerBind = function(e) { + var clickPagerBind = function (e) { var pagerLink, pagerIndex; e.preventDefault(); if (slider.controls.el.hasClass('disabled')) { return; } // if auto show is running, stop it - if (slider.settings.auto && slider.settings.stopAutoOnClick) { el.stopAuto(); } + if (slider.settings.auto && slider.settings.stopAutoOnClick) { + el.stopAuto(); + } pagerLink = $(e.currentTarget); if (pagerLink.attr('data-slide-index') !== undefined) { pagerIndex = parseInt(pagerLink.attr('data-slide-index')); // if clicked pager link is not active, continue with the goToSlide call - if (pagerIndex !== slider.active.index) { el.goToSlide(pagerIndex); } + if (pagerIndex !== slider.active.index) { + el.goToSlideDelayed(pagerIndex); + } } }; - /** * Updates the pager links with an active class * * @param slideIndex (int) * - index of slide to make active */ - var updatePagerActive = function(slideIndex) { + var updatePagerActive = function (slideIndex) { // if "short" pager type var len = slider.children.length; // nb of children if (slider.settings.pagerType === 'short') { @@ -821,13 +889,14 @@ // remove all pager active classes slider.pagerEl.find('a').removeClass('active'); // apply the active class for all pagers - slider.pagerEl.each(function(i, el) { $(el).find('a').eq(slideIndex).addClass('active'); }); + slider.pagerEl.each(function (i, el) { + $(el).find('a').eq(slideIndex).addClass('active'); + }); }; - /** * Performs needed actions after a slide transition */ - var updateAfterSlideTransition = function() { + var updateAfterSlideTransition = function () { // if infinite loop is true if (slider.settings.infiniteLoop) { var position = ''; @@ -835,16 +904,22 @@ if (slider.active.index === 0) { // set the new position position = slider.children.eq(0).position(); - // carousel, last slide - } else if (slider.active.index === getPagerQty() - 1 && slider.carousel) { + // carousel, last slide + } + else if (slider.active.index === getPagerQty() - 1 && slider.carousel) { position = slider.children.eq((getPagerQty() - 1) * getMoveBy()).position(); - // last slide - } else if (slider.active.index === slider.children.length - 1) { + // last slide + } + else if (slider.active.index === slider.children.length - 1) { position = slider.children.eq(slider.children.length - 1).position(); } if (position) { - if (slider.settings.mode === 'horizontal') { setPositionProperty(-position.left, 'reset', 0); } - else if (slider.settings.mode === 'vertical') { setPositionProperty(-position.top, 'reset', 0); } + if (slider.settings.mode === 'horizontal') { + setPositionProperty(-position.left, 'reset', 0); + } + else if (slider.settings.mode === 'vertical') { + setPositionProperty(-position.top, 'reset', 0); + } } } // declare that the transition is complete @@ -852,70 +927,71 @@ // onSlideAfter callback slider.settings.onSlideAfter.call(el, slider.children.eq(slider.active.index), slider.oldIndex, slider.active.index); }; - /** * Updates the auto controls state (either active, or combined switch) * * @param state (string) "start", "stop" * - the new state of the auto show */ - var updateAutoControls = function(state) { + var updateAutoControls = function (state) { // if autoControlsCombine is true, replace the current control with the new state if (slider.settings.autoControlsCombine) { slider.controls.autoEl.html(slider.controls[state]); - // if autoControlsCombine is false, apply the "active" class to the appropriate control - } else { + // if autoControlsCombine is false, apply the "active" class to the appropriate control + } + else { slider.controls.autoEl.find('a').removeClass('active'); slider.controls.autoEl.find('a:not(.bx-' + state + ')').addClass('active'); } }; - /** * Updates the direction controls (checks if either should be hidden) */ - var updateDirectionControls = function() { + var updateDirectionControls = function () { if (getPagerQty() === 1) { slider.controls.prev.addClass('disabled'); slider.controls.next.addClass('disabled'); - } else if (!slider.settings.infiniteLoop && slider.settings.hideControlOnEnd) { + } + else if (!slider.settings.infiniteLoop && slider.settings.hideControlOnEnd) { // if first slide if (slider.active.index === 0) { slider.controls.prev.addClass('disabled'); slider.controls.next.removeClass('disabled'); - // if last slide - } else if (slider.active.index === getPagerQty() - 1) { + // if last slide + } + else if (slider.active.index === getPagerQty() - 1) { slider.controls.next.addClass('disabled'); slider.controls.prev.removeClass('disabled'); - // if any slide in the middle - } else { + // if any slide in the middle + } + else { slider.controls.prev.removeClass('disabled'); slider.controls.next.removeClass('disabled'); } } }; - /** * Initializes the auto process */ - var initAuto = function() { + var initAuto = function () { // if autoDelay was supplied, launch the auto show using a setTimeout() call if (slider.settings.autoDelay > 0) { var timeout = setTimeout(el.startAuto, slider.settings.autoDelay); - // if autoDelay was not supplied, start the auto show normally - } else { + // if autoDelay was not supplied, start the auto show normally + } + else { el.startAuto(); - //add focus and blur events to ensure its running if timeout gets paused - $(window).focus(function() { + $(window).focus(function () { el.startAuto(); - }).blur(function() { + }).blur(function () { el.stopAuto(); }); } // if autoHover is requested if (slider.settings.autoHover) { // on el hover - el.hover(function() { + el.hover(function () { // if the auto show is currently playing (has an active interval) if (slider.interval) { // stop the auto show and pass true argument which will prevent control update @@ -923,7 +999,7 @@ // create a new autoPaused value which will be used by the relative "mouseout" event slider.autoPaused = true; } - }, function() { + }, function () { // if the autoPaused value was created be the prior "mouseover" event if (slider.autoPaused) { // start the auto show and pass true argument which will prevent control update @@ -934,18 +1010,18 @@ }); } }; - /** * Initializes the ticker process */ - var initTicker = function() { - var startPosition = 0, - position, transform, value, idx, ratio, property, newSpeed, totalDimens; + var initTicker = function () { + var startPosition = 0 + , position, transform, value, idx, ratio, property, newSpeed, totalDimens; // if autoDirection is "next", append a clone of the entire slider if (slider.settings.autoDirection === 'next') { el.append(slider.children.clone().addClass('bx-clone')); - // if autoDirection is "prev", prepend a clone of the entire slider, and set the left position - } else { + // if autoDirection is "prev", prepend a clone of the entire slider, and set the left position + } + else { el.prepend(slider.children.clone().addClass('bx-clone')); position = slider.children.first().position(); startPosition = slider.settings.mode === 'horizontal' ? -position.left : -position.top; @@ -959,13 +1035,13 @@ if (slider.settings.tickerHover) { if (slider.usingCSS) { idx = slider.settings.mode === 'horizontal' ? 4 : 5; - slider.viewport.hover(function() { + slider.viewport.hover(function () { transform = el.css('-' + slider.cssPrefix + '-transform'); value = parseFloat(transform.split(',')[idx]); setPositionProperty(value, 'reset', 0); - }, function() { + }, function () { totalDimens = 0; - slider.children.each(function(index) { + slider.children.each(function (index) { totalDimens += slider.settings.mode === 'horizontal' ? $(this).outerWidth(true) : $(this).outerHeight(true); }); // calculate the speed ratio (used to determine the new speed to finish the paused animation) @@ -976,14 +1052,15 @@ newSpeed = ratio * (totalDimens - (Math.abs(parseInt(value)))); tickerLoop(newSpeed); }); - } else { + } + else { // on el hover - slider.viewport.hover(function() { + slider.viewport.hover(function () { el.stop(); - }, function() { + }, function () { // calculate the total width of children (used to calculate the speed ratio) totalDimens = 0; - slider.children.each(function(index) { + slider.children.each(function (index) { totalDimens += slider.settings.mode === 'horizontal' ? $(this).outerWidth(true) : $(this).outerHeight(true); }); // calculate the speed ratio (used to determine the new speed to finish the paused animation) @@ -999,111 +1076,116 @@ // start the ticker loop tickerLoop(); }; - /** * Runs a continuous loop, news ticker-style */ - var tickerLoop = function(resumeSpeed) { - var speed = resumeSpeed ? resumeSpeed : slider.settings.speed, - position = {left: 0, top: 0}, - reset = {left: 0, top: 0}, - animateProperty, resetValue, params; - + var tickerLoop = function (resumeSpeed) { + var speed = resumeSpeed ? resumeSpeed : slider.settings.speed + , position = { + left: 0 + , top: 0 + } + , reset = { + left: 0 + , top: 0 + } + , animateProperty, resetValue, params; // if "next" animate left position to last child, then reset left to 0 if (slider.settings.autoDirection === 'next') { position = el.find('.bx-clone').first().position(); - // if "prev" animate left position to 0, then reset left to first non-clone child - } else { + // if "prev" animate left position to 0, then reset left to first non-clone child + } + else { reset = slider.children.first().position(); } animateProperty = slider.settings.mode === 'horizontal' ? -position.left : -position.top; resetValue = slider.settings.mode === 'horizontal' ? -reset.left : -reset.top; - params = {resetValue: resetValue}; + params = { + resetValue: resetValue + }; setPositionProperty(animateProperty, 'ticker', speed, params); }; - /** * Check if el is on screen */ - var isOnScreen = function(el) { - var win = $(window), - viewport = { - top: win.scrollTop(), - left: win.scrollLeft() - }, - bounds = el.offset(); - + var isOnScreen = function (el) { + var win = $(window) + , viewport = { + top: win.scrollTop() + , left: win.scrollLeft() + } + , bounds = el.offset(); viewport.right = viewport.left + win.width(); viewport.bottom = viewport.top + win.height(); bounds.right = bounds.left + el.outerWidth(); bounds.bottom = bounds.top + el.outerHeight(); - return (!(viewport.right < bounds.left || viewport.left > bounds.right || viewport.bottom < bounds.top || viewport.top > bounds.bottom)); }; - /** * Initializes keyboard events */ - var keyPress = function(e) { - var activeElementTag = document.activeElement.tagName.toLowerCase(), - tagFilters = 'input|textarea', - p = new RegExp(activeElementTag,['i']), - result = p.exec(tagFilters); - + var keyPress = function (e) { + var activeElementTag = document.activeElement.tagName.toLowerCase() + , tagFilters = 'input|textarea' + , p = new RegExp(activeElementTag, ['i']) + , result = p.exec(tagFilters); if (result == null && isOnScreen(el)) { if (e.keyCode === 39) { clickNextBind(e); return false; - } else if (e.keyCode === 37) { + } + else if (e.keyCode === 37) { clickPrevBind(e); return false; } } }; - /** * Initializes touch events */ - var initTouch = function() { + var initTouch = function () { // initialize object to contain all touch values slider.touch = { - start: {x: 0, y: 0}, - end: {x: 0, y: 0} + start: { + x: 0 + , y: 0 + } + , end: { + x: 0 + , y: 0 + } }; slider.viewport.bind('touchstart MSPointerDown pointerdown', onTouchStart); - //for browsers that have implemented pointer events and fire a click after //every pointerup regardless of whether pointerup is on same screen location as pointerdown or not - slider.viewport.on('click', '.bxslider a', function(e) { + slider.viewport.on('click', '.bxslider a', function (e) { if (slider.viewport.hasClass('click-disabled')) { e.preventDefault(); slider.viewport.removeClass('click-disabled'); } }); }; - /** * Event handler for "touchstart" * * @param e (event) * - DOM event object */ - var onTouchStart = function(e) { + var onTouchStart = function (e) { //disable slider controls while user is interacting with slides to avoid slider freeze that happens on touch devices when a slide swipe happens immediately after interacting with slider controls slider.controls.el.addClass('disabled'); - if (slider.working) { e.preventDefault(); slider.controls.el.removeClass('disabled'); - } else { + } + else { // record the original position when touch starts slider.touch.originalPos = el.position(); - var orig = e.originalEvent, - touchPoints = (typeof orig.changedTouches !== 'undefined') ? orig.changedTouches : [orig]; + var orig = e.originalEvent + , touchPoints = (typeof orig.changedTouches !== 'undefined') ? orig.changedTouches : [orig]; // record the starting touch x, y coordinates slider.touch.start.x = touchPoints[0].pageX; slider.touch.start.y = touchPoints[0].pageY; - if (slider.viewport.get(0).setPointerCapture) { slider.pointerId = orig.pointerId; slider.viewport.get(0).setPointerCapture(slider.pointerId); @@ -1115,18 +1197,16 @@ slider.viewport.bind('MSPointerCancel pointercancel', onPointerCancel); } }; - /** * Cancel Pointer for Windows Phone * * @param e (event) * - DOM event object */ - var onPointerCancel = function(e) { + var onPointerCancel = function (e) { /* onPointerCancel handler is needed to deal with situations when a touchend doesn't fire after a touchstart (this happens on windows phones only) */ setPositionProperty(slider.touch.originalPos.left, 'reset', 0); - //remove handlers slider.controls.el.removeClass('disabled'); slider.viewport.unbind('MSPointerCancel pointercancel', onPointerCancel); @@ -1136,27 +1216,25 @@ slider.viewport.get(0).releasePointerCapture(slider.pointerId); } }; - /** * Event handler for "touchmove" * * @param e (event) * - DOM event object */ - var onTouchMove = function(e) { - var orig = e.originalEvent, - touchPoints = (typeof orig.changedTouches !== 'undefined') ? orig.changedTouches : [orig], - // if scrolling on y axis, do not prevent default - xMovement = Math.abs(touchPoints[0].pageX - slider.touch.start.x), - yMovement = Math.abs(touchPoints[0].pageY - slider.touch.start.y), - value = 0, - change = 0; - + var onTouchMove = function (e) { + var orig = e.originalEvent + , touchPoints = (typeof orig.changedTouches !== 'undefined') ? orig.changedTouches : [orig], // if scrolling on y axis, do not prevent default + xMovement = Math.abs(touchPoints[0].pageX - slider.touch.start.x) + , yMovement = Math.abs(touchPoints[0].pageY - slider.touch.start.y) + , value = 0 + , change = 0; // x axis swipe if ((xMovement * 3) > yMovement && slider.settings.preventDefaultSwipeX) { e.preventDefault(); - // y axis swipe - } else if ((yMovement * 3) > xMovement && slider.settings.preventDefaultSwipeY) { + // y axis swipe + } + else if ((yMovement * 3) > xMovement && slider.settings.preventDefaultSwipeY) { e.preventDefault(); } if (slider.settings.mode !== 'fade' && slider.settings.oneToOneTouch) { @@ -1164,29 +1242,29 @@ if (slider.settings.mode === 'horizontal') { change = touchPoints[0].pageX - slider.touch.start.x; value = slider.touch.originalPos.left + change; - // if vertical, drag along y axis - } else { + // if vertical, drag along y axis + } + else { change = touchPoints[0].pageY - slider.touch.start.y; value = slider.touch.originalPos.top + change; } setPositionProperty(value, 'reset', 0); } }; - /** * Event handler for "touchend" * * @param e (event) * - DOM event object */ - var onTouchEnd = function(e) { + var onTouchEnd = function (e) { slider.viewport.unbind('touchmove MSPointerMove pointermove', onTouchMove); //enable slider controls as soon as user stops interacing with slides slider.controls.el.removeClass('disabled'); - var orig = e.originalEvent, - touchPoints = (typeof orig.changedTouches !== 'undefined') ? orig.changedTouches : [orig], - value = 0, - distance = 0; + var orig = e.originalEvent + , touchPoints = (typeof orig.changedTouches !== 'undefined') ? orig.changedTouches : [orig] + , value = 0 + , distance = 0; // record end x, y positions slider.touch.end.x = touchPoints[0].pageX; slider.touch.end.y = touchPoints[0].pageY; @@ -1196,34 +1274,40 @@ if (distance >= slider.settings.swipeThreshold) { if (slider.touch.start.x > slider.touch.end.x) { el.goToNextSlide(); - } else { + } + else { el.goToPrevSlide(); } el.stopAuto(); } - // not fade mode - } else { + // not fade mode + } + else { // calculate distance and el's animate property if (slider.settings.mode === 'horizontal') { distance = slider.touch.end.x - slider.touch.start.x; value = slider.touch.originalPos.left; - } else { + } + else { distance = slider.touch.end.y - slider.touch.start.y; value = slider.touch.originalPos.top; } // if not infinite loop and first / last slide, do not attempt a slide transition if (!slider.settings.infiniteLoop && ((slider.active.index === 0 && distance > 0) || (slider.active.last && distance < 0))) { setPositionProperty(value, 'reset', 200); - } else { + } + else { // check if distance clears threshold if (Math.abs(distance) >= slider.settings.swipeThreshold) { if (distance < 0) { el.goToNextSlide(); - } else { + } + else { el.goToPrevSlide(); } el.stopAuto(); - } else { + } + else { // el.animate(property, 200); setPositionProperty(value, 'reset', 200); } @@ -1234,20 +1318,22 @@ slider.viewport.get(0).releasePointerCapture(slider.pointerId); } }; - /** * Window resize event callback */ - var resizeWindow = function(e) { + var resizeWindow = function (e) { // don't do anything if slider isn't initialized. - if (!slider.initialized) { return; } + if (!slider.initialized) { + return; + } // Delay if slider working. if (slider.working) { window.setTimeout(resizeWindow, 10); - } else { + } + else { // get the new window dimens (again, thank you IE) - var windowWidthNew = $(window).width(), - windowHeightNew = $(window).height(); + var windowWidthNew = $(window).width() + , windowHeightNew = $(window).height(); // make sure that it is a true window resize // *we must check this because our dinosaur friend IE fires a window resize event when certain DOM elements // are resized. Can you just die already?* @@ -1262,14 +1348,13 @@ } } }; - /** * Adds an aria-hidden=true attribute to each element * * @param startVisibleIndex (int) * - the first visible element's index */ - var applyAriaHiddenAttributes = function(startVisibleIndex) { + var applyAriaHiddenAttributes = function (startVisibleIndex) { var numberOfSlidesShowing = getNumberSlidesShowing(); // only apply attributes if the setting is enabled and not in ticker mode if (slider.settings.ariaHidden && !slider.settings.ticker) { @@ -1279,41 +1364,42 @@ slider.children.slice(startVisibleIndex, startVisibleIndex + numberOfSlidesShowing).attr('aria-hidden', 'false'); } }; - /** * Returns index according to present page range * * @param slideOndex (int) * - the desired slide index */ - var setSlideIndex = function(slideIndex) { + var setSlideIndex = function (slideIndex) { if (slideIndex < 0) { if (slider.settings.infiniteLoop) { return getPagerQty() - 1; - }else { + } + else { //we don't go to undefined slides return slider.active.index; } - // if slideIndex is greater than children length, set active index to 0 (this happens during infinite loop) - } else if (slideIndex >= getPagerQty()) { + // if slideIndex is greater than children length, set active index to 0 (this happens during infinite loop) + } + else if (slideIndex >= getPagerQty()) { if (slider.settings.infiniteLoop) { return 0; - } else { + } + else { //we don't move to undefined pages return slider.active.index; } - // set active index to requested slide - } else { + // set active index to requested slide + } + else { return slideIndex; } }; - /** * =================================================================================== * = PUBLIC FUNCTIONS * =================================================================================== */ - /** * Performs slide transition to the specified slide * @@ -1323,69 +1409,81 @@ * @param direction (string) * - INTERNAL USE ONLY - the direction of travel ("prev" / "next") */ - el.goToSlide = function(slideIndex, direction) { + el.goToSlide = function (slideIndex, direction) { // onSlideBefore, onSlideNext, onSlidePrev callbacks // Allow transition canceling based on returned value - var performTransition = true, - moveBy = 0, - position = {left: 0, top: 0}, - lastChild = null, - lastShowingIndex, eq, value, requestEl; + var performTransition = true + , moveBy = 0 + , position = { + left: 0 + , top: 0 + } + , lastChild = null + , lastShowingIndex, eq, value, requestEl; // store the old index slider.oldIndex = slider.active.index; //set new index slider.active.index = setSlideIndex(slideIndex); - // if plugin is currently in motion, ignore request - if (slider.working || slider.active.index === slider.oldIndex) { return; } + if (slider.working || slider.active.index === slider.oldIndex) { + return; + } // declare that plugin is in motion slider.working = true; - performTransition = slider.settings.onSlideBefore.call(el, slider.children.eq(slider.active.index), slider.oldIndex, slider.active.index); - // If transitions canceled, reset and return if (typeof (performTransition) !== 'undefined' && !performTransition) { slider.active.index = slider.oldIndex; // restore old index slider.working = false; // is not in motion return; } - if (direction === 'next') { // Prevent canceling in future functions or lack there-of from negating previous commands to cancel if (!slider.settings.onSlideNext.call(el, slider.children.eq(slider.active.index), slider.oldIndex, slider.active.index)) { performTransition = false; } - } else if (direction === 'prev') { + } + else if (direction === 'prev') { // Prevent canceling in future functions or lack there-of from negating previous commands to cancel if (!slider.settings.onSlidePrev.call(el, slider.children.eq(slider.active.index), slider.oldIndex, slider.active.index)) { performTransition = false; } } - // check if last slide slider.active.last = slider.active.index >= getPagerQty() - 1; // update the pager with active class - if (slider.settings.pager || slider.settings.pagerCustom) { updatePagerActive(slider.active.index); } + if (slider.settings.pager || slider.settings.pagerCustom) { + updatePagerActive(slider.active.index); + } // // check for direction control update - if (slider.settings.controls) { updateDirectionControls(); } + if (slider.settings.controls) { + updateDirectionControls(); + } // if slider is set to mode: "fade" if (slider.settings.mode === 'fade') { // if adaptiveHeight is true and next height is different from current height, animate to the new height if (slider.settings.adaptiveHeight && slider.viewport.height() !== getViewportHeight()) { - slider.viewport.animate({height: getViewportHeight()}, slider.settings.adaptiveHeightSpeed); + slider.viewport.animate({ + height: getViewportHeight() + }, slider.settings.adaptiveHeightSpeed); } // fade out the visible child and reset its z-index value - slider.children.filter(':visible').fadeOut(slider.settings.speed).css({zIndex: 0}); + slider.children.filter(':visible').fadeOut(slider.settings.speed).css({ + zIndex: 0 + }); // fade in the newly requested slide - slider.children.eq(slider.active.index).css('zIndex', slider.settings.slideZIndex + 1).fadeIn(slider.settings.speed, function() { + slider.children.eq(slider.active.index).css('zIndex', slider.settings.slideZIndex + 1).fadeIn(slider.settings.speed, function () { $(this).css('zIndex', slider.settings.slideZIndex); updateAfterSlideTransition(); }); - // slider mode is not "fade" - } else { + // slider mode is not "fade" + } + else { // if adaptiveHeight is true and next height is different from current height, animate to the new height if (slider.settings.adaptiveHeight && slider.viewport.height() !== getViewportHeight()) { - slider.viewport.animate({height: getViewportHeight()}, slider.settings.adaptiveHeightSpeed); + slider.viewport.animate({ + height: getViewportHeight() + }, slider.settings.adaptiveHeightSpeed); } // if carousel and not infinite loop if (!slider.settings.infiniteLoop && slider.carousel && slider.active.last) { @@ -1395,29 +1493,32 @@ position = lastChild.position(); // calculate the position of the last slide moveBy = slider.viewport.width() - lastChild.outerWidth(); - } else { + } + else { // get last showing index position lastShowingIndex = slider.children.length - slider.settings.minSlides; position = slider.children.eq(lastShowingIndex).position(); } // horizontal carousel, going previous while on first slide (infiniteLoop mode) - } else if (slider.carousel && slider.active.last && direction === 'prev') { + } + else if (slider.carousel && slider.active.last && direction === 'prev') { // get the last child position eq = slider.settings.moveSlides === 1 ? slider.settings.maxSlides - getMoveBy() : ((getPagerQty() - 1) * getMoveBy()) - (slider.children.length - slider.settings.maxSlides); lastChild = el.children('.bx-clone').eq(eq); position = lastChild.position(); - // if infinite loop and "Next" is clicked on the last slide - } else if (direction === 'next' && slider.active.index === 0) { + // if infinite loop and "Next" is clicked on the last slide + } + else if (direction === 'next' && slider.active.index === 0) { // get the last clone position position = el.find('> .bx-clone').eq(slider.settings.maxSlides).position(); slider.active.last = false; - // normal non-zero requests - } else if (slideIndex >= 0) { + // normal non-zero requests + } + else if (slideIndex >= 0) { //parseInt is applied to allow floats for slides/page requestEl = slideIndex * parseInt(getMoveBy()); position = slider.children.eq(requestEl).position(); } - /* If the position doesn't exist * (e.g. if you destroy the slider on a next click), * it doesn't throw an error. @@ -1426,181 +1527,240 @@ value = slider.settings.mode === 'horizontal' ? -(position.left - moveBy) : -position.top; // plugin values to be animated setPositionProperty(value, 'slide', slider.settings.speed); - } else { + } + else { slider.working = false; } } - if (slider.settings.ariaHidden) { applyAriaHiddenAttributes(slider.active.index * getMoveBy()); } + if (slider.settings.ariaHidden) { + applyAriaHiddenAttributes(slider.active.index * getMoveBy()); + } + setTimeout(function () { + slider.children.eq(slider.active.index).removeClass('out').addClass('in'); + }, 200); }; - /** - * Transitions to the next slide in the show - */ - el.goToNextSlide = function() { + * Performs slide transition to the specified slide with dela + + to allow perform single elemnts out animation + * + * @param slideIndex (int) + * - the destination slide's index (zero-based) + * + * @param direction (string) + * - INTERNAL USE ONLY - the direction of travel ("prev" / "next") + **/ + el.goToSlideDelayed = function (slideIndex, direction) { + var theSlide = slider.children.eq(slideIndex); + var customDelay = parseInt(theSlide.attr('data-pauseBeforeOut')) || slider.settings.pauseBeforeOut; + slider.children.eq(slider.active.index).removeClass('in').addClass('out'); + if (!customDelay) { + el.goToSlide(slideIndex, direction); + } + else { + setTimeout(function () { + el.goToSlide(slideIndex, direction); + }, customDelay); + } + }; + /** + * Transitions to the next slide in the show + */ + el.goToNextSlide = function () { // if infiniteLoop is false and last page is showing, disregard call - if (!slider.settings.infiniteLoop && slider.active.last) { return; } + if (!slider.settings.infiniteLoop && slider.active.last) { + return; + } var pagerIndex = parseInt(slider.active.index) + 1; - el.goToSlide(pagerIndex, 'next'); + el.goToSlideDelayed(pagerIndex, 'next'); }; - /** * Transitions to the prev slide in the show */ - el.goToPrevSlide = function() { + el.goToPrevSlide = function () { // if infiniteLoop is false and last page is showing, disregard call - if (!slider.settings.infiniteLoop && slider.active.index === 0) { return; } + if (!slider.settings.infiniteLoop && slider.active.index === 0) { + return; + } var pagerIndex = parseInt(slider.active.index) - 1; - el.goToSlide(pagerIndex, 'prev'); + el.goToSlideDelayed(pagerIndex, 'prev'); }; - /** * Starts the auto show * * @param preventControlUpdate (boolean) * - if true, auto controls state will not be updated */ - el.startAuto = function(preventControlUpdate) { + el.startAuto = function (preventControlUpdate) { // if an interval already exists, disregard call - if (slider.interval) { return; } + var theSlide = slider.children.eq(slider.active.index); + var customDelay = parseInt(theSlide.attr('data-pauseAfterInt')) || slider.settings.pauseAfterInt || 0; + customDelay += parseInt(theSlide.attr('data-pause')) || slider.settings.pause || 0; + if (slider.interval || (!customDelay)) { + return; + } // create an interval - slider.interval = setInterval(function() { + slider.interval = setTimeout(function () { if (slider.settings.autoDirection === 'next') { el.goToNextSlide(); - } else { + } + else { el.goToPrevSlide(); } - }, slider.settings.pause); + slider.interval = 0; + el.startAuto(preventControlUpdate); + }, customDelay); // if auto controls are displayed and preventControlUpdate is not true - if (slider.settings.autoControls && preventControlUpdate !== true) { updateAutoControls('stop'); } + if (slider.settings.autoControls && preventControlUpdate !== true) { + updateAutoControls('stop'); + } }; - /** * Stops the auto show * * @param preventControlUpdate (boolean) * - if true, auto controls state will not be updated */ - el.stopAuto = function(preventControlUpdate) { + el.stopAuto = function (preventControlUpdate) { // if no interval exists, disregard call - if (!slider.interval) { return; } + if (!slider.interval) { + return; + } // clear the interval clearInterval(slider.interval); slider.interval = null; // if auto controls are displayed and preventControlUpdate is not true - if (slider.settings.autoControls && preventControlUpdate !== true) { updateAutoControls('start'); } + if (slider.settings.autoControls && preventControlUpdate !== true) { + updateAutoControls('start'); + } }; - /** * Returns current slide index (zero-based) */ - el.getCurrentSlide = function() { + el.getCurrentSlide = function () { return slider.active.index; }; - /** * Returns current slide element */ - el.getCurrentSlideElement = function() { + el.getCurrentSlideElement = function () { return slider.children.eq(slider.active.index); }; - /** * Returns a slide element * @param index (int) * - The index (zero-based) of the element you want returned. */ - el.getSlideElement = function(index) { + el.getSlideElement = function (index) { return slider.children.eq(index); }; - /** * Returns number of slides in show */ - el.getSlideCount = function() { + el.getSlideCount = function () { return slider.children.length; }; - /** * Return slider.working variable */ - el.isWorking = function() { + el.isWorking = function () { return slider.working; }; - /** * Update all dynamic slider elements */ - el.redrawSlider = function() { + el.redrawSlider = function () { // resize all children in ratio to new screen size slider.children.add(el.find('.bx-clone')).outerWidth(getSlideWidth()); // adjust the height slider.viewport.css('height', getViewportHeight()); // update the slide position - if (!slider.settings.ticker) { setSlidePosition(); } + if (!slider.settings.ticker) { + setSlidePosition(); + } // if active.last was true before the screen resize, we want // to keep it last no matter what screen size we end on - if (slider.active.last) { slider.active.index = getPagerQty() - 1; } + if (slider.active.last) { + slider.active.index = getPagerQty() - 1; + } // if the active index (page) no longer exists due to the resize, simply set the index as last - if (slider.active.index >= getPagerQty()) { slider.active.last = true; } + if (slider.active.index >= getPagerQty()) { + slider.active.last = true; + } // if a pager is being displayed and a custom pager is not being used, update it if (slider.settings.pager && !slider.settings.pagerCustom) { populatePager(); updatePagerActive(slider.active.index); } - if (slider.settings.ariaHidden) { applyAriaHiddenAttributes(slider.active.index * getMoveBy()); } + if (slider.settings.ariaHidden) { + applyAriaHiddenAttributes(slider.active.index * getMoveBy()); + } }; - /** * Destroy the current instance of the slider (revert everything back to original state) */ - el.destroySlider = function() { + el.destroySlider = function () { // don't do anything if slider has already been destroyed - if (!slider.initialized) { return; } + if (!slider.initialized) { + return; + } slider.initialized = false; $('.bx-clone', this).remove(); - slider.children.each(function() { + slider.children.each(function () { if ($(this).data('origStyle') !== undefined) { $(this).attr('style', $(this).data('origStyle')); - } else { + } + else { $(this).removeAttr('style'); } }); if ($(this).data('origStyle') !== undefined) { this.attr('style', $(this).data('origStyle')); - } else { + } + else { $(this).removeAttr('style'); } $(this).unwrap().unwrap(); - if (slider.controls.el) { slider.controls.el.remove(); } - if (slider.controls.next) { slider.controls.next.remove(); } - if (slider.controls.prev) { slider.controls.prev.remove(); } - if (slider.pagerEl && slider.settings.controls && !slider.settings.pagerCustom) { slider.pagerEl.remove(); } + if (slider.controls.el) { + slider.controls.el.remove(); + } + if (slider.controls.next) { + slider.controls.next.remove(); + } + if (slider.controls.prev) { + slider.controls.prev.remove(); + } + if (slider.pagerEl && slider.settings.controls && !slider.settings.pagerCustom) { + slider.pagerEl.remove(); + } $('.bx-caption', this).remove(); - if (slider.controls.autoEl) { slider.controls.autoEl.remove(); } + if (slider.controls.autoEl) { + slider.controls.autoEl.remove(); + } clearInterval(slider.interval); - if (slider.settings.responsive) { $(window).unbind('resize', resizeWindow); } - if (slider.settings.keyboardEnabled) { $(document).unbind('keydown', keyPress); } + if (slider.settings.responsive) { + $(window).unbind('resize', resizeWindow); + } + if (slider.settings.keyboardEnabled) { + $(document).unbind('keydown', keyPress); + } //remove self reference in data $(this).removeData('bxSlider'); }; - /** * Reload the slider (revert all DOM changes, and re-initialize) */ - el.reloadSlider = function(settings) { - if (settings !== undefined) { options = settings; } + el.reloadSlider = function (settings) { + if (settings !== undefined) { + options = settings; + } el.destroySlider(); init(); //store reference to self in order to access public functions later $(el).data('bxSlider', this); }; - init(); - $(el).data('bxSlider', this); - // returns the current jQuery object return this; }; - })(jQuery); diff --git a/src/less/jquery.bxslider.less b/src/less/jquery.bxslider.less index eae720d4..0c4bb49f 100644 --- a/src/less/jquery.bxslider.less +++ b/src/less/jquery.bxslider.less @@ -1,199 +1,213 @@ /** VARIABLES ===================================*/ + @controls: 'images/controls.png'; -@loader: 'images/bx_loader.gif'; +@loader: 'images/bx_loader.gif'; /** RESET AND LAYOUT ===================================*/ .bx-wrapper { - position: relative; - margin: 0 auto 60px; - padding: 0; - *zoom: 1; - -ms-touch-action: pan-y; - touch-action: pan-y; - img { - max-width: 100%; - display: block; - } + position: relative; + margin: 0 auto 60px; + padding: 0; + *zoom: 1; + -ms-touch-action: pan-y; + touch-action: pan-y; + img { + max-width: 100%; + display: block; + } } .bxslider { - margin: 0; - padding: 0; + margin: 0; + padding: 0; } ul.bxslider { - list-style: none; + list-style: none; } .bx-viewport { - /*fix other elements on the page moving (on Chrome)*/ - -webkit-transform: translatez(0); + /*fix other elements on the page moving (on Chrome)*/ + -webkit-transform: translatez(0); } + /** THEME ===================================*/ .bx-wrapper { - -moz-box-shadow: 0 0 5px #ccc; - -webkit-box-shadow: 0 0 5px #ccc; - box-shadow: 0 0 5px #ccc; - border: 5px solid #fff; - background: #fff; - .bx-pager, - .bx-controls-auto { - position: absolute; - bottom: -30px; - width: 100%; - } +// -moz-box-shadow: 0 0 5px #ccc; +// -webkit-box-shadow: 0 0 5px #ccc; +// box-shadow: 0 0 5px #ccc; +// border: 5px solid #fff; +// background: #fff; + .bx-pager, + .bx-controls-auto { + position: absolute; + bottom: -30px; + width: 100%; + } } + /* LOADER */ + .bx-wrapper .bx-loading { - min-height: 50px; - background: url(@loader) center center no-repeat #fff; - height: 100%; - width: 100%; - position: absolute; - top: 0; - left: 0; - z-index: 2000; + min-height: 50px; + background: url(@loader) center center no-repeat #fff; + height: 100%; + width: 100%; + position: absolute; + top: 0; + left: 0; + z-index: 2000; } + /* PAGER */ + .bx-wrapper { - .bx-pager { - text-align: center; - font-size: .85em; - font-family: Arial; - font-weight: bold; - color: #666; - padding-top: 20px; - &.bx-default-pager a { - background: #666; - text-indent: -9999px; - display: block; - width: 10px; - height: 10px; - margin: 0 5px; - outline: 0; - -moz-border-radius: 5px; - -webkit-border-radius: 5px; - border-radius: 5px; - &:hover, - &.active, - &:focus { - background: #000; - } - } - } - .bx-pager-item, - .bx-controls-auto .bx-controls-auto-item { - display: inline-block; - *zoom: 1; - *display: inline; - } - .bx-pager-item { - font-size: 0; - line-height: 0; - } + .bx-pager { + text-align: center; + font-size: .85em; + font-family: Arial; + font-weight: bold; + color: #666; + padding-top: 20px; + &.bx-default-pager a { + background: #666; + text-indent: -9999px; + display: block; + width: 10px; + height: 10px; + margin: 0 5px; + outline: 0; + -moz-border-radius: 5px; + -webkit-border-radius: 5px; + border-radius: 5px; + &:hover, + &.active, + &:focus { + background: #000; + } + } + } + .bx-pager-item, + .bx-controls-auto .bx-controls-auto-item { + display: inline-block; + *zoom: 1; + *display: inline; + } + .bx-pager-item { + font-size: 0; + line-height: 0; + } } -/* DIRECTION CONTROLS (NEXT / PREV) */ + +/* DIRECTION CONTROLS (NEXT / PREV) */ + .bx-wrapper { - .bx-prev { - left: 10px; - background: url(@controls) no-repeat 0 -32px; - &:hover, - &:focus { - background-position: 0 0; - } - } - .bx-next { - right: 10px; - background: url(@controls) no-repeat -43px -32px; - &:hover, - &:focus { - background-position: -43px 0; - } - } - .bx-controls-direction a { - position: absolute; - top: 50%; - margin-top: -16px; - outline: 0; - width: 32px; - height: 32px; - text-indent: -9999px; - z-index: 9999; - &.disabled { - display: none; - } - } + .bx-prev { + left: 10px; + background: url(@controls) no-repeat 0 -32px; + &:hover, + &:focus { + background-position: 0 0; + } + } + .bx-next { + right: 10px; + background: url(@controls) no-repeat -43px -32px; + &:hover, + &:focus { + background-position: -43px 0; + } + } + .bx-controls-direction a { + position: absolute; + top: 50%; + margin-top: -16px; + outline: 0; + width: 32px; + height: 32px; + text-indent: -9999px; + z-index: 9999; + &.disabled { + display: none; + } + } } - + + /* AUTO CONTROLS (START / STOP) */ + .bx-wrapper .bx-controls-auto { - text-align: center; - .bx-start { - display: block; - text-indent: -9999px; - width: 10px; - height: 11px; - outline: 0; - background: url(@controls) -86px -11px no-repeat; - margin: 0 3px; - &:hover, - &.active, - &:focus { - background-position: -86px 0; - } - } - .bx-stop { - display: block; - text-indent: -9999px; - width: 9px; - height: 11px; - outline: 0; - background: url(@controls) -86px -44px no-repeat; - margin: 0 3px; - &:hover, - &.active, - &:focus { - background-position: -86px -33px; - } - } + text-align: center; + .bx-start { + display: block; + text-indent: -9999px; + width: 10px; + height: 11px; + outline: 0; + background: url(@controls) -86px -11px no-repeat; + margin: 0 3px; + &:hover, + &.active, + &:focus { + background-position: -86px 0; + } + } + .bx-stop { + display: block; + text-indent: -9999px; + width: 9px; + height: 11px; + outline: 0; + background: url(@controls) -86px -44px no-repeat; + margin: 0 3px; + &:hover, + &.active, + &:focus { + background-position: -86px -33px; + } + } } + /* PAGER WITH AUTO-CONTROLS HYBRID LAYOUT */ + .bx-wrapper { - .bx-controls.bx-has-controls-auto.bx-has-pager { - .bx-pager { - text-align: left; - width: 80%; - } - .bx-controls-auto { - right: 0; - width: 35px; - } - } + .bx-controls.bx-has-controls-auto.bx-has-pager { + .bx-pager { + text-align: left; + width: 80%; + } + .bx-controls-auto { + right: 0; + width: 35px; + } + } } + /* IMAGE CAPTIONS */ + .bx-wrapper .bx-caption { - position: absolute; - bottom: 0; - left: 0; - background: #666; - background: rgba(80, 80, 80, 0.75); - width: 100%; - span { - color: #fff; - font-family: Arial; - display: block; - font-size: .85em; - padding: 10px; - } + position: absolute; + bottom: 0; + left: 0; + background: #666; + background: rgba(80, 80, 80, 0.75); + width: 100%; + span { + color: #fff; + font-family: Arial; + display: block; + font-size: .85em; + padding: 10px; + } } diff --git a/src/sass/_animate.scss b/src/sass/_animate.scss new file mode 100644 index 00000000..76cbab6d --- /dev/null +++ b/src/sass/_animate.scss @@ -0,0 +1,98 @@ +//////////////////////////////////////////////////////////// +// Import everything to generate your animate sass module // +//////////////////////////////////////////////////////////// +@import "helpers/mixins", + "helpers/settings", + "helpers/base"; + +// ATTENTION +@import "animations/attention-seekers/bounce", + "animations/attention-seekers/flash", + "animations/attention-seekers/pulse", + "animations/attention-seekers/shake", + "animations/attention-seekers/swing", + "animations/attention-seekers/wiggle", + "animations/attention-seekers/wobble", + "animations/attention-seekers/tada"; + +// BOUNCE +@import "animations/bounce-enter/bounceIn", + "animations/bounce-enter/bounceInDown", + "animations/bounce-enter/bounceInLeft", + "animations/bounce-enter/bounceInRight", + "animations/bounce-enter/bounceInUp", + "animations/bounce-exit/bounceOut", + "animations/bounce-exit/bounceOutDown", + "animations/bounce-exit/bounceOutLeft", + "animations/bounce-exit/bounceOutRight", + "animations/bounce-exit/bounceOutUp"; + +// FADE +@import "animations/fade-enter/fadeIn", + "animations/fade-enter/fadeInDown", + "animations/fade-enter/fadeInDownBig", + "animations/fade-enter/fadeInLeft", + "animations/fade-enter/fadeInLeftBig", + "animations/fade-enter/fadeInRight", + "animations/fade-enter/fadeInRightBig", + "animations/fade-enter/fadeInUp", + "animations/fade-enter/fadeInUpBig", + "animations/fade-exit/fadeOut", + "animations/fade-exit/fadeOutDown", + "animations/fade-exit/fadeOutDownBig", + "animations/fade-exit/fadeOutLeft", + "animations/fade-exit/fadeOutLeftBig", + "animations/fade-exit/fadeOutRight", + "animations/fade-exit/fadeOutRightBig", + "animations/fade-exit/fadeOutUp", + "animations/fade-exit/fadeOutUpBig"; + +// FLIP +@import "animations/flippers/flip", + "animations/flippers/flipInX", + "animations/flippers/flipInY", + "animations/flippers/flipOutX", + "animations/flippers/flipOutY"; + +// LIGHTSPEED +@import "animations/lightspeed/lightSpeedIn", + "animations/lightspeed/lightSpeedOut"; + +// ROTATE +@import "animations/rotate-enter/rotateIn", + "animations/rotate-enter/rotateInDownLeft", + "animations/rotate-enter/rotateInDownRight", + "animations/rotate-enter/rotateInUpLeft", + "animations/rotate-enter/rotateInUpRight", + "animations/rotate-exit/rotateOut", + "animations/rotate-exit/rotateOutDownLeft", + "animations/rotate-exit/rotateOutDownRight", + "animations/rotate-exit/rotateOutUpLeft", + "animations/rotate-exit/rotateOutUpRight"; + +// SLIDE +@import "animations/slide-enter/slideInDown", + "animations/slide-enter/slideInLeft", + "animations/slide-enter/slideInRight", + "animations/slide-enter/slideInUp", + "animations/slide-exit/slideOutDown", + "animations/slide-exit/slideOutLeft", + "animations/slide-exit/slideOutRight", + "animations/slide-exit/slideOutUp"; + +// SPECIAL +@import "animations/special/hinge", + "animations/special/rollIn", + "animations/special/rollOut"; + +// ZOOM +@import "animations/zoom-enter/zoomIn", + "animations/zoom-enter/zoomInDown", + "animations/zoom-enter/zoomInLeft", + "animations/zoom-enter/zoomInRight", + "animations/zoom-enter/zoomInUp", + "animations/zoom-exit/zoomOut", + "animations/zoom-exit/zoomOutDown", + "animations/zoom-exit/zoomOutLeft", + "animations/zoom-exit/zoomOutRight", + "animations/zoom-exit/zoomOutUp"; diff --git a/src/sass/animate_custom.scss b/src/sass/animate_custom.scss new file mode 100644 index 00000000..669e0af8 --- /dev/null +++ b/src/sass/animate_custom.scss @@ -0,0 +1,112 @@ +$use-all : false !default; // all animations status +$use-fade : true !default; // all fades +$use-bounce : true !default; // all bounces +$use-rotate : true !default; // all rotates +$use-slide : true !default; // all slide animations +$use-flipers : true !default; // all flip animations +$use-light-speed : true !default; // all light speed animations +$use-attention-seekers : false !default; // all attention seeker animations +$use-special : true !default; // all special animations +$use-zoom : true !default; // all zoom animations +$use-flip : false !default; + +//////////////////////////////////////////////////////////// +// Import everything to generate your animate sass module // +//////////////////////////////////////////////////////////// +@import "helpers/mixins", + "helpers/settings", + "helpers/base", + "helpers/delay"; + + +// ATTENTION +@import "animations/attention-seekers/bounce", + "animations/attention-seekers/flash", + "animations/attention-seekers/pulse", + "animations/attention-seekers/shake", + "animations/attention-seekers/swing", + "animations/attention-seekers/wiggle", + "animations/attention-seekers/wobble", + "animations/attention-seekers/tada"; + +// BOUNCE +@import "animations/bounce-enter/bounceIn", + "animations/bounce-enter/bounceInDown", + "animations/bounce-enter/bounceInLeft", + "animations/bounce-enter/bounceInRight", + "animations/bounce-enter/bounceInUp", + "animations/bounce-exit/bounceOut", + "animations/bounce-exit/bounceOutDown", + "animations/bounce-exit/bounceOutLeft", + "animations/bounce-exit/bounceOutRight", + "animations/bounce-exit/bounceOutUp"; + +// FADE +@import "animations/fade-enter/fadeIn", + "animations/fade-enter/fadeInDown", + "animations/fade-enter/fadeInDownBig", + "animations/fade-enter/fadeInLeft", + "animations/fade-enter/fadeInLeftBig", + "animations/fade-enter/fadeInRight", + "animations/fade-enter/fadeInRightBig", + "animations/fade-enter/fadeInUp", + "animations/fade-enter/fadeInUpBig", + "animations/fade-exit/fadeOut", + "animations/fade-exit/fadeOutDown", + "animations/fade-exit/fadeOutDownBig", + "animations/fade-exit/fadeOutLeft", + "animations/fade-exit/fadeOutLeftBig", + "animations/fade-exit/fadeOutRight", + "animations/fade-exit/fadeOutRightBig", + "animations/fade-exit/fadeOutUp", + "animations/fade-exit/fadeOutUpBig"; + +// FLIP +@import "animations/flippers/flip", + "animations/flippers/flipInX", + "animations/flippers/flipInY", + "animations/flippers/flipOutX", + "animations/flippers/flipOutY"; + +// LIGHTSPEED +@import "animations/lightspeed/lightSpeedIn", + "animations/lightspeed/lightSpeedOut"; + +// ROTATE +@import "animations/rotate-enter/rotateIn", + "animations/rotate-enter/rotateInDownLeft", + "animations/rotate-enter/rotateInDownRight", + "animations/rotate-enter/rotateInUpLeft", + "animations/rotate-enter/rotateInUpRight", + "animations/rotate-exit/rotateOut", + "animations/rotate-exit/rotateOutDownLeft", + "animations/rotate-exit/rotateOutDownRight", + "animations/rotate-exit/rotateOutUpLeft", + "animations/rotate-exit/rotateOutUpRight"; + +// SLIDE +@import "animations/slide-enter/slideInDown", + "animations/slide-enter/slideInLeft", + "animations/slide-enter/slideInRight", + "animations/slide-enter/slideInUp", + "animations/slide-exit/slideOutDown", + "animations/slide-exit/slideOutLeft", + "animations/slide-exit/slideOutRight", + "animations/slide-exit/slideOutUp"; + +// SPECIAL +@import "animations/special/hinge", + "animations/special/rollIn", + "animations/special/rollOut"; + +// ZOOM +@import "animations/zoom-enter/zoomIn", + "animations/zoom-enter/zoomInDown", + "animations/zoom-enter/zoomInLeft", + "animations/zoom-enter/zoomInRight", + "animations/zoom-enter/zoomInUp", + "animations/zoom-exit/zoomOut", + "animations/zoom-exit/zoomOutDown", + "animations/zoom-exit/zoomOutLeft", + "animations/zoom-exit/zoomOutRight", + "animations/zoom-exit/zoomOutUp"; diff --git a/src/sass/animations/attention-seekers/_bounce.scss b/src/sass/animations/attention-seekers/_bounce.scss new file mode 100644 index 00000000..e28dbc54 --- /dev/null +++ b/src/sass/animations/attention-seekers/_bounce.scss @@ -0,0 +1,19 @@ +@if $use-bounce == true { + + @-webkit-keyframes bounce { + 0%, 20%, 50%, 80%, 100% {-webkit-transform: translateY(0);} + 40% {-webkit-transform: translateY(-$base-distance * 3);} + 60% {-webkit-transform: translateY(-$base-distance * 1.5);} + } + + @keyframes bounce { + 0%, 20%, 50%, 80%, 100% {transform: translateY(0);} + 40% {transform: translateY(-$base-distance * 3);} + 60% {transform: translateY(-$base-distance * 1.5);} + } + + .bounce { + @include animate-prefixer(animation-name, bounce); + } + +} diff --git a/src/sass/animations/attention-seekers/_flash.scss b/src/sass/animations/attention-seekers/_flash.scss new file mode 100644 index 00000000..282e3b3f --- /dev/null +++ b/src/sass/animations/attention-seekers/_flash.scss @@ -0,0 +1,12 @@ +@if $use-flash == true { + + @include animate-keyframe(flash) { + 0%, 50%, 100% {opacity: 1;} + 25%, 75% {opacity: 0;} + } + + .flash { + @include animate-prefixer(animation-name, flash); + } + +} diff --git a/src/sass/animations/attention-seekers/_pulse.scss b/src/sass/animations/attention-seekers/_pulse.scss new file mode 100644 index 00000000..1cf5b564 --- /dev/null +++ b/src/sass/animations/attention-seekers/_pulse.scss @@ -0,0 +1,21 @@ +@if $use-pulse == true { + + // originally authored by Nick Pettit - https://github.com/nickpettit/glide + + @-webkit-keyframes pulse { + 0% { -webkit-transform: scale(1); } + 50% { -webkit-transform: scale(1.1); } + 100% { -webkit-transform: scale(1); } + } + + @keyframes pulse { + 0% { transform: scale(1); } + 50% { transform: scale(1.1); } + 100% { transform: scale(1); } + } + + .pulse { + @include animate-prefixer(animation-name, pulse); + } + +} diff --git a/src/sass/animations/attention-seekers/_shake.scss b/src/sass/animations/attention-seekers/_shake.scss new file mode 100644 index 00000000..663ac66e --- /dev/null +++ b/src/sass/animations/attention-seekers/_shake.scss @@ -0,0 +1,18 @@ +@if $use-shake == true { + + @-webkit-keyframes shake { + 0%, 100% {-webkit-transform: translateX(0);} + 10%, 30%, 50%, 70%, 90% {-webkit-transform: translateX(-$base-distance);} + 20%, 40%, 60%, 80% {-webkit-transform: translateX($base-distance);} + } + + @keyframes shake { + 0%, 100% {transform: translateX(0);} + 10%, 30%, 50%, 70%, 90% {transform: translateX(-$base-distance);} + 20%, 40%, 60%, 80% {transform: translateX($base-distance);} + } + + .shake { + @include animate-prefixer(animation-name, shake); + } +} diff --git a/src/sass/animations/attention-seekers/_swing.scss b/src/sass/animations/attention-seekers/_swing.scss new file mode 100644 index 00000000..ab568b6e --- /dev/null +++ b/src/sass/animations/attention-seekers/_swing.scss @@ -0,0 +1,25 @@ +@if $use-swing == true { + + @-webkit-keyframes swing { + 20%, 40%, 60%, 80%, 100% { -webkit-transform-origin: $base-origin; } + 20% { -webkit-transform: rotate(15deg); } + 40% { -webkit-transform: rotate(-10deg); } + 60% { -webkit-transform: rotate(5deg); } + 80% { -webkit-transform: rotate(-5deg); } + 100% { -webkit-transform: rotate(0deg); } + } + + @keyframes swing { + 20% { transform: rotate(15deg); } + 40% { transform: rotate(-10deg); } + 60% { transform: rotate(5deg); } + 80% { transform: rotate(-5deg); } + 100% { transform: rotate(0deg); } + } + + .swing { + @include animate-prefixer(transform-origin, $base-origin); + @include animate-prefixer(animation-name, swing); + } + +} diff --git a/src/sass/animations/attention-seekers/_tada.scss b/src/sass/animations/attention-seekers/_tada.scss new file mode 100644 index 00000000..26dda745 --- /dev/null +++ b/src/sass/animations/attention-seekers/_tada.scss @@ -0,0 +1,23 @@ +@if $use-tada == true { + + @-webkit-keyframes tada { + 0% {-webkit-transform: scale(1);} + 10%, 20% {-webkit-transform: scale(0.9) rotate(-3deg);} + 30%, 50%, 70%, 90% {-webkit-transform: scale(1.1) rotate(3deg);} + 40%, 60%, 80% {-webkit-transform: scale(1.1) rotate(-3deg);} + 100% {-webkit-transform: scale(1) rotate(0);} + } + + @keyframes tada { + 0% {transform: scale(1);} + 10%, 20% {transform: scale(0.9) rotate(-3deg);} + 30%, 50%, 70%, 90% {transform: scale(1.1) rotate(3deg);} + 40%, 60%, 80% {transform: scale(1.1) rotate(-3deg);} + 100% {transform: scale(1) rotate(0);} + } + + .tada { + @include animate-prefixer(animation-name, tada); + } + +} diff --git a/src/sass/animations/attention-seekers/_wiggle.scss b/src/sass/animations/attention-seekers/_wiggle.scss new file mode 100644 index 00000000..0c27245d --- /dev/null +++ b/src/sass/animations/attention-seekers/_wiggle.scss @@ -0,0 +1,36 @@ +@if $use-wiggle == true { + + @-webkit-keyframes wiggle { + 0% { -webkit-transform: skewX(9deg); } + 10% { -webkit-transform: skewX(-8deg); } + 20% { -webkit-transform: skewX(7deg); } + 30% { -webkit-transform: skewX(-6deg); } + 40% { -webkit-transform: skewX(5deg); } + 50% { -webkit-transform: skewX(-4deg); } + 60% { -webkit-transform: skewX(3deg); } + 70% { -webkit-transform: skewX(-2deg); } + 80% { -webkit-transform: skewX(1deg); } + 90% { -webkit-transform: skewX(0deg); } + 100% { -webkit-transform: skewX(0deg); } + } + + @keyframes wiggle { + 0% { transform: skewX(9deg); } + 10% { transform: skewX(-8deg); } + 20% { transform: skewX(7deg); } + 30% { transform: skewX(-6deg); } + 40% { transform: skewX(5deg); } + 50% { transform: skewX(-4deg); } + 60% { transform: skewX(3deg); } + 70% { transform: skewX(-2deg); } + 80% { transform: skewX(1deg); } + 90% { transform: skewX(0deg); } + 100% { transform: skewX(0deg); } + } + + .wiggle { + @include animate-prefixer(animation-name, wiggle); + @include animate-prefixer(animation-timing-function, $base-timing-function-in); + } + +} diff --git a/src/sass/animations/attention-seekers/_wobble.scss b/src/sass/animations/attention-seekers/_wobble.scss new file mode 100644 index 00000000..5a170011 --- /dev/null +++ b/src/sass/animations/attention-seekers/_wobble.scss @@ -0,0 +1,29 @@ +@if $use-wobble == true { + + // originally authored by Nick Pettit - https://github.com/nickpettit/glide + + @-webkit-keyframes wobble { + 0% { -webkit-transform: translateX(0%); } + 15% { -webkit-transform: translateX(-25%) rotate(-5deg); } + 30% { -webkit-transform: translateX(20%) rotate(3deg); } + 45% { -webkit-transform: translateX(-15%) rotate(-3deg); } + 60% { -webkit-transform: translateX(10%) rotate(2deg); } + 75% { -webkit-transform: translateX(-5%) rotate(-1deg); } + 100% { -webkit-transform: translateX(0%); } + } + + @keyframes wobble { + 0% { transform: translateX(0%); } + 15% { transform: translateX(-25%) rotate(-5deg); } + 30% { transform: translateX(20%) rotate(3deg); } + 45% { transform: translateX(-15%) rotate(-3deg); } + 60% { transform: translateX(10%) rotate(2deg); } + 75% { transform: translateX(-5%) rotate(-1deg); } + 100% { transform: translateX(0%); } + } + + .wobble { + @include animate-prefixer(animation-name, wobble); + } + +} diff --git a/src/sass/animations/bounce-enter/_bounceIn.scss b/src/sass/animations/bounce-enter/_bounceIn.scss new file mode 100644 index 00000000..260c677c --- /dev/null +++ b/src/sass/animations/bounce-enter/_bounceIn.scss @@ -0,0 +1,47 @@ +@if $use-bounceIn == true { + + @-webkit-keyframes bounceIn { + 0% { + opacity: 0; + -webkit-transform: scale(0.3); + } + + 50% { + opacity: 1; + -webkit-transform: scale(1.05); + } + + 70% { + -webkit-transform: scale(0.9); + } + + 100% { + -webkit-transform: scale(1); + } + } + + @keyframes bounceIn { + 0% { + opacity: 0; + transform: scale(0.3); + } + + 50% { + opacity: 1; + transform: scale(1.05); + } + + 70% { + transform: scale(0.9); + } + + 100% { + transform: scale(1); + } + } + + .in .bounceIn { + @include animate-prefixer(animation-name, bounceIn); + } + +} diff --git a/src/sass/animations/bounce-enter/_bounceInDown.scss b/src/sass/animations/bounce-enter/_bounceInDown.scss new file mode 100644 index 00000000..eadb999d --- /dev/null +++ b/src/sass/animations/bounce-enter/_bounceInDown.scss @@ -0,0 +1,47 @@ +@if $use-bounceInDown == true { + + @-webkit-keyframes bounceInDown { + 0% { + opacity: 0; + -webkit-transform: translateY(-$base-distance-big * 2); + } + + 60% { + opacity: 1; + -webkit-transform: translateY($base-distance * 3); + } + + 80% { + -webkit-transform: translateY(-$base-distance); + } + + 100% { + -webkit-transform: translateY(0); + } + } + + @keyframes bounceInDown { + 0% { + opacity: 0; + transform: translateY(-$base-distance-big * 2); + } + + 60% { + opacity: 1; + transform: translateY($base-distance * 3); + } + + 80% { + transform: translateY(-$base-distance); + } + + 100% { + transform: translateY(0); + } + } + + .in .bounceInDown { + @include animate-prefixer(animation-name, bounceInDown); + } + +} diff --git a/src/sass/animations/bounce-enter/_bounceInLeft.scss b/src/sass/animations/bounce-enter/_bounceInLeft.scss new file mode 100644 index 00000000..0dcd160e --- /dev/null +++ b/src/sass/animations/bounce-enter/_bounceInLeft.scss @@ -0,0 +1,47 @@ +@if $use-bounceInLeft == true { + + @-webkit-keyframes bounceInLeft { + 0% { + opacity: 0; + -webkit-transform: translateX(-$base-distance-big * 2); + } + + 60% { + opacity: 1; + -webkit-transform: translateX($base-distance * 3); + } + + 80% { + -webkit-transform: translateX(-$base-distance); + } + + 100% { + -webkit-transform: translateX(0); + } + } + + @keyframes bounceInLeft { + 0% { + opacity: 0; + transform: translateX(-$base-distance-big * 2); + } + + 60% { + opacity: 1; + transform: translateX($base-distance * 3); + } + + 80% { + transform: translateX(-$base-distance); + } + + 100% { + transform: translateX(0); + } + } + + .in .bounceInLeft { + @include animate-prefixer(animation-name, bounceInLeft); + } + +} diff --git a/src/sass/animations/bounce-enter/_bounceInRight.scss b/src/sass/animations/bounce-enter/_bounceInRight.scss new file mode 100644 index 00000000..bc1a9abf --- /dev/null +++ b/src/sass/animations/bounce-enter/_bounceInRight.scss @@ -0,0 +1,47 @@ +@if $use-bounceInRight == true { + + @-webkit-keyframes bounceInRight { + 0% { + opacity: 0; + -webkit-transform: translateX($base-distance-big * 2); + } + + 60% { + opacity: 1; + -webkit-transform: translateX(-$base-distance * 3); + } + + 80% { + -webkit-transform: translateX($base-distance); + } + + 100% { + -webkit-transform: translateX(0); + } + } + + @keyframes bounceInRight { + 0% { + opacity: 0; + transform: translateX($base-distance-big * 2); + } + + 60% { + opacity: 1; + transform: translateX(-$base-distance * 3); + } + + 80% { + transform: translateX($base-distance); + } + + 100% { + transform: translateX(0); + } + } + + .in .bounceInRight { + @include animate-prefixer(animation-name, bounceInRight); + } + +} diff --git a/src/sass/animations/bounce-enter/_bounceInUp.scss b/src/sass/animations/bounce-enter/_bounceInUp.scss new file mode 100644 index 00000000..812cb2cb --- /dev/null +++ b/src/sass/animations/bounce-enter/_bounceInUp.scss @@ -0,0 +1,47 @@ +@if $use-bounceInUp == true { + + @-webkit-keyframes bounceInUp { + 0% { + opacity: 0; + -webkit-transform: translateY($base-distance-big * 2); + } + + 60% { + opacity: 1; + -webkit-transform: translateY(-$base-distance * 3); + } + + 80% { + -webkit-transform: translateY($base-distance); + } + + 100% { + -webkit-transform: translateY(0); + } + } + + @keyframes bounceInUp { + 0% { + opacity: 0; + transform: translateY($base-distance-big * 2); + } + + 60% { + opacity: 1; + transform: translateY(-$base-distance * 3); + } + + 80% { + transform: translateY($base-distance); + } + + 100% { + transform: translateY(0); + } + } + + .in .bounceInUp { + @include animate-prefixer(animation-name, bounceInUp); + } + +} diff --git a/src/sass/animations/bounce-exit/_bounceOut.scss b/src/sass/animations/bounce-exit/_bounceOut.scss new file mode 100644 index 00000000..df74ee1b --- /dev/null +++ b/src/sass/animations/bounce-exit/_bounceOut.scss @@ -0,0 +1,47 @@ +@if $use-bounceOut == true { + + @-webkit-keyframes bounceOut { + 0% { + -webkit-transform: scale(1); + } + + 25% { + -webkit-transform: scale(0.95); + } + + 50% { + opacity: 1; + -webkit-transform: scale(1.1); + } + + 100% { + opacity: 0; + -webkit-transform: scale(0.3); + } + } + + @keyframes bounceOut { + 0% { + transform: scale(1); + } + + 25% { + transform: scale(0.95); + } + + 50% { + opacity: 1; + transform: scale(1.1); + } + + 100% { + opacity: 0; + transform: scale(0.3); + } + } + + .out .bounceOut { + @include animate-prefixer(animation-name, bounceOut); + } + +} diff --git a/src/sass/animations/bounce-exit/_bounceOutDown.scss b/src/sass/animations/bounce-exit/_bounceOutDown.scss new file mode 100644 index 00000000..1bf1bfe8 --- /dev/null +++ b/src/sass/animations/bounce-exit/_bounceOutDown.scss @@ -0,0 +1,39 @@ +@if $use-bounceOutDown == true { + + @-webkit-keyframes bounceOutDown { + 0% { + -webkit-transform: translateY(0); + } + + 20% { + opacity: 1; + -webkit-transform: translateY(-$base-distance * 2); + } + + 100% { + opacity: 0; + -webkit-transform: translateY($base-distance-big * 2); + } + } + + @keyframes bounceOutDown { + 0% { + transform: translateY(0); + } + + 20% { + opacity: 1; + transform: translateY(-$base-distance * 2); + } + + 100% { + opacity: 0; + transform: translateY($base-distance-big * 2); + } + } + + .out .bounceOutDown { + @include animate-prefixer(animation-name, bounceOutDown); + } + +} diff --git a/src/sass/animations/bounce-exit/_bounceOutLeft.scss b/src/sass/animations/bounce-exit/_bounceOutLeft.scss new file mode 100644 index 00000000..f53c6730 --- /dev/null +++ b/src/sass/animations/bounce-exit/_bounceOutLeft.scss @@ -0,0 +1,39 @@ +@if $use-bounceOutLeft == true { + + @-webkit-keyframes bounceOutLeft { + 0% { + -webkit-transform: translateX(0); + } + + 20% { + opacity: 1; + -webkit-transform: translateX($base-distance * 2); + } + + 100% { + opacity: 0; + -webkit-transform: translateX(-$base-distance-big * 2); + } + } + + @keyframes bounceOutLeft { + 0% { + transform: translateX(0); + } + + 20% { + opacity: 1; + transform: translateX($base-distance * 2); + } + + 100% { + opacity: 0; + transform: translateX(-$base-distance-big * 2); + } + } + + .out .bounceOutLeft { + @include animate-prefixer(animation-name, bounceOutLeft); + } + +} diff --git a/src/sass/animations/bounce-exit/_bounceOutRight.scss b/src/sass/animations/bounce-exit/_bounceOutRight.scss new file mode 100644 index 00000000..e5c7554e --- /dev/null +++ b/src/sass/animations/bounce-exit/_bounceOutRight.scss @@ -0,0 +1,39 @@ +@if $use-bounceOutRight == true { + + @-webkit-keyframes bounceOutRight { + 0% { + -webkit-transform: translateX(0); + } + + 20% { + opacity: 1; + -webkit-transform: translateX(-$base-distance * 2); + } + + 100% { + opacity: 0; + -webkit-transform: translateX($base-distance-big * 2); + } + } + + @keyframes bounceOutRight { + 0% { + transform: translateX(0); + } + + 20% { + opacity: 1; + transform: translateX(-$base-distance * 2); + } + + 100% { + opacity: 0; + transform: translateX($base-distance-big * 2); + } + } + + .out .bounceOutRight { + @include animate-prefixer(animation-name, bounceOutRight); + } + +} diff --git a/src/sass/animations/bounce-exit/_bounceOutUp.scss b/src/sass/animations/bounce-exit/_bounceOutUp.scss new file mode 100644 index 00000000..fced582b --- /dev/null +++ b/src/sass/animations/bounce-exit/_bounceOutUp.scss @@ -0,0 +1,39 @@ +@if $use-bounceOutUp == true { + + @-webkit-keyframes bounceOutUp { + 0% { + -webkit-transform: translateY(0); + } + + 20% { + opacity: 1; + -webkit-transform: translateY($base-distance * 2); + } + + 100% { + opacity: 0; + -webkit-transform: translateY(-$base-distance-big * 2); + } + } + + @keyframes bounceOutUp { + 0% { + transform: translateY(0); + } + + 20% { + opacity: 1; + transform: translateY($base-distance * 2); + } + + 100% { + opacity: 0; + transform: translateY(-$base-distance-big * 2); + } + } + + .out .bounceOutUp { + @include animate-prefixer(animation-name, bounceOutUp); + } + +} diff --git a/src/sass/animations/fade-enter/_fadeIn.scss b/src/sass/animations/fade-enter/_fadeIn.scss new file mode 100644 index 00000000..89b3e302 --- /dev/null +++ b/src/sass/animations/fade-enter/_fadeIn.scss @@ -0,0 +1,12 @@ +@if $use-fadeIn == true { + + @include animate-keyframe(fadeIn) { + 0% {opacity: 0;} + 100% {opacity: 1;} + } + + .in .fadeIn { + @include animate-prefixer(animation-name, fadeIn); + } + +} diff --git a/src/sass/animations/fade-enter/_fadeInDown.scss b/src/sass/animations/fade-enter/_fadeInDown.scss new file mode 100644 index 00000000..25146c9b --- /dev/null +++ b/src/sass/animations/fade-enter/_fadeInDown.scss @@ -0,0 +1,31 @@ +@if $use-fadeInDown == true { + + @-webkit-keyframes fadeInDown { + 0% { + opacity: 0; + -webkit-transform: translateY(-$base-distance * 2); + } + + 100% { + opacity: 1; + -webkit-transform: translateY(0); + } + } + + @keyframes fadeInDown { + 0% { + opacity: 0; + transform: translateY(-$base-distance * 2); + } + + 100% { + opacity: 1; + transform: translateY(0); + } + } + + .in .fadeInDown { + @include animate-prefixer(animation-name, fadeInDown); + } + +} diff --git a/src/sass/animations/fade-enter/_fadeInDownBig.scss b/src/sass/animations/fade-enter/_fadeInDownBig.scss new file mode 100644 index 00000000..62bd4c07 --- /dev/null +++ b/src/sass/animations/fade-enter/_fadeInDownBig.scss @@ -0,0 +1,30 @@ +@if $use-fadeInDownBig == true { + + @-webkit-keyframes fadeInDownBig { + 0% { + opacity: 0; + -webkit-transform: translateY(-$base-distance-big * 2); + } + + 100% { + opacity: 1; + -webkit-transform: translateY(0); + } + } + + @keyframes fadeInDownBig { + 0% { + opacity: 0; + transform: translateY(-$base-distance-big * 2); + } + + 100% { + opacity: 1; + transform: translateY(0); + } + } + + .in .fadeInDownBig { + @include animate-prefixer(animation-name, fadeInDownBig); + } +} diff --git a/src/sass/animations/fade-enter/_fadeInLeft.scss b/src/sass/animations/fade-enter/_fadeInLeft.scss new file mode 100644 index 00000000..1e3aad38 --- /dev/null +++ b/src/sass/animations/fade-enter/_fadeInLeft.scss @@ -0,0 +1,31 @@ +@if $use-fadeInLeft == true { + + @-webkit-keyframes fadeInLeft { + 0% { + opacity: 0; + -webkit-transform: translateX(-$base-distance * 2); + } + + 100% { + opacity: 1; + -webkit-transform: translateX(0); + } + } + + @keyframes fadeInLeft { + 0% { + opacity: 0; + transform: translateX(-$base-distance * 2); + } + + 100% { + opacity: 1; + transform: translateX(0); + } + } + + .in .fadeInLeft { + @include animate-prefixer(animation-name, fadeInLeft); + } + +} diff --git a/src/sass/animations/fade-enter/_fadeInLeftBig.scss b/src/sass/animations/fade-enter/_fadeInLeftBig.scss new file mode 100644 index 00000000..64033d79 --- /dev/null +++ b/src/sass/animations/fade-enter/_fadeInLeftBig.scss @@ -0,0 +1,31 @@ +@if $use-fadeInLeftBig == true { + + @-webkit-keyframes fadeInLeftBig { + 0% { + opacity: 0; + -webkit-transform: translateX(-$base-distance-big * 2); + } + + 100% { + opacity: 1; + -webkit-transform: translateX(0); + } + } + + @keyframes fadeInLeftBig { + 0% { + opacity: 0; + transform: translateX(-$base-distance-big * 2); + } + + 100% { + opacity: 1; + transform: translateX(0); + } + } + + .in .fadeInLeftBig { + @include animate-prefixer(animation-name, fadeInLeftBig); + } + +} diff --git a/src/sass/animations/fade-enter/_fadeInRight.scss b/src/sass/animations/fade-enter/_fadeInRight.scss new file mode 100644 index 00000000..176acb7d --- /dev/null +++ b/src/sass/animations/fade-enter/_fadeInRight.scss @@ -0,0 +1,30 @@ +@if $use-fadeInRight == true { + + @-webkit-keyframes fadeInRight { + 0% { + opacity: 0; + -webkit-transform: translateX($base-distance * 2); + } + + 100% { + opacity: 1; + -webkit-transform: translateX(0); + } + } + + @keyframes fadeInRight { + 0% { + opacity: 0; + transform: translateX($base-distance * 2); + } + + 100% { + opacity: 1; + transform: translateX(0); + } + } + + .in .fadeInRight { + @include animate-prefixer(animation-name, fadeInRight); + } +} diff --git a/src/sass/animations/fade-enter/_fadeInRightBig.scss b/src/sass/animations/fade-enter/_fadeInRightBig.scss new file mode 100644 index 00000000..c7bc9b25 --- /dev/null +++ b/src/sass/animations/fade-enter/_fadeInRightBig.scss @@ -0,0 +1,30 @@ +@if $use-fadeInRightBig == true { + + @-webkit-keyframes fadeInRightBig { + 0% { + opacity: 0; + -webkit-transform: translateX($base-distance-big * 2); + } + + 100% { + opacity: 1; + -webkit-transform: translateX(0); + } + } + + @keyframes fadeInRightBig { + 0% { + opacity: 0; + transform: translateX($base-distance-big * 2); + } + + 100% { + opacity: 1; + transform: translateX(0); + } + } + + .in .fadeInRightBig { + @include animate-prefixer(animation-name, fadeInRightBig); + } +} diff --git a/src/sass/animations/fade-enter/_fadeInUp.scss b/src/sass/animations/fade-enter/_fadeInUp.scss new file mode 100644 index 00000000..c19e9e9a --- /dev/null +++ b/src/sass/animations/fade-enter/_fadeInUp.scss @@ -0,0 +1,31 @@ +@if $use-fadeInUp == true { + + @-webkit-keyframes fadeInUp { + 0% { + opacity: 0; + -webkit-transform: translateY($base-distance * 2); + } + + 100% { + opacity: 1; + -webkit-transform: translateY(0); + } + } + + @keyframes fadeInUp { + 0% { + opacity: 0; + transform: translateY($base-distance * 2); + } + + 100% { + opacity: 1; + transform: translateY(0); + } + } + + .in .fadeInUp { + @include animate-prefixer(animation-name, fadeInUp); + } + +} diff --git a/src/sass/animations/fade-enter/_fadeInUpBig.scss b/src/sass/animations/fade-enter/_fadeInUpBig.scss new file mode 100644 index 00000000..eb770496 --- /dev/null +++ b/src/sass/animations/fade-enter/_fadeInUpBig.scss @@ -0,0 +1,31 @@ +@if $use-fadeInUpBig == true { + + @-webkit-keyframes fadeInUpBig { + 0% { + opacity: 0; + -webkit-transform: translateY($base-distance-big * 2); + } + + 100% { + opacity: 1; + -webkit-transform: translateY(0); + } + } + + @keyframes fadeInUpBig { + 0% { + opacity: 0; + transform: translateY($base-distance-big * 2); + } + + 100% { + opacity: 1; + transform: translateY(0); + } + } + + .in .fadeInUpBig { + @include animate-prefixer(animation-name, fadeInUpBig); + } + +} diff --git a/src/sass/animations/fade-exit/_fadeOut.scss b/src/sass/animations/fade-exit/_fadeOut.scss new file mode 100644 index 00000000..a577b6c4 --- /dev/null +++ b/src/sass/animations/fade-exit/_fadeOut.scss @@ -0,0 +1,12 @@ +@if $use-fadeOut == true { + + @include animate-keyframe(fadeOut) { + 0% {opacity: 1;} + 100% {opacity: 0;} + } + + .out .fadeOut { + @include animate-prefixer(animation-name, fadeOut); + } + +} diff --git a/src/sass/animations/fade-exit/_fadeOutDown.scss b/src/sass/animations/fade-exit/_fadeOutDown.scss new file mode 100644 index 00000000..50fe12b1 --- /dev/null +++ b/src/sass/animations/fade-exit/_fadeOutDown.scss @@ -0,0 +1,30 @@ +@if $use-fadeOutDown == true { + + @-webkit-keyframes fadeOutDown { + 0% { + opacity: 1; + -webkit-transform: translateY(0); + } + + 100% { + opacity: 0; + -webkit-transform: translateY($base-distance * 2); + } + } + + @keyframes fadeOutDown { + 0% { + opacity: 1; + transform: translateY(0); + } + + 100% { + opacity: 0; + transform: translateY($base-distance * 2); + } + } + + .out .fadeOutDown { + @include animate-prefixer(animation-name, fadeOutDown); + } +} diff --git a/src/sass/animations/fade-exit/_fadeOutDownBig.scss b/src/sass/animations/fade-exit/_fadeOutDownBig.scss new file mode 100644 index 00000000..36cec206 --- /dev/null +++ b/src/sass/animations/fade-exit/_fadeOutDownBig.scss @@ -0,0 +1,30 @@ +@if $use-fadeOutDownBig == true { + + @-webkit-keyframes fadeOutDownBig { + 0% { + opacity: 1; + -webkit-transform: translateY(0); + } + + 100% { + opacity: 0; + -webkit-transform: translateY($base-distance-big * 2); + } + } + + @keyframes fadeOutDownBig { + 0% { + opacity: 1; + transform: translateY(0); + } + + 100% { + opacity: 0; + transform: translateY($base-distance-big * 2); + } + } + + .out .fadeOutDownBig { + @include animate-prefixer(animation-name, fadeOutDownBig); + } +} diff --git a/src/sass/animations/fade-exit/_fadeOutLeft.scss b/src/sass/animations/fade-exit/_fadeOutLeft.scss new file mode 100644 index 00000000..74e3c8d5 --- /dev/null +++ b/src/sass/animations/fade-exit/_fadeOutLeft.scss @@ -0,0 +1,31 @@ +@if $use-fadeOutLeft == true { + + @-webkit-keyframes fadeOutLeft { + 0% { + opacity: 1; + -webkit-transform: translateX(0); + } + + 100% { + opacity: 0; + -webkit-transform: translateX(-$base-distance * 2); + } + } + + @keyframes fadeOutLeft { + 0% { + opacity: 1; + transform: translateX(0); + } + + 100% { + opacity: 0; + transform: translateX(-$base-distance * 2); + } + } + + .out .fadeOutLeft { + @include animate-prefixer(animation-name, fadeOutLeft); + } + +} diff --git a/src/sass/animations/fade-exit/_fadeOutLeftBig.scss b/src/sass/animations/fade-exit/_fadeOutLeftBig.scss new file mode 100644 index 00000000..6035035e --- /dev/null +++ b/src/sass/animations/fade-exit/_fadeOutLeftBig.scss @@ -0,0 +1,31 @@ +@if $use-fadeOutLeftBig == true { + + @-webkit-keyframes fadeOutLeftBig { + 0% { + opacity: 1; + -webkit-transform: translateX(0); + } + + 100% { + opacity: 0; + -webkit-transform: translateX(-$base-distance-big * 2); + } + } + + @keyframes fadeOutLeftBig { + 0% { + opacity: 1; + transform: translateX(0); + } + + 100% { + opacity: 0; + transform: translateX(-$base-distance-big * 2); + } + } + + .out .fadeOutLeftBig { + @include animate-prefixer(animation-name, fadeOutLeftBig); + } + +} diff --git a/src/sass/animations/fade-exit/_fadeOutRight.scss b/src/sass/animations/fade-exit/_fadeOutRight.scss new file mode 100644 index 00000000..40321551 --- /dev/null +++ b/src/sass/animations/fade-exit/_fadeOutRight.scss @@ -0,0 +1,30 @@ +@if $use-fadeOutRight == true { + + @-webkit-keyframes fadeOutRight { + 0% { + opacity: 1; + -webkit-transform: translateX(0); + } + + 100% { + opacity: 0; + -webkit-transform: translateX($base-distance * 2); + } + } + + @keyframes fadeOutRight { + 0% { + opacity: 1; + transform: translateX(0); + } + + 100% { + opacity: 0; + transform: translateX($base-distance * 2); + } + } + + .out .fadeOutRight { + @include animate-prefixer(animation-name, fadeOutRight); + } +} diff --git a/src/sass/animations/fade-exit/_fadeOutRightBig.scss b/src/sass/animations/fade-exit/_fadeOutRightBig.scss new file mode 100644 index 00000000..a7776fbb --- /dev/null +++ b/src/sass/animations/fade-exit/_fadeOutRightBig.scss @@ -0,0 +1,30 @@ +@if $use-fadeOutRightBig == true { + + @-webkit-keyframes fadeOutRightBig { + 0% { + opacity: 1; + -webkit-transform: translateX(0); + } + + 100% { + opacity: 0; + -webkit-transform: translateX($base-distance-big * 2); + } + } + + @keyframes fadeOutRightBig { + 0% { + opacity: 1; + transform: translateX(0); + } + + 100% { + opacity: 0; + transform: translateX($base-distance-big * 2); + } + } + + .out .fadeOutRightBig { + @include animate-prefixer(animation-name, fadeOutRightBig); + } +} diff --git a/src/sass/animations/fade-exit/_fadeOutUp.scss b/src/sass/animations/fade-exit/_fadeOutUp.scss new file mode 100644 index 00000000..3e481d68 --- /dev/null +++ b/src/sass/animations/fade-exit/_fadeOutUp.scss @@ -0,0 +1,31 @@ +@if $use-fadeOutUp == true { + + @-webkit-keyframes fadeOutUp { + 0% { + opacity: 1; + -webkit-transform: translateY(0); + } + + 100% { + opacity: 0; + -webkit-transform: translateY(-$base-distance * 2); + } + } + + @keyframes fadeOutUp { + 0% { + opacity: 1; + transform: translateY(0); + } + + 100% { + opacity: 0; + transform: translateY(-$base-distance * 2); + } + } + + .out .fadeOutUp { + @include animate-prefixer(animation-name, fadeOutUp); + } + +} diff --git a/src/sass/animations/fade-exit/_fadeOutUpBig.scss b/src/sass/animations/fade-exit/_fadeOutUpBig.scss new file mode 100644 index 00000000..c482b8c3 --- /dev/null +++ b/src/sass/animations/fade-exit/_fadeOutUpBig.scss @@ -0,0 +1,31 @@ +@if $use-fadeOutUpBig == true { + + @-webkit-keyframes fadeOutUpBig { + 0% { + opacity: 1; + -webkit-transform: translateY(0); + } + + 100% { + opacity: 0; + -webkit-transform: translateY(-$base-distance-big * 2); + } + } + + @keyframes fadeOutUpBig { + 0% { + opacity: 1; + transform: translateY(0); + } + + 100% { + opacity: 0; + transform: translateY(-$base-distance-big * 2); + } + } + + .out .fadeOutUpBig { + @include animate-prefixer(animation-name, fadeOutUpBig); + } + +} diff --git a/src/sass/animations/flippers/_flip.scss b/src/sass/animations/flippers/_flip.scss new file mode 100644 index 00000000..544b72af --- /dev/null +++ b/src/sass/animations/flippers/_flip.scss @@ -0,0 +1,55 @@ +@if $use-flip == true { + + @-webkit-keyframes flip { + 0% { + -webkit-transform: perspective($flipper-perspective) rotateY(0); + -webkit-animation-timing-function: ease-out; + } + 40% { + -webkit-transform: perspective($flipper-perspective) translateZ($flipper-translate) rotateY(170deg); + -webkit-animation-timing-function: ease-out; + } + 50% { + -webkit-transform: perspective($flipper-perspective) translateZ($flipper-translate) rotateY(190deg) scale(1); + -webkit-animation-timing-function: ease-in; + } + 80% { + -webkit-transform: perspective($flipper-perspective) rotateY($flipper-degrees-max * 4) scale(0.95); + -webkit-animation-timing-function: ease-in; + } + 100% { + -webkit-transform: perspective($flipper-perspective) scale(1); + -webkit-animation-timing-function: ease-in; + } + } + + @keyframes flip { + 0% { + transform: perspective($flipper-perspective) rotateY(0); + animation-timing-function: ease-out; + } + 40% { + transform: perspective($flipper-perspective) translateZ($flipper-translate) rotateY(170deg); + animation-timing-function: ease-out; + } + 50% { + transform: perspective($flipper-perspective) translateZ($flipper-translate) rotateY(190deg) scale(1); + animation-timing-function: ease-in; + } + 80% { + transform: perspective($flipper-perspective) rotateY($flipper-degrees-max * 4) scale(0.95); + animation-timing-function: ease-in; + } + 100% { + transform: perspective($flipper-perspective) scale(1); + animation-timing-function: ease-in; + } + } + + .flip { + @include animate-prefixer(transform-style, preserve-3d); + @include animate-prefixer(backface-visibility, visible !important); + @include animate-prefixer(animation-name, flip) + } + +} diff --git a/src/sass/animations/flippers/_flipInX.scss b/src/sass/animations/flippers/_flipInX.scss new file mode 100644 index 00000000..8317d2f8 --- /dev/null +++ b/src/sass/animations/flippers/_flipInX.scss @@ -0,0 +1,48 @@ +@if $use-flipInX == true { + + @-webkit-keyframes flipInX { + 0% { + -webkit-transform: perspective($flipper-perspective) rotateX($flipper-degrees-max); + opacity: 0; + } + + 40% { + -webkit-transform: perspective($flipper-perspective) rotateX(-$flipper-degrees); + } + + 70% { + -webkit-transform: perspective($flipper-perspective) rotateX($flipper-degrees); + } + + 100% { + -webkit-transform: perspective($flipper-perspective) rotateX(0deg); + opacity: 1; + } + } + + @keyframes flipInX { + 0% { + transform: perspective($flipper-perspective) rotateX($flipper-degrees-max); + opacity: 0; + } + + 40% { + transform: perspective($flipper-perspective) rotateX(-$flipper-degrees); + } + + 70% { + transform: perspective($flipper-perspective) rotateX($flipper-degrees); + } + + 100% { + transform: perspective($flipper-perspective) rotateX(0deg); + opacity: 1; + } + } + + .in .flipInX { + @include animate-prefixer(backface-visibility, visible !important); + @include animate-prefixer(animation-name, flipInX); + } + +} diff --git a/src/sass/animations/flippers/_flipInY.scss b/src/sass/animations/flippers/_flipInY.scss new file mode 100644 index 00000000..d5f06cfd --- /dev/null +++ b/src/sass/animations/flippers/_flipInY.scss @@ -0,0 +1,48 @@ +@if $use-flipInY == true { + + @-webkit-keyframes flipInY { + 0% { + -webkit-transform: perspective($flipper-perspective) rotateY($flipper-degrees-max); + opacity: 0; + } + + 40% { + -webkit-transform: perspective($flipper-perspective) rotateY(-$flipper-degrees); + } + + 70% { + -webkit-transform: perspective($flipper-perspective) rotateY($flipper-degrees); + } + + 100% { + -webkit-transform: perspective($flipper-perspective) rotateY(0deg); + opacity: 1; + } + } + + @keyframes flipInY { + 0% { + transform: perspective($flipper-perspective) rotateY($flipper-degrees-max); + opacity: 0; + } + + 40% { + transform: perspective($flipper-perspective) rotateY(-$flipper-degrees); + } + + 70% { + transform: perspective($flipper-perspective) rotateY($flipper-degrees); + } + + 100% { + transform: perspective($flipper-perspective) rotateY(0deg); + opacity: 1; + } + } + + .in .flipInY { + @include animate-prefixer(backface-visibility, visible !important); + @include animate-prefixer(animation-name, flipInY); + } + +} diff --git a/src/sass/animations/flippers/_flipOutX.scss b/src/sass/animations/flippers/_flipOutX.scss new file mode 100644 index 00000000..5b96219a --- /dev/null +++ b/src/sass/animations/flippers/_flipOutX.scss @@ -0,0 +1,30 @@ +@if $use-flipOutX == true { + + @-webkit-keyframes flipOutX { + 0% { + -webkit-transform: perspective($flipper-perspective) rotateX(0deg); + opacity: 1; + } + 100% { + -webkit-transform: perspective($flipper-perspective) rotateX($flipper-degrees-max); + opacity: 0; + } + } + + @keyframes flipOutX { + 0% { + transform: perspective($flipper-perspective) rotateX(0deg); + opacity: 1; + } + 100% { + transform: perspective($flipper-perspective) rotateX($flipper-degrees-max); + opacity: 0; + } + } + + .out .flipOutX { + @include animate-prefixer(animation-name, flipOutX); + @include animate-prefixer(backface-visibility, visible !important); + } + +} diff --git a/src/sass/animations/flippers/_flipOutY.scss b/src/sass/animations/flippers/_flipOutY.scss new file mode 100644 index 00000000..8be14ae2 --- /dev/null +++ b/src/sass/animations/flippers/_flipOutY.scss @@ -0,0 +1,29 @@ +@if $use-flipOutY == true { + + @-webkit-keyframes flipOutY { + 0% { + -webkit-transform: perspective($flipper-perspective) rotateY(0deg); + opacity: 1; + } + 100% { + -webkit-transform: perspective($flipper-perspective) rotateY($flipper-degrees-max); + opacity: 0; + } + } + + @keyframes flipOutY { + 0% { + transform: perspective($flipper-perspective) rotateY(0deg); + opacity: 1; + } + 100% { + transform: perspective($flipper-perspective) rotateY($flipper-degrees-max); + opacity: 0; + } + } + + .out .flipOutY { + @include animate-prefixer(backface-visibility, visible !important); + @include animate-prefixer(animation-name, flipOutY); + } +} diff --git a/src/sass/animations/lightspeed/_lightSpeedIn.scss b/src/sass/animations/lightspeed/_lightSpeedIn.scss new file mode 100644 index 00000000..542047cd --- /dev/null +++ b/src/sass/animations/lightspeed/_lightSpeedIn.scss @@ -0,0 +1,22 @@ +@if $use-lightSpeedIn == true { + + @-webkit-keyframes lightSpeedIn { + 0% { -webkit-transform: translateX(100%) skewX(-$base-degrees); opacity: 0; } + 60% { -webkit-transform: translateX(-20%) skewX($base-degrees); opacity: 1; } + 80% { -webkit-transform: translateX(0%) skewX(-$base-degrees / 2); opacity: 1; } + 100% { -webkit-transform: translateX(0%) skewX(0deg); opacity: 1; } + } + + @keyframes lightSpeedIn { + 0% { transform: translateX(100%) skewX(-$base-degrees); opacity: 0; } + 60% { transform: translateX(-20%) skewX($base-degrees); opacity: 1; } + 80% { transform: translateX(0%) skewX(-$base-degrees / 2); opacity: 1; } + 100% { transform: translateX(0%) skewX(0deg); opacity: 1; } + } + + .in .lightSpeedIn { + @include animate-prefixer(animation-name, lightSpeedIn); + @include animate-prefixer(animation-timing-function, $base-timing-function-out); + } + +} diff --git a/src/sass/animations/lightspeed/_lightSpeedOut.scss b/src/sass/animations/lightspeed/_lightSpeedOut.scss new file mode 100644 index 00000000..44c4e1d3 --- /dev/null +++ b/src/sass/animations/lightspeed/_lightSpeedOut.scss @@ -0,0 +1,17 @@ +@if $use-lightSpeedOut == true { + + @-webkit-keyframes lightSpeedOut { + 0% { -webkit-transform: translateX(0%) skewX(0deg); opacity: 1; } + 100% { -webkit-transform: translateX(100%) skewX(-$base-degrees); opacity: 0; } + } + + @keyframes lightSpeedOut { + 0% { transform: translateX(0%) skewX(0deg); opacity: 1; } + 100% { transform: translateX(100%) skewX(-$base-degrees); opacity: 0; } + } + + .out .lightSpeedOut { + @include animate-prefixer(animation-name, lightSpeedOut); + @include animate-prefixer(animation-timing-function, $base-timing-function-in); + } +} diff --git a/src/sass/animations/rotate-enter/_rotateIn.scss b/src/sass/animations/rotate-enter/_rotateIn.scss new file mode 100644 index 00000000..70fddb8d --- /dev/null +++ b/src/sass/animations/rotate-enter/_rotateIn.scss @@ -0,0 +1,35 @@ +@if $use-rotateIn == true { + + @-webkit-keyframes rotateIn { + 0% { + -webkit-transform-origin: $rotate-origin; + -webkit-transform: rotate(-$rotate-degrees-max); + opacity: 0; + } + + 100% { + -webkit-transform-origin: $rotate-origin; + -webkit-transform: rotate(0); + opacity: 1; + } + } + + @keyframes rotateIn { + 0% { + transform-origin: $rotate-origin; + transform: rotate(-$rotate-degrees-max); + opacity: 0; + } + + 100% { + transform-origin: $rotate-origin; + transform: rotate(0); + opacity: 1; + } + } + + .in .rotateIn { + @include animate-prefixer(animation-name, rotateIn); + } + +} diff --git a/src/sass/animations/rotate-enter/_rotateInDownLeft.scss b/src/sass/animations/rotate-enter/_rotateInDownLeft.scss new file mode 100644 index 00000000..142303a1 --- /dev/null +++ b/src/sass/animations/rotate-enter/_rotateInDownLeft.scss @@ -0,0 +1,35 @@ +@if $use-rotateInDownLeft == true { + + @-webkit-keyframes rotateInDownLeft { + 0% { + -webkit-transform-origin: left bottom; + -webkit-transform: rotate(-$rotate-degrees); + opacity: 0; + } + + 100% { + -webkit-transform-origin: left bottom; + -webkit-transform: rotate(0); + opacity: 1; + } + } + + @keyframes rotateInDownLeft { + 0% { + transform-origin: left bottom; + transform: rotate(-$rotate-degrees); + opacity: 0; + } + + 100% { + transform-origin: left bottom; + transform: rotate(0); + opacity: 1; + } + } + + .in .rotateInDownLeft { + @include animate-prefixer(animation-name, rotateInDownLeft); + } + +} diff --git a/src/sass/animations/rotate-enter/_rotateInDownRight.scss b/src/sass/animations/rotate-enter/_rotateInDownRight.scss new file mode 100644 index 00000000..f16f2680 --- /dev/null +++ b/src/sass/animations/rotate-enter/_rotateInDownRight.scss @@ -0,0 +1,35 @@ +@if $use-rotateInDownRight == true { + + @-webkit-keyframes rotateInDownRight { + 0% { + -webkit-transform-origin: right bottom; + -webkit-transform: rotate($rotate-degrees); + opacity: 0; + } + + 100% { + -webkit-transform-origin: right bottom; + -webkit-transform: rotate(0); + opacity: 1; + } + } + + @keyframes rotateInDownRight { + 0% { + transform-origin: right bottom; + transform: rotate($rotate-degrees); + opacity: 0; + } + + 100% { + transform-origin: right bottom; + transform: rotate(0); + opacity: 1; + } + } + + .in .rotateInDownRight { + @include animate-prefixer(animation-name, rotateInDownRight); + } + +} diff --git a/src/sass/animations/rotate-enter/_rotateInUpLeft.scss b/src/sass/animations/rotate-enter/_rotateInUpLeft.scss new file mode 100644 index 00000000..5d7fca75 --- /dev/null +++ b/src/sass/animations/rotate-enter/_rotateInUpLeft.scss @@ -0,0 +1,35 @@ +@if $use-rotateInUpLeft == true { + + @-webkit-keyframes rotateInUpLeft { + 0% { + -webkit-transform-origin: left bottom; + -webkit-transform: rotate($rotate-degrees); + opacity: 0; + } + + 100% { + -webkit-transform-origin: left bottom; + -webkit-transform: rotate(0); + opacity: 1; + } + } + + @keyframes rotateInUpLeft { + 0% { + transform-origin: left bottom; + transform: rotate($rotate-degrees); + opacity: 0; + } + + 100% { + transform-origin: left bottom; + transform: rotate(0); + opacity: 1; + } + } + + .in .rotateInUpLeft { + @include animate-prefixer(animation-name, rotateInUpLeft); + } + +} diff --git a/src/sass/animations/rotate-enter/_rotateInUpRight.scss b/src/sass/animations/rotate-enter/_rotateInUpRight.scss new file mode 100644 index 00000000..4c3f712f --- /dev/null +++ b/src/sass/animations/rotate-enter/_rotateInUpRight.scss @@ -0,0 +1,35 @@ +@if $use-rotateInUpRight == true { + + @-webkit-keyframes rotateInUpRight { + 0% { + -webkit-transform-origin: right bottom; + -webkit-transform: rotate(-$rotate-degrees); + opacity: 0; + } + + 100% { + -webkit-transform-origin: right bottom; + -webkit-transform: rotate(0); + opacity: 1; + } + } + + @keyframes rotateInUpRight { + 0% { + transform-origin: right bottom; + transform: rotate(-$rotate-degrees); + opacity: 0; + } + + 100% { + transform-origin: right bottom; + transform: rotate(0); + opacity: 1; + } + } + + .in .rotateInUpRight { + @include animate-prefixer(animation-name, rotateInUpRight); + } + +} diff --git a/src/sass/animations/rotate-exit/_rotateOut.scss b/src/sass/animations/rotate-exit/_rotateOut.scss new file mode 100644 index 00000000..d297ae74 --- /dev/null +++ b/src/sass/animations/rotate-exit/_rotateOut.scss @@ -0,0 +1,35 @@ +@if $use-rotateOut == true { + + @-webkit-keyframes rotateOut { + 0% { + -webkit-transform-origin: $rotate-origin; + -webkit-transform: rotate(0); + opacity: 1; + } + + 100% { + -webkit-transform-origin: $rotate-origin; + -webkit-transform: rotate($rotate-degrees-max); + opacity: 0; + } + } + + @keyframes rotateOut { + 0% { + transform-origin: $rotate-origin; + transform: rotate(0); + opacity: 1; + } + + 100% { + transform-origin: $rotate-origin; + transform: rotate($rotate-degrees-max); + opacity: 0; + } + } + + .out .rotateOut { + @include animate-prefixer(animation-name, rotateOut); + } + +} diff --git a/src/sass/animations/rotate-exit/_rotateOutDownLeft.scss b/src/sass/animations/rotate-exit/_rotateOutDownLeft.scss new file mode 100644 index 00000000..05d8e68e --- /dev/null +++ b/src/sass/animations/rotate-exit/_rotateOutDownLeft.scss @@ -0,0 +1,34 @@ +@if $use-rotateOutDownLeft == true { + + @-webkit-keyframes rotateOutDownLeft { + 0% { + -webkit-transform-origin: left bottom; + -webkit-transform: rotate(0); + opacity: 1; + } + + 100% { + -webkit-transform-origin: left bottom; + -webkit-transform: rotate($rotate-degrees); + opacity: 0; + } + } + + @keyframes rotateOutDownLeft { + 0% { + transform-origin: left bottom; + transform: rotate(0); + opacity: 1; + } + + 100% { + transform-origin: left bottom; + transform: rotate($rotate-degrees); + opacity: 0; + } + } + + .out .rotateOutDownLeft { + @include animate-prefixer(animation-name, rotateOutDownLeft); + } +} diff --git a/src/sass/animations/rotate-exit/_rotateOutDownRight.scss b/src/sass/animations/rotate-exit/_rotateOutDownRight.scss new file mode 100644 index 00000000..9ba77e13 --- /dev/null +++ b/src/sass/animations/rotate-exit/_rotateOutDownRight.scss @@ -0,0 +1,34 @@ +@if $use-rotateOutDownRight == true { + + @-webkit-keyframes rotateOutDownRight { + 0% { + -webkit-transform-origin: right bottom; + -webkit-transform: rotate(0); + opacity: 1; + } + + 100% { + -webkit-transform-origin: right bottom; + -webkit-transform: rotate(-$rotate-degrees); + opacity: 0; + } + } + + @keyframes rotateOutDownRight { + 0% { + transform-origin: right bottom; + transform: rotate(0); + opacity: 1; + } + + 100% { + transform-origin: right bottom; + transform: rotate(-$rotate-degrees); + opacity: 0; + } + } + + .out .rotateOutDownRight { + @include animate-prefixer(animation-name, rotateOutDownRight); + } +} diff --git a/src/sass/animations/rotate-exit/_rotateOutUpLeft.scss b/src/sass/animations/rotate-exit/_rotateOutUpLeft.scss new file mode 100644 index 00000000..3958df54 --- /dev/null +++ b/src/sass/animations/rotate-exit/_rotateOutUpLeft.scss @@ -0,0 +1,35 @@ +@if $use-rotateOutDownRight == true { + + @-webkit-keyframes rotateOutUpLeft { + 0% { + -webkit-transform-origin: left bottom; + -webkit-transform: rotate(0); + opacity: 1; + } + + 100% { + -webkit-transform-origin: left bottom; + -webkit-transform: rotate(-$rotate-degrees); + opacity: 0; + } + } + + @keyframes rotateOutUpLeft { + 0% { + transform-origin: left bottom; + transform: rotate(0); + opacity: 1; + } + + 100% { + -transform-origin: left bottom; + -transform: rotate(-$rotate-degrees); + opacity: 0; + } + } + + .out .rotateOutUpLeft { + @include animate-prefixer(animation-name, rotateOutUpLeft); + } + +} diff --git a/src/sass/animations/rotate-exit/_rotateOutUpRight.scss b/src/sass/animations/rotate-exit/_rotateOutUpRight.scss new file mode 100644 index 00000000..600a38a8 --- /dev/null +++ b/src/sass/animations/rotate-exit/_rotateOutUpRight.scss @@ -0,0 +1,34 @@ +@if $use-rotateOutUpRight == true { + @-webkit-keyframes rotateOutUpRight { + 0% { + -webkit-transform-origin: right bottom; + -webkit-transform: rotate(0); + opacity: 1; + } + + 100% { + -webkit-transform-origin: right bottom; + -webkit-transform: rotate($rotate-degrees); + opacity: 0; + } + } + + @keyframes rotateOutUpRight { + 0% { + transform-origin: right bottom; + transform: rotate(0); + opacity: 1; + } + + 100% { + transform-origin: right bottom; + transform: rotate($rotate-degrees); + opacity: 0; + } + } + + .out .rotateOutUpRight { + @include animate-prefixer(animation-name, rotateOutUpRight); + } + +} diff --git a/src/sass/animations/slide-enter/_slideInDown.scss b/src/sass/animations/slide-enter/_slideInDown.scss new file mode 100644 index 00000000..fcb77b53 --- /dev/null +++ b/src/sass/animations/slide-enter/_slideInDown.scss @@ -0,0 +1,29 @@ +@if $use-slideInDown == true { + + @-webkit-keyframes slideInDown { + 0% { + -webkit-transform: translate3d(0, -100%, 0); + visibility: visible; + } + + 100% { + -webkit-transform: translate3d(0, 0, 0); + } + } + + @keyframes slideInDown { + 0% { + transform: translate3d(0, -100%, 0); + visibility: visible; + } + + 100% { + transform: translate3d(0, 0, 0); + } + } + + .in .slideInDown { + @include animate-prefixer(animation-name, slideInDown); + } + +} diff --git a/src/sass/animations/slide-enter/_slideInLeft.scss b/src/sass/animations/slide-enter/_slideInLeft.scss new file mode 100644 index 00000000..7f8235bf --- /dev/null +++ b/src/sass/animations/slide-enter/_slideInLeft.scss @@ -0,0 +1,29 @@ +@if $use-slideInLeft == true { + + @-webkit-keyframes slideInLeft { + 0% { + -webkit-transform: translate3d(-100%, 0, 0); + visibility: visible; + } + + 100% { + -webkit-transform: translate3d(0, 0, 0); + } + } + + @keyframes slideInLeft { + 0% { + transform: translate3d(-100%, 0, 0); + visibility: visible; + } + + 100% { + transform: translate3d(0, 0, 0); + } + } + + .in .slideInLeft { + @include animate-prefixer(animation-name, slideInLeft); + } + +} diff --git a/src/sass/animations/slide-enter/_slideInRight.scss b/src/sass/animations/slide-enter/_slideInRight.scss new file mode 100644 index 00000000..1649dac4 --- /dev/null +++ b/src/sass/animations/slide-enter/_slideInRight.scss @@ -0,0 +1,29 @@ +@if $use-slideInRight == true { + + @-webkit-keyframes slideInRight { + 0% { + -webkit-transform: translate3d(100%, 0, 0); + visibility: visible; + } + + 100% { + -webkit-transform: translate3d(0, 0, 0); + } + } + + @keyframes slideInRight { + 0% { + transform: translate3d(100%, 0, 0); + visibility: visible; + } + + 100% { + transform: translate3d(0, 0, 0); + } + } + + .in .slideInRight { + @include animate-prefixer(animation-name, slideInRight); + } + +} diff --git a/src/sass/animations/slide-enter/_slideInUp.scss b/src/sass/animations/slide-enter/_slideInUp.scss new file mode 100644 index 00000000..b6588b30 --- /dev/null +++ b/src/sass/animations/slide-enter/_slideInUp.scss @@ -0,0 +1,29 @@ +@if $use-slideInUp == true { + + @-webkit-keyframes slideInUp { + 0% { + -webkit-transform: translate3d(0, 100%, 0); + visibility: visible; + } + + 100% { + -webkit-transform: translate3d(0, 0, 0); + } + } + + @keyframes slideInUp { + 0% { + transform: translate3d(0, 100%, 0); + visibility: visible; + } + + 100% { + transform: translate3d(0, 0, 0); + } + } + + .in .slideInUp { + @include animate-prefixer(animation-name, slideInUp); + } + +} diff --git a/src/sass/animations/slide-exit/_slideOutDown.scss b/src/sass/animations/slide-exit/_slideOutDown.scss new file mode 100644 index 00000000..36677651 --- /dev/null +++ b/src/sass/animations/slide-exit/_slideOutDown.scss @@ -0,0 +1,29 @@ +@if $use-slideOutDown == true { + + @-webkit-keyframes slideOutDown { + 0% { + -webkit-transform: translate3d(0, 0, 0); + visibility: visible; + } + + 100% { + -webkit-transform: translate3d(0, 100%, 0); + } + } + + @keyframes slideOutDown { + 0% { + transform: translate3d(0, 0, 0); + visibility: visible; + } + + 100% { + transform: translate3d(0, 100%, 0); + } + } + + .out .slideOutDown { + @include animate-prefixer(animation-name, slideOutDown); + } + +} diff --git a/src/sass/animations/slide-exit/_slideOutLeft.scss b/src/sass/animations/slide-exit/_slideOutLeft.scss new file mode 100644 index 00000000..a6741cf0 --- /dev/null +++ b/src/sass/animations/slide-exit/_slideOutLeft.scss @@ -0,0 +1,29 @@ +@if $use-slideOutLeft == true { + + @-webkit-keyframes slideOutLeft { + 0% { + -webkit-transform: translate3d(0, 0, 0); + visibility: visible; + } + + 100% { + -webkit-transform: translate3d(-100%, 0, 0); + } + } + + @keyframes slideOutLeft { + 0% { + transform: translate3d(0, 0, 0); + visibility: visible; + } + + 100% { + transform: translate3d(-100%, 0, 0); + } + } + + .out .slideOutLeft { + @include animate-prefixer(animation-name, slideOutLeft); + } + +} diff --git a/src/sass/animations/slide-exit/_slideOutRight.scss b/src/sass/animations/slide-exit/_slideOutRight.scss new file mode 100644 index 00000000..87c13ac4 --- /dev/null +++ b/src/sass/animations/slide-exit/_slideOutRight.scss @@ -0,0 +1,29 @@ +@if $use-slideOutRight == true { + + @-webkit-keyframes slideOutRight { + 0% { + -webkit-transform: translate3d(0, 0, 0); + visibility: visible; + } + + 100% { + -webkit-transform: translate3d(100%, 0, 0); + } + } + + @keyframes slideOutRight { + 0% { + transform: translate3d(0, 0, 0); + visibility: visible; + } + + 100% { + transform: translate3d(100%, 0, 0); + } + } + + .out .slideOutRight { + @include animate-prefixer(animation-name, slideOutRight); + } + +} diff --git a/src/sass/animations/slide-exit/_slideOutUp.scss b/src/sass/animations/slide-exit/_slideOutUp.scss new file mode 100644 index 00000000..aa41a517 --- /dev/null +++ b/src/sass/animations/slide-exit/_slideOutUp.scss @@ -0,0 +1,29 @@ +@if $use-slideOutUp == true { + + @-webkit-keyframes slideOutUp { + 0% { + -webkit-transform: translate3d(0, 0, 0); + visibility: visible; + } + + 100% { + -webkit-transform: translate3d(0, -100%, 0); + } + } + + @keyframes slideOutUp { + 0% { + transform: translate3d(0, 0, 0); + visibility: visible; + } + + 100% { + transform: translate3d(0, -100%, 0); + } + } + + .out .slideOutUp { + @include animate-prefixer(animation-name, slideOutUp); + } + +} diff --git a/src/sass/animations/special/_hinge.scss b/src/sass/animations/special/_hinge.scss new file mode 100644 index 00000000..820875b5 --- /dev/null +++ b/src/sass/animations/special/_hinge.scss @@ -0,0 +1,22 @@ + @if $use-hinge == true { + + @-webkit-keyframes hinge { + 0% { -webkit-transform: rotate(0); -webkit-transform-origin: $hinge-origin; -webkit-animation-timing-function: $base-timing-function-in-out; } + 20%, 60% { -webkit-transform: rotate($hinge-degrees-max); -webkit-transform-origin: $hinge-origin; -webkit-animation-timing-function: $base-timing-function-in-out; } + 40% { -webkit-transform: rotate($base-degrees * 2); -webkit-transform-origin: $hinge-origin; -webkit-animation-timing-function: $base-timing-function-in-out; } + 80% { -webkit-transform: rotate($base-degrees * 2) translateY(0); opacity: 1; -webkit-transform-origin: $hinge-origin; -webkit-animation-timing-function: $base-timing-function-in-out; } + 100% { -webkit-transform: translateY($hinge-translate); opacity: 0; } + } + + @keyframes hinge { + 0% { transform: rotate(0); transform-origin: $hinge-origin; animation-timing-function: $base-timing-function-in-out; } + 20%, 60% { transform: rotate($hinge-degrees-max); transform-origin: $hinge-origin; animation-timing-function: $base-timing-function-in-out; } + 40% { transform: rotate($base-degrees * 2); transform-origin: $hinge-origin; animation-timing-function: $base-timing-function-in-out; } + 80% { transform: rotate($base-degrees * 2) translateY(0); opacity: 1; transform-origin: $hinge-origin; animation-timing-function: $base-timing-function-in-out; } + 100% { transform: translateY($hinge-translate); opacity: 0; } + } + + .out .hingeOut { + @include animate-prefixer(animation-name, hinge); + } +} diff --git a/src/sass/animations/special/_rollIn.scss b/src/sass/animations/special/_rollIn.scss new file mode 100644 index 00000000..43a0daeb --- /dev/null +++ b/src/sass/animations/special/_rollIn.scss @@ -0,0 +1,19 @@ +@if $use-rollIn == true { + + // originally authored by Nick Pettit - https://github.com/nickpettit/glide + + @-webkit-keyframes rollIn { + 0% { opacity: 0; -webkit-transform: translateX(-100%) rotate(-$base-degrees * 4); } + 100% { opacity: 1; -webkit-transform: translateX(0px) rotate(0deg); } + } + + @keyframes rollIn { + 0% { opacity: 0; transform: translateX(-100%) rotate(-$base-degrees * 4); } + 100% { opacity: 1; transform: translateX(0px) rotate(0deg); } + } + + .in .rollIn { + @include animate-prefixer(animation-name, rollIn); + } + +} diff --git a/src/sass/animations/special/_rollOut.scss b/src/sass/animations/special/_rollOut.scss new file mode 100644 index 00000000..590af626 --- /dev/null +++ b/src/sass/animations/special/_rollOut.scss @@ -0,0 +1,33 @@ +@if $use-rollOut == true { + + // originally authored by Nick Pettit - https://github.com/nickpettit/glide + + @-webkit-keyframes rollOut { + 0% { + opacity: 1; + -webkit-transform: translateX(0px) rotate(0deg); + } + + 100% { + opacity: 0; + -webkit-transform: translateX(100%) rotate($base-degrees * 4); + } + } + + @keyframes rollOut { + 0% { + opacity: 1; + transform: translateX(0px) rotate(0deg); + } + + 100% { + opacity: 0; + transform: translateX(100%) rotate($base-degrees * 4); + } + } + + .out .rollOut { + @include animate-prefixer(animation-name, rollOut); + } + +} diff --git a/src/sass/animations/zoom-enter/_zoomIn.scss b/src/sass/animations/zoom-enter/_zoomIn.scss new file mode 100644 index 00000000..79d07d1f --- /dev/null +++ b/src/sass/animations/zoom-enter/_zoomIn.scss @@ -0,0 +1,28 @@ +$animate-name: 'zoomIn'; + +@mixin zoomIn($prefix: '') { + 0% { + opacity: 0; + #{$prefix}transform: scale3d(.3, .3, .3); + } + + 50% { + opacity: 1; + } +} + +@if $use-zoomIn == true { + + @-webkit-keyframes #{$animate-name} { + @include zoomIn('-webkit-'); + } + + @keyframes #{$animate-name} { + @include zoomIn(); + } + + .in .#{$animate-name} { + @include animate-prefixer(animation-name, $animate-name); + } + +} diff --git a/src/sass/animations/zoom-enter/_zoomInDown.scss b/src/sass/animations/zoom-enter/_zoomInDown.scss new file mode 100644 index 00000000..94403c9a --- /dev/null +++ b/src/sass/animations/zoom-enter/_zoomInDown.scss @@ -0,0 +1,31 @@ +$animate-name: 'zoomInDown'; + +@mixin zoomInDown($prefix: '') { + 0% { + opacity: 0; + #{$prefix}transform: scale3d(.1, .1, .1) translate3d(0, -1000px, 0); + #{$prefix}animation-timing-function: cubic-bezier(0.550, 0.055, 0.675, 0.190); + } + + 60% { + opacity: 1; + #{$prefix}transform: scale3d(.475, .475, .475) translate3d(0, 60px, 0); + #{$prefix}animation-timing-function: cubic-bezier(0.175, 0.885, 0.320, 1); + } +} + +@if $use-zoomInDown == true { + + @-webkit-keyframes #{$animate-name} { + @include zoomInDown('-webkit-'); + } + + @keyframes #{$animate-name} { + @include zoomInDown(); + } + + .in .#{$animate-name} { + @include animate-prefixer(animation-name, $animate-name); + } + +} diff --git a/src/sass/animations/zoom-enter/_zoomInLeft.scss b/src/sass/animations/zoom-enter/_zoomInLeft.scss new file mode 100644 index 00000000..8c93ef8d --- /dev/null +++ b/src/sass/animations/zoom-enter/_zoomInLeft.scss @@ -0,0 +1,31 @@ +$animate-name: 'zoomInLeft'; + +@mixin zoomInLeft($prefix: '') { + 0% { + opacity: 0; + #{$prefix}transform: scale3d(.1, .1, .1) translate3d(-1000px, 0, 0); + #{$prefix}animation-timing-function: cubic-bezier(0.550, 0.055, 0.675, 0.190); + } + + 60% { + opacity: 1; + #{$prefix}transform: scale3d(.475, .475, .475) translate3d(10px, 0, 0); + #{$prefix}animation-timing-function: cubic-bezier(0.175, 0.885, 0.320, 1); + } +} + +@if $use-zoomInLeft == true { + + @-webkit-keyframes #{$animate-name} { + @include zoomInLeft('-webkit-'); + } + + @keyframes #{$animate-name} { + @include zoomInLeft(); + } + + .in .#{$animate-name} { + @include animate-prefixer(animation-name, $animate-name); + } + +} diff --git a/src/sass/animations/zoom-enter/_zoomInRight.scss b/src/sass/animations/zoom-enter/_zoomInRight.scss new file mode 100644 index 00000000..a61b56ff --- /dev/null +++ b/src/sass/animations/zoom-enter/_zoomInRight.scss @@ -0,0 +1,31 @@ +$animate-name: 'zoomInRight'; + +@mixin zoomInRight($prefix: '') { + 0% { + opacity: 0; + #{$prefix}transform: scale3d(.1, .1, .1) translate3d(1000px, 0, 0); + #{$prefix}animation-timing-function: cubic-bezier(0.550, 0.055, 0.675, 0.190); + } + + 60% { + opacity: 1; + #{$prefix}transform: scale3d(.475, .475, .475) translate3d(-10px, 0, 0); + #{$prefix}animation-timing-function: cubic-bezier(0.175, 0.885, 0.320, 1); + } +} + +@if $use-zoomInRight == true { + + @-webkit-keyframes #{$animate-name} { + @include zoomInRight('-webkit-'); + } + + @keyframes #{$animate-name} { + @include zoomInRight(); + } + + .in .#{$animate-name} { + @include animate-prefixer(animation-name, $animate-name); + } + +} diff --git a/src/sass/animations/zoom-enter/_zoomInUp.scss b/src/sass/animations/zoom-enter/_zoomInUp.scss new file mode 100644 index 00000000..95418045 --- /dev/null +++ b/src/sass/animations/zoom-enter/_zoomInUp.scss @@ -0,0 +1,31 @@ +$animate-name: 'zoomInUp'; + +@mixin zoomInUp($prefix: '') { + 0% { + opacity: 0; + #{$prefix}transform: scale3d(.1, .1, .1) translate3d(0, 1000px, 0); + #{$prefix}animation-timing-function: cubic-bezier(0.550, 0.055, 0.675, 0.190); + } + + 60% { + opacity: 1; + #{$prefix}transform: scale3d(.475, .475, .475) translate3d(0, -60px, 0); + #{$prefix}animation-timing-function: cubic-bezier(0.175, 0.885, 0.320, 1); + } +} + +@if $use-zoomInUp == true { + + @-webkit-keyframes #{$animate-name} { + @include zoomInUp('-webkit-'); + } + + @keyframes #{$animate-name} { + @include zoomInUp(); + } + + .in .#{$animate-name} { + @include animate-prefixer(animation-name, $animate-name); + } + +} diff --git a/src/sass/animations/zoom-exit/_zoomOut.scss b/src/sass/animations/zoom-exit/_zoomOut.scss new file mode 100644 index 00000000..b809a47a --- /dev/null +++ b/src/sass/animations/zoom-exit/_zoomOut.scss @@ -0,0 +1,32 @@ +$animate-name: 'zoomOut'; + +@mixin zoomOut($prefix: '') { + 0% { + opacity: 1; + } + + 50% { + opacity: 0; + #{$prefix}transform: scale3d(.3, .3, .3); + } + + 100% { + opacity: 0; + } +} + +@if $use-zoomOut == true { + + @-webkit-keyframes #{$animate-name} { + @include zoomOut('-webkit-'); + } + + @keyframes #{$animate-name} { + @include zoomOut(); + } + + .out .#{$animate-name} { + @include animate-prefixer(animation-name, $animate-name); + } + +} diff --git a/src/sass/animations/zoom-exit/_zoomOutDown.scss b/src/sass/animations/zoom-exit/_zoomOutDown.scss new file mode 100644 index 00000000..8ed429de --- /dev/null +++ b/src/sass/animations/zoom-exit/_zoomOutDown.scss @@ -0,0 +1,32 @@ +$animate-name: 'zoomOutDown'; + +@mixin zoomOutDown($prefix: '') { + 40% { + opacity: 1; + #{$prefix}transform: scale3d(.475, .475, .475) translate3d(0, -60px, 0); + #{$prefix}animation-timing-function: cubic-bezier(0.550, 0.055, 0.675, 0.190); + } + + 100% { + opacity: 0; + #{$prefix}transform: scale3d(.1, .1, .1) translate3d(0, 2000px, 0); + #{$prefix}transform-origin: center bottom; + #{$prefix}animation-timing-function: cubic-bezier(0.175, 0.885, 0.320, 1); + } +} + +@if $use-zoomOutDown == true { + + @-webkit-keyframes #{$animate-name} { + @include zoomOutDown('-webkit-'); + } + + @keyframes #{$animate-name} { + @include zoomOutDown(); + } + + .out .#{$animate-name} { + @include animate-prefixer(animation-name, $animate-name); + } + +} diff --git a/src/sass/animations/zoom-exit/_zoomOutLeft.scss b/src/sass/animations/zoom-exit/_zoomOutLeft.scss new file mode 100644 index 00000000..589a5cd0 --- /dev/null +++ b/src/sass/animations/zoom-exit/_zoomOutLeft.scss @@ -0,0 +1,30 @@ +$animate-name: 'zoomOutLeft'; + +@mixin zoomOutLeft($prefix: '') { + 40% { + opacity: 1; + #{$prefix}transform: scale3d(.475, .475, .475) translate3d(42px, 0, 0); + } + + 100% { + opacity: 0; + #{$prefix}transform: scale3d(.1) translate3d(-2000px, 0, 0); + #{$prefix}transform-origin: left center; + } +} + +@if $use-zoomOutLeft == true { + + @-webkit-keyframes #{$animate-name} { + @include zoomOutLeft('-webkit-'); + } + + @keyframes #{$animate-name} { + @include zoomOutLeft(); + } + + .out .#{$animate-name} { + @include animate-prefixer(animation-name, $animate-name); + } + +} diff --git a/src/sass/animations/zoom-exit/_zoomOutRight.scss b/src/sass/animations/zoom-exit/_zoomOutRight.scss new file mode 100644 index 00000000..82caa1a0 --- /dev/null +++ b/src/sass/animations/zoom-exit/_zoomOutRight.scss @@ -0,0 +1,30 @@ +$animate-name: 'zoomOutRight'; + +@mixin zoomOutRight($prefix: '') { + 40% { + opacity: 1; + #{$prefix}transform: scale3d(.475, .475, .475) translate3d(-42px, 0, 0); + } + + 100% { + opacity: 0; + #{$prefix}transform: scale3d(.1) translate3d(2000px, 0, 0); + #{$prefix}transform-origin: right center; + } +} + +@if $use-zoomOutRight == true { + + @-webkit-keyframes #{$animate-name} { + @include zoomOutRight('-webkit-'); + } + + @keyframes #{$animate-name} { + @include zoomOutRight(); + } + + .out .#{$animate-name} { + @include animate-prefixer(animation-name, $animate-name); + } + +} diff --git a/src/sass/animations/zoom-exit/_zoomOutUp.scss b/src/sass/animations/zoom-exit/_zoomOutUp.scss new file mode 100644 index 00000000..85d5bb75 --- /dev/null +++ b/src/sass/animations/zoom-exit/_zoomOutUp.scss @@ -0,0 +1,32 @@ +$animate-name: 'zoomOutUp'; + +@mixin zoomOutUp($prefix: '') { + 40% { + opacity: 1; + #{$prefix}transform: scale3d(.475, .475, .475) translate3d(0, 60px, 0); + #{$prefix}animation-timing-function: cubic-bezier(0.550, 0.055, 0.675, 0.190); + } + + 100% { + opacity: 0; + #{$prefix}transform: scale3d(.1, .1, .1) translate3d(0, -2000px, 0); + #{$prefix}transform-origin: center bottom; + #{$prefix}animation-timing-function: cubic-bezier(0.175, 0.885, 0.320, 1); + } +} + +@if $use-zoomOutUp == true { + + @-webkit-keyframes #{$animate-name} { + @include zoomOutUp('-webkit-'); + } + + @keyframes #{$animate-name} { + @include zoomOutUp(); + } + + .out .#{$animate-name} { + @include animate-prefixer(animation-name, $animate-name); + } + +} diff --git a/src/sass/helpers/_base.scss b/src/sass/helpers/_base.scss new file mode 100644 index 00000000..f1400abf --- /dev/null +++ b/src/sass/helpers/_base.scss @@ -0,0 +1,79 @@ +@charset "UTF-8"; + +/*! +Animate.css - http://daneden.me/animate +Licensed under the MIT license - http://opensource.org/licenses/MIT +Copyright (c) 2015 Daniel Eden +*/ + +body { + -webkit-backface-visibility: hidden; // Addresses a small issue in webkit: https://css-tricks.com/almanac/properties/b/backface-visibility/ +} + +.animated { + @include animate-prefixer(animation-duration, $base-duration); + @include animate-prefixer(animation-fill-mode, $base-fill-mode); + &.infinite { + animation-iteration-count: $base-iteration-count; + } + &.hinge { + @include animate-prefixer(animation-duration, $base-duration * 2); + } + &.bounceIn, + &.bounceOut { + @include animate-prefixer(animation-duration, $base-duration * 0.75); + } + &.flipOutX, + &.flipOutY { + @include animate-prefixer(animation-duration, $base-duration * 0.75); + } +} + +.in { + .animated { + &.fast, + &.fastIn { + @include animate-prefixer(animation-duration, $base-duration * 0.5); + } + &.slow, + &.slowIn { + @include animate-prefixer(animation-duration, $base-duration * 1.5); + } + &.xslow, + &.xslowIn { + @include animate-prefixer(animation-duration, $base-duration * 2.5); + } + &.hinge { + &.fast, + &.fastIn { + @include animate-prefixer(animation-duration, $base-duration); + } + &.slow, + &.slowIn { + @include animate-prefixer(animation-duration, $base-duration * 3); + } + } + } +} + +.out { + .animated { + &.fastOut { + @include animate-prefixer(animation-duration, $base-duration * 0.5); + } + &.slowOut { + @include animate-prefixer(animation-duration, $base-duration * 1.5); + } + &.xslowOut { + @include animate-prefixer(animation-duration, $base-duration * 2.5); + } + &.hinge { + &.fastOut { + @include animate-prefixer(animation-duration, $base-duration); + } + &.slowOut { + @include animate-prefixer(animation-duration, $base-duration * 3); + } + } + } +} diff --git a/src/sass/helpers/_delay.scss b/src/sass/helpers/_delay.scss new file mode 100644 index 00000000..63e9e4a3 --- /dev/null +++ b/src/sass/helpers/_delay.scss @@ -0,0 +1,67 @@ +.in .animated { + @include animate-prefixer (animation-delay, 0.5s); + &.delay500, &.delayIn500 { + @include animate-prefixer (animation-delay, 1s); + } + &.delay1, &.delay1000, &.delayIn1000 { + @include animate-prefixer (animation-delay, 1.5s); + } + &.delay1500, &.delayIn1500 { + @include animate-prefixer (animation-delay, 2s); + } + &.delay2,&.delay2000, &.delayIn2000 { + @include animate-prefixer (animation-delay, 2.5s); + } + &.delay2500, &.delayIn2500 { + @include animate-prefixer (animation-delay, 3s); + } + &.delay3,&.delay3000, &.delayIn3000 { + @include animate-prefixer (animation-delay, 3.5s); + } + &.delay3500, &.delayIn3500 { + @include animate-prefixer (animation-delay, 4s); + } + &.delay4, &.delay4000, &.delayIn4000 { + @include animate-prefixer (animation-delay, 4.5s); + } + &.delay4500, &.delayIn4500 { + @include animate-prefixer (animation-delay, 5s); + } + &.delay5, &delay5000, &delayIn5000 { + @include animate-prefixer (animation-delay, 5.5s); + } +} + +.out .animated { + //@include animate-prefixer (animation-delay, 0.5s); + &.delayOut500 { + @include animate-prefixer (animation-delay, 1s); + } + &.delayOut1000 { + @include animate-prefixer (animation-delay, 1.5s); + } + &.delayOut1500 { + @include animate-prefixer (animation-delay, 2s); + } + &.delayOut2000 { + @include animate-prefixer (animation-delay, 2.5s); + } + &.delayOut2500 { + @include animate-prefixer (animation-delay, 3s); + } + &.delayOut3000 { + @include animate-prefixer (animation-delay, 3.5s); + } + &.delayOut3500 { + @include animate-prefixer (animation-delay, 4s); + } + &.delayOut4000 { + @include animate-prefixer (animation-delay, 4.5s); + } + &.delayOut4500 { + @include animate-prefixer (animation-delay, 5s); + } + &delayOut5000 { + @include animate-prefixer (animation-delay, 5.5s); + } +} diff --git a/src/sass/helpers/_mixins.scss b/src/sass/helpers/_mixins.scss new file mode 100644 index 00000000..185c798a --- /dev/null +++ b/src/sass/helpers/_mixins.scss @@ -0,0 +1,40 @@ +/////////////////////////////////////////////////////////////////// +// Sass Mixins which will be used by the modules // +/////////////////////////////////////////////////////////////////// + +//===============================================================// +// Automatically add vendor prefixes in one hit // +//===============================================================// +// .fadeIn { // +// @include animate-prefixer(animation, 'fadeIn'); // +// } // +//===============================================================// +// // +//===============================================================// +@mixin animate-prefixer($property, $value...) { + -webkit-#{$property}: unquote('#{$value}'); + #{$property}: unquote('#{$value}'); +} +//===============================================================// +// Generate keyframes animations with vendor prefixes in one hit // +//===============================================================// +// .fadeIn { // +// @include animate-prefixer(animation, fadeIn); // +// } // +// @include animate-keyframe(fadeIn) { // +// 0% {opacity: 0;} // +// 100% {opacity: 1;} // +// } // +//===============================================================// +// Courtesy of @integralist: (twitter.com) // +//===============================================================// + +@mixin animate-keyframe($animation-name) { + @-webkit-keyframes #{$animation-name} { + @content; + } + + @keyframes #{$animation-name} { + @content; + } +} diff --git a/src/sass/helpers/_settings.scss b/src/sass/helpers/_settings.scss new file mode 100644 index 00000000..b643fa93 --- /dev/null +++ b/src/sass/helpers/_settings.scss @@ -0,0 +1,184 @@ +///////////////////////////////////////////////////////// +// Animation Default Settings // +///////////////////////////////////////////////////////// + + +// Base module settings +$base-duration : 1s !default; // used in 1-base module +$base-origin : top center !default; +$base-degrees : 30deg !default; // used in lightspeed & special modules +$base-fill-mode : both !default; +$base-iteration-count : infinite !default; + +$base-timing-function-in : ease-in !default; +$base-timing-function-out : ease-out !default; +$base-timing-function-in-out : ease-in-out !default; + +$base-distance : 10px !default; // used in fade, shake and bounce modules +$base-distance-big : 1000px !default; // used in fadeBig and bounce modules + + +// Rotate module settings +$rotate-degrees : 90deg !default; +$rotate-degrees-max : 200deg !default; +$rotate-origin : center center !default; + +// Flipper module settings +$flipper-perspective : 400px !default; +$flipper-translate : 150px !default; +$flipper-degrees : 10deg !default; +$flipper-degrees-max : 90deg !default; + + +// Hinge module settings +$hinge-origin : top left !default; +$hinge-degrees-max : 80deg !default; +$hinge-translate : 700px !default; + + +//==================================================================================================// +// Module loading // +//==================================================================================================// +// To include an animation module in the compiled css file, simply set it's attribute below to true // +// (all modules set to false will not be included) // +// The idea here is to only load the animations you want to use on a per project basis // +// This helps keep the compiled css file at its leanest // +//==================================================================================================// +// Hugely influenced and inspired by @csswizardry's inuit.css _vars.scss file // +//==================================================================================================// + +$use-all : false !default; // all animations status +$use-fade : $use-all !default; // all fades +$use-bounce : $use-all !default; // all bounces +$use-rotate : $use-all !default; // all rotates +$use-slide : $use-all !default; // all slide animations +$use-flipers : $use-all !default; // all flip animations +$use-light-speed : $use-all !default; // all light speed animations +$use-attention-seekers : $use-all !default; // all attention seeker animations +$use-special : $use-all !default; // all special animations +$use-zoom : $use-all !default; // all zoom animations +// Fade Enter +$use-fade-in : $use-fade !default; +$use-fadeIn : $use-fade-in !default; +$use-fadeInUp : $use-fade-in !default; +$use-fadeInUpBig : $use-fade-in !default; +$use-fadeInDown : $use-fade-in !default; +$use-fadeInDownBig : $use-fade-in !default; +$use-fadeInLeft : $use-fade-in !default; +$use-fadeInLeftBig : $use-fade-in !default; +$use-fadeInRight : $use-fade-in !default; +$use-fadeInRightBig : $use-fade-in !default; + + +// Fade Exit +$use-fade-out : $use-fade !default; +$use-fadeOut : $use-fade-out !default; +$use-fadeOutUp : $use-fade-out !default; +$use-fadeOutUpBig : $use-fade-out !default; +$use-fadeOutDown : $use-fade-out !default; +$use-fadeOutDownBig : $use-fade-out !default; +$use-fadeOutLeft : $use-fade-out !default; +$use-fadeOutLeftBig : $use-fade-out !default; +$use-fadeOutRight : $use-fade-out !default; +$use-fadeOutRightBig : $use-fade-out !default; + + +// Bounce Enter +$use-bounce-in : $use-bounce !default; +$use-bounceIn : $use-bounce-in !default; +$use-bounceInUp : $use-bounce-in !default; +$use-bounceInDown : $use-bounce-in !default; +$use-bounceInLeft : $use-bounce-in !default; +$use-bounceInRight : $use-bounce-in !default; + + +// Bounce Exit +$use-bounce-out : $use-bounce !default; +$use-bounceOut : $use-bounce-out !default; +$use-bounceOutUp : $use-bounce-out !default; +$use-bounceOutDown : $use-bounce-out !default; +$use-bounceOutLeft : $use-bounce-out !default; +$use-bounceOutRight : $use-bounce-out !default; + + + +// Rotate Enter +$use-rotate-in : $use-rotate !default; +$use-rotateIn : $use-rotate-in !default; +$use-rotateInUpLeft : $use-rotate-in !default; +$use-rotateInUpRight : $use-rotate-in !default; +$use-rotateInDownLeft : $use-rotate-in !default; +$use-rotateInDownRight : $use-rotate-in !default; + + +// Rotate Exit +$use-rotate-out : $use-rotate !default; +$use-rotateOut : $use-rotate-out !default; +$use-rotateOutUpLeft : $use-rotate-out !default; +$use-rotateOutUpRight : $use-rotate-out !default; +$use-rotateOutDownLeft : $use-rotate-out !default; +$use-rotateOutDownRight : $use-rotate-out !default; + + +// Slide Enter +$use-slide-in : $use-slide !default; +$use-slideIn : $use-slide-in !default; +$use-slideInUp : $use-slide-in !default; +$use-slideInDown : $use-slide-in !default; +$use-slideInLeft : $use-slide-in !default; +$use-slideInRight : $use-slide-in !default; + +// Slide Exit +$use-slide-out : $use-slide !default; +$use-slideOut : $use-slide-out !default; +$use-slideOutUp : $use-slide-out !default; +$use-slideOutDown : $use-slide-out !default; +$use-slideOutLeft : $use-slide-out !default; +$use-slideOutRight : $use-slide-out !default; + +// Flippers +$use-flip : $use-flipers !default; +$use-flipInX : $use-flipers !default; +$use-flipInY : $use-flipers !default; +$use-flipOutX : $use-flipers !default; +$use-flipOutY : $use-flipers !default; + + +// Lightspeed +$use-lightSpeedIn : $use-light-speed !default; +$use-lightSpeedOut : $use-light-speed !default; + + +// Attention Seekers +$use-bounce : $use-attention-seekers !default; +$use-flash : $use-attention-seekers !default; +$use-pulse : $use-attention-seekers !default; +$use-wiggle : $use-attention-seekers !default; +$use-swing : $use-attention-seekers !default; +$use-shake : $use-attention-seekers !default; +$use-tada : $use-attention-seekers !default; +$use-wobble : $use-attention-seekers !default; + + +// Special +$use-hinge : $use-special !default; +$use-rollIn : $use-special !default; +$use-rollOut : $use-special !default; + + +// Zoom In +$use-zoom-in : $use-zoom !default; +$use-zoomIn : $use-zoom-in !default; +$use-zoomInDown : $use-zoom-in !default; +$use-zoomInLeft : $use-zoom-in !default; +$use-zoomInRight : $use-zoom-in !default; +$use-zoomInUp : $use-zoom-in !default; + + +// Zoom Out +$use-zoom-out : $use-zoom !default; +$use-zoomOut : $use-zoom-out !default; +$use-zoomOutDown : $use-zoom-out !default; +$use-zoomOutLeft : $use-zoom-out !default; +$use-zoomOutRight : $use-zoom-out !default; +$use-zoomOutUp : $use-zoom-out !default; From ab7339e1a78eb6d5a8a011eb5bb023ae66eca7ca Mon Sep 17 00:00:00 2001 From: magicbruno Date: Mon, 23 Jan 2017 18:07:47 +0100 Subject: [PATCH 2/6] Pull request version --- .gitignore | 3 +- Gruntfile.js | 8 +- dist/jquery.bxslider.css | 2150 ++++++++++++++++- dist/jquery.bxslider.js | 625 +++-- dist/jquery.bxslider.min.css | 8 +- dist/jquery.bxslider.min.js | 4 +- readme.md | 132 +- src/config.rb | 28 + src/css/animate_custom.css | 2145 ++++++++++++++++ src/css/jquery.bxslider.css | 2 +- src/js/.jscsrc | 1 - src/js/jquery.bxslider.js | 623 +++-- src/sass/_animate.scss | 98 + src/sass/animate_custom.scss | 112 + .../animations/attention-seekers/_bounce.scss | 19 + .../animations/attention-seekers/_flash.scss | 12 + .../animations/attention-seekers/_pulse.scss | 21 + .../animations/attention-seekers/_shake.scss | 18 + .../animations/attention-seekers/_swing.scss | 25 + .../animations/attention-seekers/_tada.scss | 23 + .../animations/attention-seekers/_wiggle.scss | 36 + .../animations/attention-seekers/_wobble.scss | 29 + .../animations/bounce-enter/_bounceIn.scss | 47 + .../bounce-enter/_bounceInDown.scss | 47 + .../bounce-enter/_bounceInLeft.scss | 47 + .../bounce-enter/_bounceInRight.scss | 47 + .../animations/bounce-enter/_bounceInUp.scss | 47 + .../animations/bounce-exit/_bounceOut.scss | 47 + .../bounce-exit/_bounceOutDown.scss | 39 + .../bounce-exit/_bounceOutLeft.scss | 39 + .../bounce-exit/_bounceOutRight.scss | 39 + .../animations/bounce-exit/_bounceOutUp.scss | 39 + src/sass/animations/fade-enter/_fadeIn.scss | 12 + .../animations/fade-enter/_fadeInDown.scss | 31 + .../animations/fade-enter/_fadeInDownBig.scss | 30 + .../animations/fade-enter/_fadeInLeft.scss | 31 + .../animations/fade-enter/_fadeInLeftBig.scss | 31 + .../animations/fade-enter/_fadeInRight.scss | 30 + .../fade-enter/_fadeInRightBig.scss | 30 + src/sass/animations/fade-enter/_fadeInUp.scss | 31 + .../animations/fade-enter/_fadeInUpBig.scss | 31 + src/sass/animations/fade-exit/_fadeOut.scss | 12 + .../animations/fade-exit/_fadeOutDown.scss | 30 + .../animations/fade-exit/_fadeOutDownBig.scss | 30 + .../animations/fade-exit/_fadeOutLeft.scss | 31 + .../animations/fade-exit/_fadeOutLeftBig.scss | 31 + .../animations/fade-exit/_fadeOutRight.scss | 30 + .../fade-exit/_fadeOutRightBig.scss | 30 + src/sass/animations/fade-exit/_fadeOutUp.scss | 31 + .../animations/fade-exit/_fadeOutUpBig.scss | 31 + src/sass/animations/flippers/_flip.scss | 55 + src/sass/animations/flippers/_flipInX.scss | 48 + src/sass/animations/flippers/_flipInY.scss | 48 + src/sass/animations/flippers/_flipOutX.scss | 30 + src/sass/animations/flippers/_flipOutY.scss | 29 + .../animations/lightspeed/_lightSpeedIn.scss | 22 + .../animations/lightspeed/_lightSpeedOut.scss | 17 + .../animations/rotate-enter/_rotateIn.scss | 35 + .../rotate-enter/_rotateInDownLeft.scss | 35 + .../rotate-enter/_rotateInDownRight.scss | 35 + .../rotate-enter/_rotateInUpLeft.scss | 35 + .../rotate-enter/_rotateInUpRight.scss | 35 + .../animations/rotate-exit/_rotateOut.scss | 35 + .../rotate-exit/_rotateOutDownLeft.scss | 34 + .../rotate-exit/_rotateOutDownRight.scss | 34 + .../rotate-exit/_rotateOutUpLeft.scss | 35 + .../rotate-exit/_rotateOutUpRight.scss | 34 + .../animations/slide-enter/_slideInDown.scss | 29 + .../animations/slide-enter/_slideInLeft.scss | 29 + .../animations/slide-enter/_slideInRight.scss | 29 + .../animations/slide-enter/_slideInUp.scss | 29 + .../animations/slide-exit/_slideOutDown.scss | 29 + .../animations/slide-exit/_slideOutLeft.scss | 29 + .../animations/slide-exit/_slideOutRight.scss | 29 + .../animations/slide-exit/_slideOutUp.scss | 29 + src/sass/animations/special/_hinge.scss | 22 + src/sass/animations/special/_rollIn.scss | 19 + src/sass/animations/special/_rollOut.scss | 33 + src/sass/animations/zoom-enter/_zoomIn.scss | 28 + .../animations/zoom-enter/_zoomInDown.scss | 31 + .../animations/zoom-enter/_zoomInLeft.scss | 31 + .../animations/zoom-enter/_zoomInRight.scss | 31 + src/sass/animations/zoom-enter/_zoomInUp.scss | 31 + src/sass/animations/zoom-exit/_zoomOut.scss | 32 + .../animations/zoom-exit/_zoomOutDown.scss | 32 + .../animations/zoom-exit/_zoomOutLeft.scss | 30 + .../animations/zoom-exit/_zoomOutRight.scss | 30 + src/sass/animations/zoom-exit/_zoomOutUp.scss | 32 + src/sass/helpers/_base.scss | 79 + src/sass/helpers/_delay.scss | 67 + src/sass/helpers/_mixins.scss | 40 + src/sass/helpers/_settings.scss | 184 ++ 92 files changed, 8118 insertions(+), 535 deletions(-) create mode 100644 src/config.rb create mode 100644 src/css/animate_custom.css create mode 100644 src/sass/_animate.scss create mode 100644 src/sass/animate_custom.scss create mode 100644 src/sass/animations/attention-seekers/_bounce.scss create mode 100644 src/sass/animations/attention-seekers/_flash.scss create mode 100644 src/sass/animations/attention-seekers/_pulse.scss create mode 100644 src/sass/animations/attention-seekers/_shake.scss create mode 100644 src/sass/animations/attention-seekers/_swing.scss create mode 100644 src/sass/animations/attention-seekers/_tada.scss create mode 100644 src/sass/animations/attention-seekers/_wiggle.scss create mode 100644 src/sass/animations/attention-seekers/_wobble.scss create mode 100644 src/sass/animations/bounce-enter/_bounceIn.scss create mode 100644 src/sass/animations/bounce-enter/_bounceInDown.scss create mode 100644 src/sass/animations/bounce-enter/_bounceInLeft.scss create mode 100644 src/sass/animations/bounce-enter/_bounceInRight.scss create mode 100644 src/sass/animations/bounce-enter/_bounceInUp.scss create mode 100644 src/sass/animations/bounce-exit/_bounceOut.scss create mode 100644 src/sass/animations/bounce-exit/_bounceOutDown.scss create mode 100644 src/sass/animations/bounce-exit/_bounceOutLeft.scss create mode 100644 src/sass/animations/bounce-exit/_bounceOutRight.scss create mode 100644 src/sass/animations/bounce-exit/_bounceOutUp.scss create mode 100644 src/sass/animations/fade-enter/_fadeIn.scss create mode 100644 src/sass/animations/fade-enter/_fadeInDown.scss create mode 100644 src/sass/animations/fade-enter/_fadeInDownBig.scss create mode 100644 src/sass/animations/fade-enter/_fadeInLeft.scss create mode 100644 src/sass/animations/fade-enter/_fadeInLeftBig.scss create mode 100644 src/sass/animations/fade-enter/_fadeInRight.scss create mode 100644 src/sass/animations/fade-enter/_fadeInRightBig.scss create mode 100644 src/sass/animations/fade-enter/_fadeInUp.scss create mode 100644 src/sass/animations/fade-enter/_fadeInUpBig.scss create mode 100644 src/sass/animations/fade-exit/_fadeOut.scss create mode 100644 src/sass/animations/fade-exit/_fadeOutDown.scss create mode 100644 src/sass/animations/fade-exit/_fadeOutDownBig.scss create mode 100644 src/sass/animations/fade-exit/_fadeOutLeft.scss create mode 100644 src/sass/animations/fade-exit/_fadeOutLeftBig.scss create mode 100644 src/sass/animations/fade-exit/_fadeOutRight.scss create mode 100644 src/sass/animations/fade-exit/_fadeOutRightBig.scss create mode 100644 src/sass/animations/fade-exit/_fadeOutUp.scss create mode 100644 src/sass/animations/fade-exit/_fadeOutUpBig.scss create mode 100644 src/sass/animations/flippers/_flip.scss create mode 100644 src/sass/animations/flippers/_flipInX.scss create mode 100644 src/sass/animations/flippers/_flipInY.scss create mode 100644 src/sass/animations/flippers/_flipOutX.scss create mode 100644 src/sass/animations/flippers/_flipOutY.scss create mode 100644 src/sass/animations/lightspeed/_lightSpeedIn.scss create mode 100644 src/sass/animations/lightspeed/_lightSpeedOut.scss create mode 100644 src/sass/animations/rotate-enter/_rotateIn.scss create mode 100644 src/sass/animations/rotate-enter/_rotateInDownLeft.scss create mode 100644 src/sass/animations/rotate-enter/_rotateInDownRight.scss create mode 100644 src/sass/animations/rotate-enter/_rotateInUpLeft.scss create mode 100644 src/sass/animations/rotate-enter/_rotateInUpRight.scss create mode 100644 src/sass/animations/rotate-exit/_rotateOut.scss create mode 100644 src/sass/animations/rotate-exit/_rotateOutDownLeft.scss create mode 100644 src/sass/animations/rotate-exit/_rotateOutDownRight.scss create mode 100644 src/sass/animations/rotate-exit/_rotateOutUpLeft.scss create mode 100644 src/sass/animations/rotate-exit/_rotateOutUpRight.scss create mode 100644 src/sass/animations/slide-enter/_slideInDown.scss create mode 100644 src/sass/animations/slide-enter/_slideInLeft.scss create mode 100644 src/sass/animations/slide-enter/_slideInRight.scss create mode 100644 src/sass/animations/slide-enter/_slideInUp.scss create mode 100644 src/sass/animations/slide-exit/_slideOutDown.scss create mode 100644 src/sass/animations/slide-exit/_slideOutLeft.scss create mode 100644 src/sass/animations/slide-exit/_slideOutRight.scss create mode 100644 src/sass/animations/slide-exit/_slideOutUp.scss create mode 100644 src/sass/animations/special/_hinge.scss create mode 100644 src/sass/animations/special/_rollIn.scss create mode 100644 src/sass/animations/special/_rollOut.scss create mode 100644 src/sass/animations/zoom-enter/_zoomIn.scss create mode 100644 src/sass/animations/zoom-enter/_zoomInDown.scss create mode 100644 src/sass/animations/zoom-enter/_zoomInLeft.scss create mode 100644 src/sass/animations/zoom-enter/_zoomInRight.scss create mode 100644 src/sass/animations/zoom-enter/_zoomInUp.scss create mode 100644 src/sass/animations/zoom-exit/_zoomOut.scss create mode 100644 src/sass/animations/zoom-exit/_zoomOutDown.scss create mode 100644 src/sass/animations/zoom-exit/_zoomOutLeft.scss create mode 100644 src/sass/animations/zoom-exit/_zoomOutRight.scss create mode 100644 src/sass/animations/zoom-exit/_zoomOutUp.scss create mode 100644 src/sass/helpers/_base.scss create mode 100644 src/sass/helpers/_delay.scss create mode 100644 src/sass/helpers/_mixins.scss create mode 100644 src/sass/helpers/_settings.scss diff --git a/.gitignore b/.gitignore index 1da0199b..6703f10f 100644 --- a/.gitignore +++ b/.gitignore @@ -3,4 +3,5 @@ jscs.report.txt /bower_components/ .DS_Store /node_modules -jquery.bxslider.zip \ No newline at end of file +jquery.bxslider.zip +/exclude/ \ No newline at end of file diff --git a/Gruntfile.js b/Gruntfile.js index 03d77c0b..2c37a51e 100644 --- a/Gruntfile.js +++ b/Gruntfile.js @@ -1,11 +1,12 @@ -/** + +/********************************** * bxSlider * * Steven Wanderski * * Copyright (c) 2014 * Licensed under the MIT license. - */ + **********************************/ module.exports = function(grunt) { var path = require('path'); @@ -160,7 +161,8 @@ module.exports = function(grunt) { // jshint jshint: { options: { - jshintrc: 'src/js/.jshintrc' + jshintrc: 'src/js/.jshintrc', + reporterOutput: '' }, dist: { src: ['<%= app.src.scripts %>', 'Gruntfile.js'] diff --git a/dist/jquery.bxslider.css b/dist/jquery.bxslider.css index ca610490..2de391bb 100644 --- a/dist/jquery.bxslider.css +++ b/dist/jquery.bxslider.css @@ -1,11 +1,2157 @@ /** * bxSlider v4.2.5 - * Copyright 2013-2015 Steven Wanderski + * Copyright 2013-2017 Steven Wanderski * Written while drinking Belgian ales and listening to jazz * Licensed under MIT (http://opensource.org/licenses/MIT) */ +/*! +Animate.css - http://daneden.me/animate +Licensed under the MIT license - http://opensource.org/licenses/MIT +Copyright (c) 2015 Daniel Eden +*/ +/* line 9, ../sass/helpers/_base.scss */ +body { + -webkit-backface-visibility: hidden; +} + +/* line 13, ../sass/helpers/_base.scss */ +.animated { + -webkit-animation-duration: 1s; + animation-duration: 1s; + -webkit-animation-fill-mode: both; + animation-fill-mode: both; +} +/* line 16, ../sass/helpers/_base.scss */ +.animated.infinite { + animation-iteration-count: infinite; +} +/* line 19, ../sass/helpers/_base.scss */ +.animated.hinge { + -webkit-animation-duration: 2s; + animation-duration: 2s; +} +/* line 22, ../sass/helpers/_base.scss */ +.animated.bounceIn, .animated.bounceOut { + -webkit-animation-duration: 0.75s; + animation-duration: 0.75s; +} +/* line 26, ../sass/helpers/_base.scss */ +.animated.flipOutX, .animated.flipOutY { + -webkit-animation-duration: 0.75s; + animation-duration: 0.75s; +} + +/* line 34, ../sass/helpers/_base.scss */ +.in .animated.fast, .in .animated.fastIn { + -webkit-animation-duration: 0.5s; + animation-duration: 0.5s; +} +/* line 38, ../sass/helpers/_base.scss */ +.in .animated.slow, .in .animated.slowIn { + -webkit-animation-duration: 1.5s; + animation-duration: 1.5s; +} +/* line 42, ../sass/helpers/_base.scss */ +.in .animated.xslow, .in .animated.xslowIn { + -webkit-animation-duration: 2.5s; + animation-duration: 2.5s; +} +/* line 47, ../sass/helpers/_base.scss */ +.in .animated.hinge.fast, .in .animated.hinge.fastIn { + -webkit-animation-duration: 1s; + animation-duration: 1s; +} +/* line 51, ../sass/helpers/_base.scss */ +.in .animated.hinge.slow, .in .animated.hinge.slowIn { + -webkit-animation-duration: 3s; + animation-duration: 3s; +} + +/* line 61, ../sass/helpers/_base.scss */ +.out .animated.fastOut { + -webkit-animation-duration: 0.5s; + animation-duration: 0.5s; +} +/* line 64, ../sass/helpers/_base.scss */ +.out .animated.slowOut { + -webkit-animation-duration: 1.5s; + animation-duration: 1.5s; +} +/* line 67, ../sass/helpers/_base.scss */ +.out .animated.xslowOut { + -webkit-animation-duration: 2.5s; + animation-duration: 2.5s; +} +/* line 71, ../sass/helpers/_base.scss */ +.out .animated.hinge.fastOut { + -webkit-animation-duration: 1s; + animation-duration: 1s; +} +/* line 74, ../sass/helpers/_base.scss */ +.out .animated.hinge.slowOut { + -webkit-animation-duration: 3s; + animation-duration: 3s; +} + +/* line 1, ../sass/helpers/_delay.scss */ +.in .animated { + -webkit-animation-delay: 0.5s; + animation-delay: 0.5s; +} +/* line 3, ../sass/helpers/_delay.scss */ +.in .animated.delay500, .in .animated.delayIn500 { + -webkit-animation-delay: 1s; + animation-delay: 1s; +} +/* line 6, ../sass/helpers/_delay.scss */ +.in .animated.delay1, .in .animated.delay1000, .in .animated.delayIn1000 { + -webkit-animation-delay: 1.5s; + animation-delay: 1.5s; +} +/* line 9, ../sass/helpers/_delay.scss */ +.in .animated.delay1500, .in .animated.delayIn1500 { + -webkit-animation-delay: 2s; + animation-delay: 2s; +} +/* line 12, ../sass/helpers/_delay.scss */ +.in .animated.delay2, .in .animated.delay2000, .in .animated.delayIn2000 { + -webkit-animation-delay: 2.5s; + animation-delay: 2.5s; +} +/* line 15, ../sass/helpers/_delay.scss */ +.in .animated.delay2500, .in .animated.delayIn2500 { + -webkit-animation-delay: 3s; + animation-delay: 3s; +} +/* line 18, ../sass/helpers/_delay.scss */ +.in .animated.delay3, .in .animated.delay3000, .in .animated.delayIn3000 { + -webkit-animation-delay: 3.5s; + animation-delay: 3.5s; +} +/* line 21, ../sass/helpers/_delay.scss */ +.in .animated.delay3500, .in .animated.delayIn3500 { + -webkit-animation-delay: 4s; + animation-delay: 4s; +} +/* line 24, ../sass/helpers/_delay.scss */ +.in .animated.delay4, .in .animated.delay4000, .in .animated.delayIn4000 { + -webkit-animation-delay: 4.5s; + animation-delay: 4.5s; +} +/* line 27, ../sass/helpers/_delay.scss */ +.in .animated.delay4500, .in .animated.delayIn4500 { + -webkit-animation-delay: 5s; + animation-delay: 5s; +} +/* line 30, ../sass/helpers/_delay.scss */ +.in .animated.delay5, .in .animateddelay5000, .in .animateddelayIn5000 { + -webkit-animation-delay: 5.5s; + animation-delay: 5.5s; +} + +/* line 37, ../sass/helpers/_delay.scss */ +.out .animated.delayOut500 { + -webkit-animation-delay: 1s; + animation-delay: 1s; +} +/* line 40, ../sass/helpers/_delay.scss */ +.out .animated.delayOut1000 { + -webkit-animation-delay: 1.5s; + animation-delay: 1.5s; +} +/* line 43, ../sass/helpers/_delay.scss */ +.out .animated.delayOut1500 { + -webkit-animation-delay: 2s; + animation-delay: 2s; +} +/* line 46, ../sass/helpers/_delay.scss */ +.out .animated.delayOut2000 { + -webkit-animation-delay: 2.5s; + animation-delay: 2.5s; +} +/* line 49, ../sass/helpers/_delay.scss */ +.out .animated.delayOut2500 { + -webkit-animation-delay: 3s; + animation-delay: 3s; +} +/* line 52, ../sass/helpers/_delay.scss */ +.out .animated.delayOut3000 { + -webkit-animation-delay: 3.5s; + animation-delay: 3.5s; +} +/* line 55, ../sass/helpers/_delay.scss */ +.out .animated.delayOut3500 { + -webkit-animation-delay: 4s; + animation-delay: 4s; +} +/* line 58, ../sass/helpers/_delay.scss */ +.out .animated.delayOut4000 { + -webkit-animation-delay: 4.5s; + animation-delay: 4.5s; +} +/* line 61, ../sass/helpers/_delay.scss */ +.out .animated.delayOut4500 { + -webkit-animation-delay: 5s; + animation-delay: 5s; +} +/* line 64, ../sass/helpers/_delay.scss */ +.out .animateddelayOut5000 { + -webkit-animation-delay: 5.5s; + animation-delay: 5.5s; +} + +@-webkit-keyframes bounce { + 0%, 20%, 50%, 80%, 100% { + -webkit-transform: translateY(0); + } + 40% { + -webkit-transform: translateY(-30px); + } + 60% { + -webkit-transform: translateY(-15px); + } +} +@keyframes bounce { + 0%, 20%, 50%, 80%, 100% { + transform: translateY(0); + } + 40% { + transform: translateY(-30px); + } + 60% { + transform: translateY(-15px); + } +} +/* line 15, ../sass/animations/attention-seekers/_bounce.scss */ +.bounce { + -webkit-animation-name: bounce; + animation-name: bounce; +} + +@-webkit-keyframes bounceIn { + 0% { + opacity: 0; + -webkit-transform: scale(0.3); + } + 50% { + opacity: 1; + -webkit-transform: scale(1.05); + } + 70% { + -webkit-transform: scale(0.9); + } + 100% { + -webkit-transform: scale(1); + } +} +@keyframes bounceIn { + 0% { + opacity: 0; + transform: scale(0.3); + } + 50% { + opacity: 1; + transform: scale(1.05); + } + 70% { + transform: scale(0.9); + } + 100% { + transform: scale(1); + } +} +/* line 43, ../sass/animations/bounce-enter/_bounceIn.scss */ +.in .bounceIn { + -webkit-animation-name: bounceIn; + animation-name: bounceIn; +} + +@-webkit-keyframes bounceInDown { + 0% { + opacity: 0; + -webkit-transform: translateY(-2000px); + } + 60% { + opacity: 1; + -webkit-transform: translateY(30px); + } + 80% { + -webkit-transform: translateY(-10px); + } + 100% { + -webkit-transform: translateY(0); + } +} +@keyframes bounceInDown { + 0% { + opacity: 0; + transform: translateY(-2000px); + } + 60% { + opacity: 1; + transform: translateY(30px); + } + 80% { + transform: translateY(-10px); + } + 100% { + transform: translateY(0); + } +} +/* line 43, ../sass/animations/bounce-enter/_bounceInDown.scss */ +.in .bounceInDown { + -webkit-animation-name: bounceInDown; + animation-name: bounceInDown; +} + +@-webkit-keyframes bounceInLeft { + 0% { + opacity: 0; + -webkit-transform: translateX(-2000px); + } + 60% { + opacity: 1; + -webkit-transform: translateX(30px); + } + 80% { + -webkit-transform: translateX(-10px); + } + 100% { + -webkit-transform: translateX(0); + } +} +@keyframes bounceInLeft { + 0% { + opacity: 0; + transform: translateX(-2000px); + } + 60% { + opacity: 1; + transform: translateX(30px); + } + 80% { + transform: translateX(-10px); + } + 100% { + transform: translateX(0); + } +} +/* line 43, ../sass/animations/bounce-enter/_bounceInLeft.scss */ +.in .bounceInLeft { + -webkit-animation-name: bounceInLeft; + animation-name: bounceInLeft; +} + +@-webkit-keyframes bounceInRight { + 0% { + opacity: 0; + -webkit-transform: translateX(2000px); + } + 60% { + opacity: 1; + -webkit-transform: translateX(-30px); + } + 80% { + -webkit-transform: translateX(10px); + } + 100% { + -webkit-transform: translateX(0); + } +} +@keyframes bounceInRight { + 0% { + opacity: 0; + transform: translateX(2000px); + } + 60% { + opacity: 1; + transform: translateX(-30px); + } + 80% { + transform: translateX(10px); + } + 100% { + transform: translateX(0); + } +} +/* line 43, ../sass/animations/bounce-enter/_bounceInRight.scss */ +.in .bounceInRight { + -webkit-animation-name: bounceInRight; + animation-name: bounceInRight; +} + +@-webkit-keyframes bounceInUp { + 0% { + opacity: 0; + -webkit-transform: translateY(2000px); + } + 60% { + opacity: 1; + -webkit-transform: translateY(-30px); + } + 80% { + -webkit-transform: translateY(10px); + } + 100% { + -webkit-transform: translateY(0); + } +} +@keyframes bounceInUp { + 0% { + opacity: 0; + transform: translateY(2000px); + } + 60% { + opacity: 1; + transform: translateY(-30px); + } + 80% { + transform: translateY(10px); + } + 100% { + transform: translateY(0); + } +} +/* line 43, ../sass/animations/bounce-enter/_bounceInUp.scss */ +.in .bounceInUp { + -webkit-animation-name: bounceInUp; + animation-name: bounceInUp; +} + +@-webkit-keyframes bounceOut { + 0% { + -webkit-transform: scale(1); + } + 25% { + -webkit-transform: scale(0.95); + } + 50% { + opacity: 1; + -webkit-transform: scale(1.1); + } + 100% { + opacity: 0; + -webkit-transform: scale(0.3); + } +} +@keyframes bounceOut { + 0% { + transform: scale(1); + } + 25% { + transform: scale(0.95); + } + 50% { + opacity: 1; + transform: scale(1.1); + } + 100% { + opacity: 0; + transform: scale(0.3); + } +} +/* line 43, ../sass/animations/bounce-exit/_bounceOut.scss */ +.out .bounceOut { + -webkit-animation-name: bounceOut; + animation-name: bounceOut; +} + +@-webkit-keyframes bounceOutDown { + 0% { + -webkit-transform: translateY(0); + } + 20% { + opacity: 1; + -webkit-transform: translateY(-20px); + } + 100% { + opacity: 0; + -webkit-transform: translateY(2000px); + } +} +@keyframes bounceOutDown { + 0% { + transform: translateY(0); + } + 20% { + opacity: 1; + transform: translateY(-20px); + } + 100% { + opacity: 0; + transform: translateY(2000px); + } +} +/* line 35, ../sass/animations/bounce-exit/_bounceOutDown.scss */ +.out .bounceOutDown { + -webkit-animation-name: bounceOutDown; + animation-name: bounceOutDown; +} + +@-webkit-keyframes bounceOutLeft { + 0% { + -webkit-transform: translateX(0); + } + 20% { + opacity: 1; + -webkit-transform: translateX(20px); + } + 100% { + opacity: 0; + -webkit-transform: translateX(-2000px); + } +} +@keyframes bounceOutLeft { + 0% { + transform: translateX(0); + } + 20% { + opacity: 1; + transform: translateX(20px); + } + 100% { + opacity: 0; + transform: translateX(-2000px); + } +} +/* line 35, ../sass/animations/bounce-exit/_bounceOutLeft.scss */ +.out .bounceOutLeft { + -webkit-animation-name: bounceOutLeft; + animation-name: bounceOutLeft; +} + +@-webkit-keyframes bounceOutRight { + 0% { + -webkit-transform: translateX(0); + } + 20% { + opacity: 1; + -webkit-transform: translateX(-20px); + } + 100% { + opacity: 0; + -webkit-transform: translateX(2000px); + } +} +@keyframes bounceOutRight { + 0% { + transform: translateX(0); + } + 20% { + opacity: 1; + transform: translateX(-20px); + } + 100% { + opacity: 0; + transform: translateX(2000px); + } +} +/* line 35, ../sass/animations/bounce-exit/_bounceOutRight.scss */ +.out .bounceOutRight { + -webkit-animation-name: bounceOutRight; + animation-name: bounceOutRight; +} + +@-webkit-keyframes bounceOutUp { + 0% { + -webkit-transform: translateY(0); + } + 20% { + opacity: 1; + -webkit-transform: translateY(20px); + } + 100% { + opacity: 0; + -webkit-transform: translateY(-2000px); + } +} +@keyframes bounceOutUp { + 0% { + transform: translateY(0); + } + 20% { + opacity: 1; + transform: translateY(20px); + } + 100% { + opacity: 0; + transform: translateY(-2000px); + } +} +/* line 35, ../sass/animations/bounce-exit/_bounceOutUp.scss */ +.out .bounceOutUp { + -webkit-animation-name: bounceOutUp; + animation-name: bounceOutUp; +} + +@-webkit-keyframes fadeIn { + 0% { + opacity: 0; + } + 100% { + opacity: 1; + } +} +@keyframes fadeIn { + 0% { + opacity: 0; + } + 100% { + opacity: 1; + } +} +/* line 8, ../sass/animations/fade-enter/_fadeIn.scss */ +.in .fadeIn { + -webkit-animation-name: fadeIn; + animation-name: fadeIn; +} + +@-webkit-keyframes fadeInDown { + 0% { + opacity: 0; + -webkit-transform: translateY(-20px); + } + 100% { + opacity: 1; + -webkit-transform: translateY(0); + } +} +@keyframes fadeInDown { + 0% { + opacity: 0; + transform: translateY(-20px); + } + 100% { + opacity: 1; + transform: translateY(0); + } +} +/* line 27, ../sass/animations/fade-enter/_fadeInDown.scss */ +.in .fadeInDown { + -webkit-animation-name: fadeInDown; + animation-name: fadeInDown; +} + +@-webkit-keyframes fadeInDownBig { + 0% { + opacity: 0; + -webkit-transform: translateY(-2000px); + } + 100% { + opacity: 1; + -webkit-transform: translateY(0); + } +} +@keyframes fadeInDownBig { + 0% { + opacity: 0; + transform: translateY(-2000px); + } + 100% { + opacity: 1; + transform: translateY(0); + } +} +/* line 27, ../sass/animations/fade-enter/_fadeInDownBig.scss */ +.in .fadeInDownBig { + -webkit-animation-name: fadeInDownBig; + animation-name: fadeInDownBig; +} + +@-webkit-keyframes fadeInLeft { + 0% { + opacity: 0; + -webkit-transform: translateX(-20px); + } + 100% { + opacity: 1; + -webkit-transform: translateX(0); + } +} +@keyframes fadeInLeft { + 0% { + opacity: 0; + transform: translateX(-20px); + } + 100% { + opacity: 1; + transform: translateX(0); + } +} +/* line 27, ../sass/animations/fade-enter/_fadeInLeft.scss */ +.in .fadeInLeft { + -webkit-animation-name: fadeInLeft; + animation-name: fadeInLeft; +} + +@-webkit-keyframes fadeInLeftBig { + 0% { + opacity: 0; + -webkit-transform: translateX(-2000px); + } + 100% { + opacity: 1; + -webkit-transform: translateX(0); + } +} +@keyframes fadeInLeftBig { + 0% { + opacity: 0; + transform: translateX(-2000px); + } + 100% { + opacity: 1; + transform: translateX(0); + } +} +/* line 27, ../sass/animations/fade-enter/_fadeInLeftBig.scss */ +.in .fadeInLeftBig { + -webkit-animation-name: fadeInLeftBig; + animation-name: fadeInLeftBig; +} + +@-webkit-keyframes fadeInRight { + 0% { + opacity: 0; + -webkit-transform: translateX(20px); + } + 100% { + opacity: 1; + -webkit-transform: translateX(0); + } +} +@keyframes fadeInRight { + 0% { + opacity: 0; + transform: translateX(20px); + } + 100% { + opacity: 1; + transform: translateX(0); + } +} +/* line 27, ../sass/animations/fade-enter/_fadeInRight.scss */ +.in .fadeInRight { + -webkit-animation-name: fadeInRight; + animation-name: fadeInRight; +} + +@-webkit-keyframes fadeInRightBig { + 0% { + opacity: 0; + -webkit-transform: translateX(2000px); + } + 100% { + opacity: 1; + -webkit-transform: translateX(0); + } +} +@keyframes fadeInRightBig { + 0% { + opacity: 0; + transform: translateX(2000px); + } + 100% { + opacity: 1; + transform: translateX(0); + } +} +/* line 27, ../sass/animations/fade-enter/_fadeInRightBig.scss */ +.in .fadeInRightBig { + -webkit-animation-name: fadeInRightBig; + animation-name: fadeInRightBig; +} + +@-webkit-keyframes fadeInUp { + 0% { + opacity: 0; + -webkit-transform: translateY(20px); + } + 100% { + opacity: 1; + -webkit-transform: translateY(0); + } +} +@keyframes fadeInUp { + 0% { + opacity: 0; + transform: translateY(20px); + } + 100% { + opacity: 1; + transform: translateY(0); + } +} +/* line 27, ../sass/animations/fade-enter/_fadeInUp.scss */ +.in .fadeInUp { + -webkit-animation-name: fadeInUp; + animation-name: fadeInUp; +} + +@-webkit-keyframes fadeInUpBig { + 0% { + opacity: 0; + -webkit-transform: translateY(2000px); + } + 100% { + opacity: 1; + -webkit-transform: translateY(0); + } +} +@keyframes fadeInUpBig { + 0% { + opacity: 0; + transform: translateY(2000px); + } + 100% { + opacity: 1; + transform: translateY(0); + } +} +/* line 27, ../sass/animations/fade-enter/_fadeInUpBig.scss */ +.in .fadeInUpBig { + -webkit-animation-name: fadeInUpBig; + animation-name: fadeInUpBig; +} + +@-webkit-keyframes fadeOut { + 0% { + opacity: 1; + } + 100% { + opacity: 0; + } +} +@keyframes fadeOut { + 0% { + opacity: 1; + } + 100% { + opacity: 0; + } +} +/* line 8, ../sass/animations/fade-exit/_fadeOut.scss */ +.out .fadeOut { + -webkit-animation-name: fadeOut; + animation-name: fadeOut; +} + +@-webkit-keyframes fadeOutDown { + 0% { + opacity: 1; + -webkit-transform: translateY(0); + } + 100% { + opacity: 0; + -webkit-transform: translateY(20px); + } +} +@keyframes fadeOutDown { + 0% { + opacity: 1; + transform: translateY(0); + } + 100% { + opacity: 0; + transform: translateY(20px); + } +} +/* line 27, ../sass/animations/fade-exit/_fadeOutDown.scss */ +.out .fadeOutDown { + -webkit-animation-name: fadeOutDown; + animation-name: fadeOutDown; +} + +@-webkit-keyframes fadeOutDownBig { + 0% { + opacity: 1; + -webkit-transform: translateY(0); + } + 100% { + opacity: 0; + -webkit-transform: translateY(2000px); + } +} +@keyframes fadeOutDownBig { + 0% { + opacity: 1; + transform: translateY(0); + } + 100% { + opacity: 0; + transform: translateY(2000px); + } +} +/* line 27, ../sass/animations/fade-exit/_fadeOutDownBig.scss */ +.out .fadeOutDownBig { + -webkit-animation-name: fadeOutDownBig; + animation-name: fadeOutDownBig; +} + +@-webkit-keyframes fadeOutLeft { + 0% { + opacity: 1; + -webkit-transform: translateX(0); + } + 100% { + opacity: 0; + -webkit-transform: translateX(-20px); + } +} +@keyframes fadeOutLeft { + 0% { + opacity: 1; + transform: translateX(0); + } + 100% { + opacity: 0; + transform: translateX(-20px); + } +} +/* line 27, ../sass/animations/fade-exit/_fadeOutLeft.scss */ +.out .fadeOutLeft { + -webkit-animation-name: fadeOutLeft; + animation-name: fadeOutLeft; +} + +@-webkit-keyframes fadeOutLeftBig { + 0% { + opacity: 1; + -webkit-transform: translateX(0); + } + 100% { + opacity: 0; + -webkit-transform: translateX(-2000px); + } +} +@keyframes fadeOutLeftBig { + 0% { + opacity: 1; + transform: translateX(0); + } + 100% { + opacity: 0; + transform: translateX(-2000px); + } +} +/* line 27, ../sass/animations/fade-exit/_fadeOutLeftBig.scss */ +.out .fadeOutLeftBig { + -webkit-animation-name: fadeOutLeftBig; + animation-name: fadeOutLeftBig; +} + +@-webkit-keyframes fadeOutRight { + 0% { + opacity: 1; + -webkit-transform: translateX(0); + } + 100% { + opacity: 0; + -webkit-transform: translateX(20px); + } +} +@keyframes fadeOutRight { + 0% { + opacity: 1; + transform: translateX(0); + } + 100% { + opacity: 0; + transform: translateX(20px); + } +} +/* line 27, ../sass/animations/fade-exit/_fadeOutRight.scss */ +.out .fadeOutRight { + -webkit-animation-name: fadeOutRight; + animation-name: fadeOutRight; +} + +@-webkit-keyframes fadeOutRightBig { + 0% { + opacity: 1; + -webkit-transform: translateX(0); + } + 100% { + opacity: 0; + -webkit-transform: translateX(2000px); + } +} +@keyframes fadeOutRightBig { + 0% { + opacity: 1; + transform: translateX(0); + } + 100% { + opacity: 0; + transform: translateX(2000px); + } +} +/* line 27, ../sass/animations/fade-exit/_fadeOutRightBig.scss */ +.out .fadeOutRightBig { + -webkit-animation-name: fadeOutRightBig; + animation-name: fadeOutRightBig; +} + +@-webkit-keyframes fadeOutUp { + 0% { + opacity: 1; + -webkit-transform: translateY(0); + } + 100% { + opacity: 0; + -webkit-transform: translateY(-20px); + } +} +@keyframes fadeOutUp { + 0% { + opacity: 1; + transform: translateY(0); + } + 100% { + opacity: 0; + transform: translateY(-20px); + } +} +/* line 27, ../sass/animations/fade-exit/_fadeOutUp.scss */ +.out .fadeOutUp { + -webkit-animation-name: fadeOutUp; + animation-name: fadeOutUp; +} + +@-webkit-keyframes fadeOutUpBig { + 0% { + opacity: 1; + -webkit-transform: translateY(0); + } + 100% { + opacity: 0; + -webkit-transform: translateY(-2000px); + } +} +@keyframes fadeOutUpBig { + 0% { + opacity: 1; + transform: translateY(0); + } + 100% { + opacity: 0; + transform: translateY(-2000px); + } +} +/* line 27, ../sass/animations/fade-exit/_fadeOutUpBig.scss */ +.out .fadeOutUpBig { + -webkit-animation-name: fadeOutUpBig; + animation-name: fadeOutUpBig; +} + +@-webkit-keyframes flipInX { + 0% { + -webkit-transform: perspective(400px) rotateX(90deg); + opacity: 0; + } + 40% { + -webkit-transform: perspective(400px) rotateX(-10deg); + } + 70% { + -webkit-transform: perspective(400px) rotateX(10deg); + } + 100% { + -webkit-transform: perspective(400px) rotateX(0deg); + opacity: 1; + } +} +@keyframes flipInX { + 0% { + transform: perspective(400px) rotateX(90deg); + opacity: 0; + } + 40% { + transform: perspective(400px) rotateX(-10deg); + } + 70% { + transform: perspective(400px) rotateX(10deg); + } + 100% { + transform: perspective(400px) rotateX(0deg); + opacity: 1; + } +} +/* line 43, ../sass/animations/flippers/_flipInX.scss */ +.in .flipInX { + -webkit-backface-visibility: visible !important; + backface-visibility: visible !important; + -webkit-animation-name: flipInX; + animation-name: flipInX; +} + +@-webkit-keyframes flipInY { + 0% { + -webkit-transform: perspective(400px) rotateY(90deg); + opacity: 0; + } + 40% { + -webkit-transform: perspective(400px) rotateY(-10deg); + } + 70% { + -webkit-transform: perspective(400px) rotateY(10deg); + } + 100% { + -webkit-transform: perspective(400px) rotateY(0deg); + opacity: 1; + } +} +@keyframes flipInY { + 0% { + transform: perspective(400px) rotateY(90deg); + opacity: 0; + } + 40% { + transform: perspective(400px) rotateY(-10deg); + } + 70% { + transform: perspective(400px) rotateY(10deg); + } + 100% { + transform: perspective(400px) rotateY(0deg); + opacity: 1; + } +} +/* line 43, ../sass/animations/flippers/_flipInY.scss */ +.in .flipInY { + -webkit-backface-visibility: visible !important; + backface-visibility: visible !important; + -webkit-animation-name: flipInY; + animation-name: flipInY; +} + +@-webkit-keyframes flipOutX { + 0% { + -webkit-transform: perspective(400px) rotateX(0deg); + opacity: 1; + } + 100% { + -webkit-transform: perspective(400px) rotateX(90deg); + opacity: 0; + } +} +@keyframes flipOutX { + 0% { + transform: perspective(400px) rotateX(0deg); + opacity: 1; + } + 100% { + transform: perspective(400px) rotateX(90deg); + opacity: 0; + } +} +/* line 25, ../sass/animations/flippers/_flipOutX.scss */ +.out .flipOutX { + -webkit-animation-name: flipOutX; + animation-name: flipOutX; + -webkit-backface-visibility: visible !important; + backface-visibility: visible !important; +} + +@-webkit-keyframes flipOutY { + 0% { + -webkit-transform: perspective(400px) rotateY(0deg); + opacity: 1; + } + 100% { + -webkit-transform: perspective(400px) rotateY(90deg); + opacity: 0; + } +} +@keyframes flipOutY { + 0% { + transform: perspective(400px) rotateY(0deg); + opacity: 1; + } + 100% { + transform: perspective(400px) rotateY(90deg); + opacity: 0; + } +} +/* line 25, ../sass/animations/flippers/_flipOutY.scss */ +.out .flipOutY { + -webkit-backface-visibility: visible !important; + backface-visibility: visible !important; + -webkit-animation-name: flipOutY; + animation-name: flipOutY; +} + +@-webkit-keyframes lightSpeedIn { + 0% { + -webkit-transform: translateX(100%) skewX(-30deg); + opacity: 0; + } + 60% { + -webkit-transform: translateX(-20%) skewX(30deg); + opacity: 1; + } + 80% { + -webkit-transform: translateX(0%) skewX(-15deg); + opacity: 1; + } + 100% { + -webkit-transform: translateX(0%) skewX(0deg); + opacity: 1; + } +} +@keyframes lightSpeedIn { + 0% { + transform: translateX(100%) skewX(-30deg); + opacity: 0; + } + 60% { + transform: translateX(-20%) skewX(30deg); + opacity: 1; + } + 80% { + transform: translateX(0%) skewX(-15deg); + opacity: 1; + } + 100% { + transform: translateX(0%) skewX(0deg); + opacity: 1; + } +} +/* line 17, ../sass/animations/lightspeed/_lightSpeedIn.scss */ +.in .lightSpeedIn { + -webkit-animation-name: lightSpeedIn; + animation-name: lightSpeedIn; + -webkit-animation-timing-function: ease-out; + animation-timing-function: ease-out; +} + +@-webkit-keyframes lightSpeedOut { + 0% { + -webkit-transform: translateX(0%) skewX(0deg); + opacity: 1; + } + 100% { + -webkit-transform: translateX(100%) skewX(-30deg); + opacity: 0; + } +} +@keyframes lightSpeedOut { + 0% { + transform: translateX(0%) skewX(0deg); + opacity: 1; + } + 100% { + transform: translateX(100%) skewX(-30deg); + opacity: 0; + } +} +/* line 13, ../sass/animations/lightspeed/_lightSpeedOut.scss */ +.out .lightSpeedOut { + -webkit-animation-name: lightSpeedOut; + animation-name: lightSpeedOut; + -webkit-animation-timing-function: ease-in; + animation-timing-function: ease-in; +} + +@-webkit-keyframes rotateIn { + 0% { + -webkit-transform-origin: center center; + -webkit-transform: rotate(-200deg); + opacity: 0; + } + 100% { + -webkit-transform-origin: center center; + -webkit-transform: rotate(0); + opacity: 1; + } +} +@keyframes rotateIn { + 0% { + transform-origin: center center; + transform: rotate(-200deg); + opacity: 0; + } + 100% { + transform-origin: center center; + transform: rotate(0); + opacity: 1; + } +} +/* line 31, ../sass/animations/rotate-enter/_rotateIn.scss */ +.in .rotateIn { + -webkit-animation-name: rotateIn; + animation-name: rotateIn; +} + +@-webkit-keyframes rotateInDownLeft { + 0% { + -webkit-transform-origin: left bottom; + -webkit-transform: rotate(-90deg); + opacity: 0; + } + 100% { + -webkit-transform-origin: left bottom; + -webkit-transform: rotate(0); + opacity: 1; + } +} +@keyframes rotateInDownLeft { + 0% { + transform-origin: left bottom; + transform: rotate(-90deg); + opacity: 0; + } + 100% { + transform-origin: left bottom; + transform: rotate(0); + opacity: 1; + } +} +/* line 31, ../sass/animations/rotate-enter/_rotateInDownLeft.scss */ +.in .rotateInDownLeft { + -webkit-animation-name: rotateInDownLeft; + animation-name: rotateInDownLeft; +} + +@-webkit-keyframes rotateInDownRight { + 0% { + -webkit-transform-origin: right bottom; + -webkit-transform: rotate(90deg); + opacity: 0; + } + 100% { + -webkit-transform-origin: right bottom; + -webkit-transform: rotate(0); + opacity: 1; + } +} +@keyframes rotateInDownRight { + 0% { + transform-origin: right bottom; + transform: rotate(90deg); + opacity: 0; + } + 100% { + transform-origin: right bottom; + transform: rotate(0); + opacity: 1; + } +} +/* line 31, ../sass/animations/rotate-enter/_rotateInDownRight.scss */ +.in .rotateInDownRight { + -webkit-animation-name: rotateInDownRight; + animation-name: rotateInDownRight; +} + +@-webkit-keyframes rotateInUpLeft { + 0% { + -webkit-transform-origin: left bottom; + -webkit-transform: rotate(90deg); + opacity: 0; + } + 100% { + -webkit-transform-origin: left bottom; + -webkit-transform: rotate(0); + opacity: 1; + } +} +@keyframes rotateInUpLeft { + 0% { + transform-origin: left bottom; + transform: rotate(90deg); + opacity: 0; + } + 100% { + transform-origin: left bottom; + transform: rotate(0); + opacity: 1; + } +} +/* line 31, ../sass/animations/rotate-enter/_rotateInUpLeft.scss */ +.in .rotateInUpLeft { + -webkit-animation-name: rotateInUpLeft; + animation-name: rotateInUpLeft; +} + +@-webkit-keyframes rotateInUpRight { + 0% { + -webkit-transform-origin: right bottom; + -webkit-transform: rotate(-90deg); + opacity: 0; + } + 100% { + -webkit-transform-origin: right bottom; + -webkit-transform: rotate(0); + opacity: 1; + } +} +@keyframes rotateInUpRight { + 0% { + transform-origin: right bottom; + transform: rotate(-90deg); + opacity: 0; + } + 100% { + transform-origin: right bottom; + transform: rotate(0); + opacity: 1; + } +} +/* line 31, ../sass/animations/rotate-enter/_rotateInUpRight.scss */ +.in .rotateInUpRight { + -webkit-animation-name: rotateInUpRight; + animation-name: rotateInUpRight; +} + +@-webkit-keyframes rotateOut { + 0% { + -webkit-transform-origin: center center; + -webkit-transform: rotate(0); + opacity: 1; + } + 100% { + -webkit-transform-origin: center center; + -webkit-transform: rotate(200deg); + opacity: 0; + } +} +@keyframes rotateOut { + 0% { + transform-origin: center center; + transform: rotate(0); + opacity: 1; + } + 100% { + transform-origin: center center; + transform: rotate(200deg); + opacity: 0; + } +} +/* line 31, ../sass/animations/rotate-exit/_rotateOut.scss */ +.out .rotateOut { + -webkit-animation-name: rotateOut; + animation-name: rotateOut; +} + +@-webkit-keyframes rotateOutDownLeft { + 0% { + -webkit-transform-origin: left bottom; + -webkit-transform: rotate(0); + opacity: 1; + } + 100% { + -webkit-transform-origin: left bottom; + -webkit-transform: rotate(90deg); + opacity: 0; + } +} +@keyframes rotateOutDownLeft { + 0% { + transform-origin: left bottom; + transform: rotate(0); + opacity: 1; + } + 100% { + transform-origin: left bottom; + transform: rotate(90deg); + opacity: 0; + } +} +/* line 31, ../sass/animations/rotate-exit/_rotateOutDownLeft.scss */ +.out .rotateOutDownLeft { + -webkit-animation-name: rotateOutDownLeft; + animation-name: rotateOutDownLeft; +} + +@-webkit-keyframes rotateOutDownRight { + 0% { + -webkit-transform-origin: right bottom; + -webkit-transform: rotate(0); + opacity: 1; + } + 100% { + -webkit-transform-origin: right bottom; + -webkit-transform: rotate(-90deg); + opacity: 0; + } +} +@keyframes rotateOutDownRight { + 0% { + transform-origin: right bottom; + transform: rotate(0); + opacity: 1; + } + 100% { + transform-origin: right bottom; + transform: rotate(-90deg); + opacity: 0; + } +} +/* line 31, ../sass/animations/rotate-exit/_rotateOutDownRight.scss */ +.out .rotateOutDownRight { + -webkit-animation-name: rotateOutDownRight; + animation-name: rotateOutDownRight; +} + +@-webkit-keyframes rotateOutUpLeft { + 0% { + -webkit-transform-origin: left bottom; + -webkit-transform: rotate(0); + opacity: 1; + } + 100% { + -webkit-transform-origin: left bottom; + -webkit-transform: rotate(-90deg); + opacity: 0; + } +} +@keyframes rotateOutUpLeft { + 0% { + transform-origin: left bottom; + transform: rotate(0); + opacity: 1; + } + 100% { + -transform-origin: left bottom; + -transform: rotate(-90deg); + opacity: 0; + } +} +/* line 31, ../sass/animations/rotate-exit/_rotateOutUpLeft.scss */ +.out .rotateOutUpLeft { + -webkit-animation-name: rotateOutUpLeft; + animation-name: rotateOutUpLeft; +} + +@-webkit-keyframes rotateOutUpRight { + 0% { + -webkit-transform-origin: right bottom; + -webkit-transform: rotate(0); + opacity: 1; + } + 100% { + -webkit-transform-origin: right bottom; + -webkit-transform: rotate(90deg); + opacity: 0; + } +} +@keyframes rotateOutUpRight { + 0% { + transform-origin: right bottom; + transform: rotate(0); + opacity: 1; + } + 100% { + transform-origin: right bottom; + transform: rotate(90deg); + opacity: 0; + } +} +/* line 30, ../sass/animations/rotate-exit/_rotateOutUpRight.scss */ +.out .rotateOutUpRight { + -webkit-animation-name: rotateOutUpRight; + animation-name: rotateOutUpRight; +} + +@-webkit-keyframes slideInDown { + 0% { + -webkit-transform: translate3d(0, -100%, 0); + visibility: visible; + } + 100% { + -webkit-transform: translate3d(0, 0, 0); + } +} +@keyframes slideInDown { + 0% { + transform: translate3d(0, -100%, 0); + visibility: visible; + } + 100% { + transform: translate3d(0, 0, 0); + } +} +/* line 25, ../sass/animations/slide-enter/_slideInDown.scss */ +.in .slideInDown { + -webkit-animation-name: slideInDown; + animation-name: slideInDown; +} + +@-webkit-keyframes slideInLeft { + 0% { + -webkit-transform: translate3d(-100%, 0, 0); + visibility: visible; + } + 100% { + -webkit-transform: translate3d(0, 0, 0); + } +} +@keyframes slideInLeft { + 0% { + transform: translate3d(-100%, 0, 0); + visibility: visible; + } + 100% { + transform: translate3d(0, 0, 0); + } +} +/* line 25, ../sass/animations/slide-enter/_slideInLeft.scss */ +.in .slideInLeft { + -webkit-animation-name: slideInLeft; + animation-name: slideInLeft; +} + +@-webkit-keyframes slideInRight { + 0% { + -webkit-transform: translate3d(100%, 0, 0); + visibility: visible; + } + 100% { + -webkit-transform: translate3d(0, 0, 0); + } +} +@keyframes slideInRight { + 0% { + transform: translate3d(100%, 0, 0); + visibility: visible; + } + 100% { + transform: translate3d(0, 0, 0); + } +} +/* line 25, ../sass/animations/slide-enter/_slideInRight.scss */ +.in .slideInRight { + -webkit-animation-name: slideInRight; + animation-name: slideInRight; +} + +@-webkit-keyframes slideInUp { + 0% { + -webkit-transform: translate3d(0, 100%, 0); + visibility: visible; + } + 100% { + -webkit-transform: translate3d(0, 0, 0); + } +} +@keyframes slideInUp { + 0% { + transform: translate3d(0, 100%, 0); + visibility: visible; + } + 100% { + transform: translate3d(0, 0, 0); + } +} +/* line 25, ../sass/animations/slide-enter/_slideInUp.scss */ +.in .slideInUp { + -webkit-animation-name: slideInUp; + animation-name: slideInUp; +} + +@-webkit-keyframes slideOutDown { + 0% { + -webkit-transform: translate3d(0, 0, 0); + visibility: visible; + } + 100% { + -webkit-transform: translate3d(0, 100%, 0); + } +} +@keyframes slideOutDown { + 0% { + transform: translate3d(0, 0, 0); + visibility: visible; + } + 100% { + transform: translate3d(0, 100%, 0); + } +} +/* line 25, ../sass/animations/slide-exit/_slideOutDown.scss */ +.out .slideOutDown { + -webkit-animation-name: slideOutDown; + animation-name: slideOutDown; +} + +@-webkit-keyframes slideOutLeft { + 0% { + -webkit-transform: translate3d(0, 0, 0); + visibility: visible; + } + 100% { + -webkit-transform: translate3d(-100%, 0, 0); + } +} +@keyframes slideOutLeft { + 0% { + transform: translate3d(0, 0, 0); + visibility: visible; + } + 100% { + transform: translate3d(-100%, 0, 0); + } +} +/* line 25, ../sass/animations/slide-exit/_slideOutLeft.scss */ +.out .slideOutLeft { + -webkit-animation-name: slideOutLeft; + animation-name: slideOutLeft; +} + +@-webkit-keyframes slideOutRight { + 0% { + -webkit-transform: translate3d(0, 0, 0); + visibility: visible; + } + 100% { + -webkit-transform: translate3d(100%, 0, 0); + } +} +@keyframes slideOutRight { + 0% { + transform: translate3d(0, 0, 0); + visibility: visible; + } + 100% { + transform: translate3d(100%, 0, 0); + } +} +/* line 25, ../sass/animations/slide-exit/_slideOutRight.scss */ +.out .slideOutRight { + -webkit-animation-name: slideOutRight; + animation-name: slideOutRight; +} + +@-webkit-keyframes slideOutUp { + 0% { + -webkit-transform: translate3d(0, 0, 0); + visibility: visible; + } + 100% { + -webkit-transform: translate3d(0, -100%, 0); + } +} +@keyframes slideOutUp { + 0% { + transform: translate3d(0, 0, 0); + visibility: visible; + } + 100% { + transform: translate3d(0, -100%, 0); + } +} +/* line 25, ../sass/animations/slide-exit/_slideOutUp.scss */ +.out .slideOutUp { + -webkit-animation-name: slideOutUp; + animation-name: slideOutUp; +} + +@-webkit-keyframes hinge { + 0% { + -webkit-transform: rotate(0); + -webkit-transform-origin: top left; + -webkit-animation-timing-function: ease-in-out; + } + 20%, 60% { + -webkit-transform: rotate(80deg); + -webkit-transform-origin: top left; + -webkit-animation-timing-function: ease-in-out; + } + 40% { + -webkit-transform: rotate(60deg); + -webkit-transform-origin: top left; + -webkit-animation-timing-function: ease-in-out; + } + 80% { + -webkit-transform: rotate(60deg) translateY(0); + opacity: 1; + -webkit-transform-origin: top left; + -webkit-animation-timing-function: ease-in-out; + } + 100% { + -webkit-transform: translateY(700px); + opacity: 0; + } +} +@keyframes hinge { + 0% { + transform: rotate(0); + transform-origin: top left; + animation-timing-function: ease-in-out; + } + 20%, 60% { + transform: rotate(80deg); + transform-origin: top left; + animation-timing-function: ease-in-out; + } + 40% { + transform: rotate(60deg); + transform-origin: top left; + animation-timing-function: ease-in-out; + } + 80% { + transform: rotate(60deg) translateY(0); + opacity: 1; + transform-origin: top left; + animation-timing-function: ease-in-out; + } + 100% { + transform: translateY(700px); + opacity: 0; + } +} +/* line 19, ../sass/animations/special/_hinge.scss */ +.out .hingeOut { + -webkit-animation-name: hinge; + animation-name: hinge; +} + +@-webkit-keyframes rollIn { + 0% { + opacity: 0; + -webkit-transform: translateX(-100%) rotate(-120deg); + } + 100% { + opacity: 1; + -webkit-transform: translateX(0px) rotate(0deg); + } +} +@keyframes rollIn { + 0% { + opacity: 0; + transform: translateX(-100%) rotate(-120deg); + } + 100% { + opacity: 1; + transform: translateX(0px) rotate(0deg); + } +} +/* line 15, ../sass/animations/special/_rollIn.scss */ +.in .rollIn { + -webkit-animation-name: rollIn; + animation-name: rollIn; +} + +@-webkit-keyframes rollOut { + 0% { + opacity: 1; + -webkit-transform: translateX(0px) rotate(0deg); + } + 100% { + opacity: 0; + -webkit-transform: translateX(100%) rotate(120deg); + } +} +@keyframes rollOut { + 0% { + opacity: 1; + transform: translateX(0px) rotate(0deg); + } + 100% { + opacity: 0; + transform: translateX(100%) rotate(120deg); + } +} +/* line 29, ../sass/animations/special/_rollOut.scss */ +.out .rollOut { + -webkit-animation-name: rollOut; + animation-name: rollOut; +} + +@-webkit-keyframes zoomIn { + 0% { + opacity: 0; + -webkit-transform: scale3d(0.3, 0.3, 0.3); + } + 50% { + opacity: 1; + } +} +@keyframes zoomIn { + 0% { + opacity: 0; + transform: scale3d(0.3, 0.3, 0.3); + } + 50% { + opacity: 1; + } +} +/* line 24, ../sass/animations/zoom-enter/_zoomIn.scss */ +.in .zoomIn { + -webkit-animation-name: zoomIn; + animation-name: zoomIn; +} + +@-webkit-keyframes zoomInDown { + 0% { + opacity: 0; + -webkit-transform: scale3d(0.1, 0.1, 0.1) translate3d(0, -1000px, 0); + -webkit-animation-timing-function: cubic-bezier(0.55, 0.055, 0.675, 0.19); + } + 60% { + opacity: 1; + -webkit-transform: scale3d(0.475, 0.475, 0.475) translate3d(0, 60px, 0); + -webkit-animation-timing-function: cubic-bezier(0.175, 0.885, 0.32, 1); + } +} +@keyframes zoomInDown { + 0% { + opacity: 0; + transform: scale3d(0.1, 0.1, 0.1) translate3d(0, -1000px, 0); + animation-timing-function: cubic-bezier(0.55, 0.055, 0.675, 0.19); + } + 60% { + opacity: 1; + transform: scale3d(0.475, 0.475, 0.475) translate3d(0, 60px, 0); + animation-timing-function: cubic-bezier(0.175, 0.885, 0.32, 1); + } +} +/* line 27, ../sass/animations/zoom-enter/_zoomInDown.scss */ +.in .zoomInDown { + -webkit-animation-name: zoomInDown; + animation-name: zoomInDown; +} + +@-webkit-keyframes zoomInLeft { + 0% { + opacity: 0; + -webkit-transform: scale3d(0.1, 0.1, 0.1) translate3d(-1000px, 0, 0); + -webkit-animation-timing-function: cubic-bezier(0.55, 0.055, 0.675, 0.19); + } + 60% { + opacity: 1; + -webkit-transform: scale3d(0.475, 0.475, 0.475) translate3d(10px, 0, 0); + -webkit-animation-timing-function: cubic-bezier(0.175, 0.885, 0.32, 1); + } +} +@keyframes zoomInLeft { + 0% { + opacity: 0; + transform: scale3d(0.1, 0.1, 0.1) translate3d(-1000px, 0, 0); + animation-timing-function: cubic-bezier(0.55, 0.055, 0.675, 0.19); + } + 60% { + opacity: 1; + transform: scale3d(0.475, 0.475, 0.475) translate3d(10px, 0, 0); + animation-timing-function: cubic-bezier(0.175, 0.885, 0.32, 1); + } +} +/* line 27, ../sass/animations/zoom-enter/_zoomInLeft.scss */ +.in .zoomInLeft { + -webkit-animation-name: zoomInLeft; + animation-name: zoomInLeft; +} + +@-webkit-keyframes zoomInRight { + 0% { + opacity: 0; + -webkit-transform: scale3d(0.1, 0.1, 0.1) translate3d(1000px, 0, 0); + -webkit-animation-timing-function: cubic-bezier(0.55, 0.055, 0.675, 0.19); + } + 60% { + opacity: 1; + -webkit-transform: scale3d(0.475, 0.475, 0.475) translate3d(-10px, 0, 0); + -webkit-animation-timing-function: cubic-bezier(0.175, 0.885, 0.32, 1); + } +} +@keyframes zoomInRight { + 0% { + opacity: 0; + transform: scale3d(0.1, 0.1, 0.1) translate3d(1000px, 0, 0); + animation-timing-function: cubic-bezier(0.55, 0.055, 0.675, 0.19); + } + 60% { + opacity: 1; + transform: scale3d(0.475, 0.475, 0.475) translate3d(-10px, 0, 0); + animation-timing-function: cubic-bezier(0.175, 0.885, 0.32, 1); + } +} +/* line 27, ../sass/animations/zoom-enter/_zoomInRight.scss */ +.in .zoomInRight { + -webkit-animation-name: zoomInRight; + animation-name: zoomInRight; +} + +@-webkit-keyframes zoomInUp { + 0% { + opacity: 0; + -webkit-transform: scale3d(0.1, 0.1, 0.1) translate3d(0, 1000px, 0); + -webkit-animation-timing-function: cubic-bezier(0.55, 0.055, 0.675, 0.19); + } + 60% { + opacity: 1; + -webkit-transform: scale3d(0.475, 0.475, 0.475) translate3d(0, -60px, 0); + -webkit-animation-timing-function: cubic-bezier(0.175, 0.885, 0.32, 1); + } +} +@keyframes zoomInUp { + 0% { + opacity: 0; + transform: scale3d(0.1, 0.1, 0.1) translate3d(0, 1000px, 0); + animation-timing-function: cubic-bezier(0.55, 0.055, 0.675, 0.19); + } + 60% { + opacity: 1; + transform: scale3d(0.475, 0.475, 0.475) translate3d(0, -60px, 0); + animation-timing-function: cubic-bezier(0.175, 0.885, 0.32, 1); + } +} +/* line 27, ../sass/animations/zoom-enter/_zoomInUp.scss */ +.in .zoomInUp { + -webkit-animation-name: zoomInUp; + animation-name: zoomInUp; +} + +@-webkit-keyframes zoomOut { + 0% { + opacity: 1; + } + 50% { + opacity: 0; + -webkit-transform: scale3d(0.3, 0.3, 0.3); + } + 100% { + opacity: 0; + } +} +@keyframes zoomOut { + 0% { + opacity: 1; + } + 50% { + opacity: 0; + transform: scale3d(0.3, 0.3, 0.3); + } + 100% { + opacity: 0; + } +} +/* line 28, ../sass/animations/zoom-exit/_zoomOut.scss */ +.out .zoomOut { + -webkit-animation-name: zoomOut; + animation-name: zoomOut; +} + +@-webkit-keyframes zoomOutDown { + 40% { + opacity: 1; + -webkit-transform: scale3d(0.475, 0.475, 0.475) translate3d(0, -60px, 0); + -webkit-animation-timing-function: cubic-bezier(0.55, 0.055, 0.675, 0.19); + } + 100% { + opacity: 0; + -webkit-transform: scale3d(0.1, 0.1, 0.1) translate3d(0, 2000px, 0); + -webkit-transform-origin: center bottom; + -webkit-animation-timing-function: cubic-bezier(0.175, 0.885, 0.32, 1); + } +} +@keyframes zoomOutDown { + 40% { + opacity: 1; + transform: scale3d(0.475, 0.475, 0.475) translate3d(0, -60px, 0); + animation-timing-function: cubic-bezier(0.55, 0.055, 0.675, 0.19); + } + 100% { + opacity: 0; + transform: scale3d(0.1, 0.1, 0.1) translate3d(0, 2000px, 0); + transform-origin: center bottom; + animation-timing-function: cubic-bezier(0.175, 0.885, 0.32, 1); + } +} +/* line 28, ../sass/animations/zoom-exit/_zoomOutDown.scss */ +.out .zoomOutDown { + -webkit-animation-name: zoomOutDown; + animation-name: zoomOutDown; +} + +@-webkit-keyframes zoomOutLeft { + 40% { + opacity: 1; + -webkit-transform: scale3d(0.475, 0.475, 0.475) translate3d(42px, 0, 0); + } + 100% { + opacity: 0; + -webkit-transform: scale3d(0.1) translate3d(-2000px, 0, 0); + -webkit-transform-origin: left center; + } +} +@keyframes zoomOutLeft { + 40% { + opacity: 1; + transform: scale3d(0.475, 0.475, 0.475) translate3d(42px, 0, 0); + } + 100% { + opacity: 0; + transform: scale3d(0.1) translate3d(-2000px, 0, 0); + transform-origin: left center; + } +} +/* line 26, ../sass/animations/zoom-exit/_zoomOutLeft.scss */ +.out .zoomOutLeft { + -webkit-animation-name: zoomOutLeft; + animation-name: zoomOutLeft; +} + +@-webkit-keyframes zoomOutRight { + 40% { + opacity: 1; + -webkit-transform: scale3d(0.475, 0.475, 0.475) translate3d(-42px, 0, 0); + } + 100% { + opacity: 0; + -webkit-transform: scale3d(0.1) translate3d(2000px, 0, 0); + -webkit-transform-origin: right center; + } +} +@keyframes zoomOutRight { + 40% { + opacity: 1; + transform: scale3d(0.475, 0.475, 0.475) translate3d(-42px, 0, 0); + } + 100% { + opacity: 0; + transform: scale3d(0.1) translate3d(2000px, 0, 0); + transform-origin: right center; + } +} +/* line 26, ../sass/animations/zoom-exit/_zoomOutRight.scss */ +.out .zoomOutRight { + -webkit-animation-name: zoomOutRight; + animation-name: zoomOutRight; +} + +@-webkit-keyframes zoomOutUp { + 40% { + opacity: 1; + -webkit-transform: scale3d(0.475, 0.475, 0.475) translate3d(0, 60px, 0); + -webkit-animation-timing-function: cubic-bezier(0.55, 0.055, 0.675, 0.19); + } + 100% { + opacity: 0; + -webkit-transform: scale3d(0.1, 0.1, 0.1) translate3d(0, -2000px, 0); + -webkit-transform-origin: center bottom; + -webkit-animation-timing-function: cubic-bezier(0.175, 0.885, 0.32, 1); + } +} +@keyframes zoomOutUp { + 40% { + opacity: 1; + transform: scale3d(0.475, 0.475, 0.475) translate3d(0, 60px, 0); + animation-timing-function: cubic-bezier(0.55, 0.055, 0.675, 0.19); + } + 100% { + opacity: 0; + transform: scale3d(0.1, 0.1, 0.1) translate3d(0, -2000px, 0); + transform-origin: center bottom; + animation-timing-function: cubic-bezier(0.175, 0.885, 0.32, 1); + } +} +/* line 28, ../sass/animations/zoom-exit/_zoomOutUp.scss */ +.out .zoomOutUp { + -webkit-animation-name: zoomOutUp; + animation-name: zoomOutUp; +} + /** VARIABLES ===================================*/ /** RESET AND LAYOUT @@ -51,7 +2197,7 @@ ul.bxslider { /* LOADER */ .bx-wrapper .bx-loading { min-height: 50px; - background: url('images/bx_loader.gif') center center no-repeat #ffffff; + background: url('images/bx_loader.gif') center center no-repeat #fff; height: 100%; width: 100%; position: absolute; diff --git a/dist/jquery.bxslider.js b/dist/jquery.bxslider.js index 62b400f5..ea449892 100644 --- a/dist/jquery.bxslider.js +++ b/dist/jquery.bxslider.js @@ -1,15 +1,13 @@ /** * bxSlider v4.2.5 - * Copyright 2013-2015 Steven Wanderski + * Copyright 2013-2017 Steven Wanderski * Written while drinking Belgian ales and listening to jazz * Licensed under MIT (http://opensource.org/licenses/MIT) */ ;(function($) { - var defaults = { - // GENERAL mode: 'horizontal', slideSelector: '', @@ -31,21 +29,17 @@ responsive: true, slideZIndex: 50, wrapperClass: 'bx-wrapper', - // TOUCH touchEnabled: true, swipeThreshold: 50, oneToOneTouch: true, preventDefaultSwipeX: true, preventDefaultSwipeY: false, - // ACCESSIBILITY ariaLive: true, ariaHidden: true, - // KEYBOARD keyboardEnabled: false, - // PAGER pager: true, pagerType: 'full', @@ -53,7 +47,6 @@ pagerSelector: null, buildPager: null, pagerCustom: null, - // CONTROLS controls: true, nextText: 'Next', @@ -65,7 +58,8 @@ stopText: 'Stop', autoControlsCombine: false, autoControlsSelector: null, - + pauseBeforeOut: 0, + pauseAfterIn: 0, // AUTO auto: false, pause: 4000, @@ -75,29 +69,36 @@ autoHover: false, autoDelay: 0, autoSlideForOnePage: false, - // CAROUSEL minSlides: 1, maxSlides: 1, moveSlides: 0, slideWidth: 0, shrinkItems: false, - // CALLBACKS - onSliderLoad: function() { return true; }, - onSlideBefore: function() { return true; }, - onSlideAfter: function() { return true; }, - onSlideNext: function() { return true; }, - onSlidePrev: function() { return true; }, - onSliderResize: function() { return true; } + onSliderLoad: function() { + return true; + }, + onSlideBefore: function() { + return true; + }, + onSlideAfter: function() { + return true; + }, + onSlideNext: function() { + return true; + }, + onSlidePrev: function() { + return true; + }, + onSliderResize: function() { + return true; + } }; - $.fn.bxSlider = function(options) { - if (this.length === 0) { return this; } - // support multiple elements if (this.length > 1) { this.each(function() { @@ -105,30 +106,28 @@ }); return this; } - // create a namespace to be used throughout the plugin - var slider = {}, - // set a reference to our slider element - el = this, - // get the original window dimens (thanks a lot IE) - windowWidth = $(window).width(), - windowHeight = $(window).height(); - + var slider = {}, // set a reference to our slider element + el = this, // get the original window dimens (thanks a lot IE) + windowWidth = $(window).width(), + windowHeight = $(window).height(); // Return if slider is already initialized - if ($(el).data('bxSlider')) { return; } - + if ($(el).data('bxSlider')) { + return; + } /** * =================================================================================== * = PRIVATE FUNCTIONS * =================================================================================== */ - /** * Initializes namespace settings to be used throughout plugin */ var init = function() { // Return if slider is already initialized - if ($(el).data('bxSlider')) { return; } + if ($(el).data('bxSlider')) { + return; + } // merge user-supplied options with the defaults slider.settings = $.extend({}, defaults, options); // parse slideWidth setting @@ -136,16 +135,26 @@ // store the original children slider.children = el.children(slider.settings.slideSelector); // check if actual number of slides is less than minSlides / maxSlides - if (slider.children.length < slider.settings.minSlides) { slider.settings.minSlides = slider.children.length; } - if (slider.children.length < slider.settings.maxSlides) { slider.settings.maxSlides = slider.children.length; } + if (slider.children.length < slider.settings.minSlides) { + slider.settings.minSlides = slider.children.length; + } + if (slider.children.length < slider.settings.maxSlides) { + slider.settings.maxSlides = slider.children.length; + } // if random start, set the startSlide setting to random number - if (slider.settings.randomStart) { slider.settings.startSlide = Math.floor(Math.random() * slider.children.length); } + if (slider.settings.randomStart) { + slider.settings.startSlide = Math.floor(Math.random() * slider.children.length); + } // store active slide information - slider.active = { index: slider.settings.startSlide }; + slider.active = { + index: slider.settings.startSlide + }; // store if the slider is in carousel mode (displaying / moving multiple slides) slider.carousel = slider.settings.minSlides > 1 || slider.settings.maxSlides > 1 ? true : false; // if carousel, force preloadImages = 'all' - if (slider.carousel) { slider.settings.preloadImages = 'all'; } + if (slider.carousel) { + slider.settings.preloadImages = 'all'; + } // calculate the min / max width thresholds based on min / max number of slides // used to setup and update carousel slides dimensions slider.minThreshold = (slider.settings.minSlides * slider.settings.slideWidth) + ((slider.settings.minSlides - 1) * slider.settings.slideMargin); @@ -161,9 +170,8 @@ // determine if hardware acceleration can be used slider.usingCSS = slider.settings.useCSS && slider.settings.mode !== 'fade' && (function() { // create our test div element - var div = document.createElement('div'), - // css transition properties - props = ['WebkitPerspective', 'MozPerspective', 'OPerspective', 'msPerspective']; + var div = document.createElement('div'), // css transition properties + props = ['WebkitPerspective', 'MozPerspective', 'OPerspective', 'msPerspective']; // test for each property for (var i = 0; i < props.length; i++) { if (div.style[props[i]] !== undefined) { @@ -175,28 +183,26 @@ return false; }()); // if vertical mode always make maxSlides and minSlides equal - if (slider.settings.mode === 'vertical') { slider.settings.maxSlides = slider.settings.minSlides; } + if (slider.settings.mode === 'vertical') { + slider.settings.maxSlides = slider.settings.minSlides; + } // save original style data el.data('origStyle', el.attr('style')); el.children(slider.settings.slideSelector).each(function() { $(this).data('origStyle', $(this).attr('style')); }); - // perform all DOM / CSS modifications setup(); }; - /** * Performs all DOM and CSS modifications */ var setup = function() { var preloadSelector = slider.children.eq(slider.settings.startSlide); // set the default preload selector (visible) - // wrap el in a wrapper el.wrap('
'); // store a namespace reference to .bx-viewport slider.viewport = el.parent(); - // add aria-live if the setting is enabled and ticker mode is disabled if (slider.settings.ariaLive && !slider.settings.ticker) { slider.viewport.attr('aria-live', 'polite'); @@ -213,7 +219,7 @@ // if using CSS, add the easing property if (slider.usingCSS && slider.settings.easing) { el.css('-' + slider.cssPrefix + '-transition-timing-function', slider.settings.easing); - // if not using CSS and no easing value was supplied, use the default JS animation easing (swing) + // if not using CSS and no easing value was supplied, use the default JS animation easing (swing) } else if (!slider.settings.easing) { slider.settings.easing = 'swing'; } @@ -241,8 +247,12 @@ // apply the calculated width after the float is applied to prevent scrollbar interference slider.children.css('width', getSlideWidth()); // if slideMargin is supplied, add the css - if (slider.settings.mode === 'horizontal' && slider.settings.slideMargin > 0) { slider.children.css('marginRight', slider.settings.slideMargin); } - if (slider.settings.mode === 'vertical' && slider.settings.slideMargin > 0) { slider.children.css('marginBottom', slider.settings.slideMargin); } + if (slider.settings.mode === 'horizontal' && slider.settings.slideMargin > 0) { + slider.children.css('marginRight', slider.settings.slideMargin); + } + if (slider.settings.mode === 'vertical' && slider.settings.slideMargin > 0) { + slider.children.css('marginBottom', slider.settings.slideMargin); + } // if "fade" mode, add positioning and z-index CSS if (slider.settings.mode === 'fade') { slider.children.css({ @@ -251,59 +261,81 @@ display: 'none' }); // prepare the z-index on the showing element - slider.children.eq(slider.settings.startSlide).css({zIndex: slider.settings.slideZIndex, display: 'block'}); + slider.children.eq(slider.settings.startSlide).css({ + zIndex: slider.settings.slideZIndex, + display: 'block' + }); } + // Set animation class to 'out' + slider.children.removeClass('in').addClass('out'); + // create an element to contain all slider controls (pager, start / stop, etc) slider.controls.el = $('
'); // if captions are requested, add them - if (slider.settings.captions) { appendCaptions(); } + if (slider.settings.captions) { + appendCaptions(); + } // check if startSlide is last slide slider.active.last = slider.settings.startSlide === getPagerQty() - 1; // if video is true, set up the fitVids plugin - if (slider.settings.video) { el.fitVids(); } - if (slider.settings.preloadImages === 'all' || slider.settings.ticker) { preloadSelector = slider.children; } + if (slider.settings.video) { + el.fitVids(); + } + if (slider.settings.preloadImages === 'all' || slider.settings.ticker) { + preloadSelector = slider.children; + } // only check for control addition if not in "ticker" mode if (!slider.settings.ticker) { // if controls are requested, add them - if (slider.settings.controls) { appendControls(); } + if (slider.settings.controls) { + appendControls(); + } // if auto is true, and auto controls are requested, add them - if (slider.settings.auto && slider.settings.autoControls) { appendControlsAuto(); } + if (slider.settings.auto && slider.settings.autoControls) { + appendControlsAuto(); + } // if pager is requested, add it - if (slider.settings.pager) { appendPager(); } + if (slider.settings.pager) { + appendPager(); + } // if any control option is requested, add the controls wrapper - if (slider.settings.controls || slider.settings.autoControls || slider.settings.pager) { slider.viewport.after(slider.controls.el); } - // if ticker mode, do not allow a pager + if (slider.settings.controls || slider.settings.autoControls || slider.settings.pager) { + slider.viewport.after(slider.controls.el); + } + // if ticker mode, do not allow a pager } else { slider.settings.pager = false; } loadElements(preloadSelector, start); }; - var loadElements = function(selector, callback) { var total = selector.find('img:not([src=""]), iframe').length, - count = 0; + count = 0; if (total === 0) { callback(); return; } selector.find('img:not([src=""]), iframe').each(function() { $(this).one('load error', function() { - if (++count === total) { callback(); } + if (++count === total) { + callback(); + } }).each(function() { - if (this.complete) { $(this).load(); } + if (this.complete) { + $(this).load(); + } }); }); }; - /** * Start the slider */ var start = function() { // if infinite loop, prepare additional slides if (slider.settings.infiniteLoop && slider.settings.mode !== 'fade' && !slider.settings.ticker) { - var slice = slider.settings.mode === 'vertical' ? slider.settings.minSlides : slider.settings.maxSlides, - sliceAppend = slider.children.slice(0, slice).clone(true).addClass('bx-clone'), - slicePrepend = slider.children.slice(-slice).clone(true).addClass('bx-clone'); + var slice = slider.settings.mode === 'vertical' ? slider.settings.minSlides : slider.settings.maxSlides, + sliceAppend = slider.children.slice(0, slice).clone(true).addClass('bx-clone'), + slicePrepend = slider.children.slice(-slice).clone(true).addClass('bx-clone'); if (slider.settings.ariaHidden) { sliceAppend.attr('aria-hidden', true); slicePrepend.attr('aria-hidden', true); @@ -315,33 +347,49 @@ // set the left / top position of "el" setSlidePosition(); // if "vertical" mode, always use adaptiveHeight to prevent odd behavior - if (slider.settings.mode === 'vertical') { slider.settings.adaptiveHeight = true; } + if (slider.settings.mode === 'vertical') { + slider.settings.adaptiveHeight = true; + } // set the viewport height slider.viewport.height(getViewportHeight()); // make sure everything is positioned just right (same as a window resize) el.redrawSlider(); // onSliderLoad callback slider.settings.onSliderLoad.call(el, slider.active.index); + setTimeout(function() { + slider.children.eq(slider.active.index).removeClass('out').addClass('in'); + }, 1500); // slider has been fully initialized slider.initialized = true; // bind the resize call to the window - if (slider.settings.responsive) { $(window).bind('resize', resizeWindow); } + if (slider.settings.responsive) { + $(window).bind('resize', resizeWindow); + } // if auto is true and has more than 1 page, start the show - if (slider.settings.auto && slider.settings.autoStart && (getPagerQty() > 1 || slider.settings.autoSlideForOnePage)) { initAuto(); } + if (slider.settings.auto && slider.settings.autoStart && (getPagerQty() > 1 || slider.settings.autoSlideForOnePage)) { + initAuto(); + } // if ticker is true, start the ticker - if (slider.settings.ticker) { initTicker(); } + if (slider.settings.ticker) { + initTicker(); + } // if pager is requested, make the appropriate pager link active - if (slider.settings.pager) { updatePagerActive(slider.settings.startSlide); } + if (slider.settings.pager) { + updatePagerActive(slider.settings.startSlide); + } // check for any updates to the controls (like hideControlOnEnd updates) - if (slider.settings.controls) { updateDirectionControls(); } + if (slider.settings.controls) { + updateDirectionControls(); + } // if touchEnabled is true, setup the touch events - if (slider.settings.touchEnabled && !slider.settings.ticker) { initTouch(); } + if (slider.settings.touchEnabled && !slider.settings.ticker) { + initTouch(); + } // if keyboardEnabled is true, setup the keyboard events if (slider.settings.keyboardEnabled && !slider.settings.ticker) { $(document).keydown(keyPress); } }; - /** * Returns the calculated height of the viewport, used to determine either adaptiveHeight or the maxHeight value */ @@ -356,7 +404,7 @@ // if not carousel, return the single active child if (!slider.carousel) { children = slider.children.eq(slider.active.index); - // if carousel, return a slice of children + // if carousel, return a slice of children } else { // get the individual slide index var currentIndex = slider.settings.moveSlides === 1 ? slider.active.index : slider.active.index * getMoveBy(); @@ -382,23 +430,19 @@ if (slider.settings.slideMargin > 0) { height += slider.settings.slideMargin * (slider.settings.minSlides - 1); } - // if not "vertical" mode, calculate the max height of the children + // if not "vertical" mode, calculate the max height of the children } else { height = Math.max.apply(Math, children.map(function() { return $(this).outerHeight(false); }).get()); } - if (slider.viewport.css('box-sizing') === 'border-box') { - height += parseFloat(slider.viewport.css('padding-top')) + parseFloat(slider.viewport.css('padding-bottom')) + - parseFloat(slider.viewport.css('border-top-width')) + parseFloat(slider.viewport.css('border-bottom-width')); + height += parseFloat(slider.viewport.css('padding-top')) + parseFloat(slider.viewport.css('padding-bottom')) + parseFloat(slider.viewport.css('border-top-width')) + parseFloat(slider.viewport.css('border-bottom-width')); } else if (slider.viewport.css('box-sizing') === 'padding-box') { height += parseFloat(slider.viewport.css('padding-top')) + parseFloat(slider.viewport.css('padding-bottom')); } - return height; }; - /** * Returns the calculated width to be used for the outer wrapper / viewport */ @@ -413,19 +457,16 @@ } return width; }; - /** * Returns the calculated width to be applied to each slide */ var getSlideWidth = function() { var newElWidth = slider.settings.slideWidth, // start with any user-supplied slide width - wrapWidth = slider.viewport.width(); // get the current viewport width + wrapWidth = slider.viewport.width(); // get the current viewport width // if slide width was not supplied, or is larger than the viewport use the viewport width - if (slider.settings.slideWidth === 0 || - (slider.settings.slideWidth > wrapWidth && !slider.carousel) || - slider.settings.mode === 'vertical') { + if (slider.settings.slideWidth === 0 || (slider.settings.slideWidth > wrapWidth && !slider.carousel) || slider.settings.mode === 'vertical') { newElWidth = wrapWidth; - // if carousel, use the thresholds to determine the width + // if carousel, use the thresholds to determine the width } else if (slider.settings.maxSlides > 1 && slider.settings.mode === 'horizontal') { if (wrapWidth > slider.maxThreshold) { return newElWidth; @@ -437,40 +478,37 @@ } return newElWidth; }; - /** * Returns the number of slides currently visible in the viewport (includes partially visible slides) */ var getNumberSlidesShowing = function() { var slidesShowing = 1, - childWidth = null; + childWidth = null; if (slider.settings.mode === 'horizontal' && slider.settings.slideWidth > 0) { // if viewport is smaller than minThreshold, return minSlides if (slider.viewport.width() < slider.minThreshold) { slidesShowing = slider.settings.minSlides; - // if viewport is larger than maxThreshold, return maxSlides + // if viewport is larger than maxThreshold, return maxSlides } else if (slider.viewport.width() > slider.maxThreshold) { slidesShowing = slider.settings.maxSlides; - // if viewport is between min / max thresholds, divide viewport width by first child width + // if viewport is between min / max thresholds, divide viewport width by first child width } else { childWidth = slider.children.first().width() + slider.settings.slideMargin; - slidesShowing = Math.floor((slider.viewport.width() + - slider.settings.slideMargin) / childWidth); + slidesShowing = Math.floor((slider.viewport.width() + slider.settings.slideMargin) / childWidth); } - // if "vertical" mode, slides showing will always be minSlides + // if "vertical" mode, slides showing will always be minSlides } else if (slider.settings.mode === 'vertical') { slidesShowing = slider.settings.minSlides; } return slidesShowing; }; - /** * Returns the number of pages (one full viewport of slides is one "page") */ var getPagerQty = function() { var pagerQty = 0, - breakPoint = 0, - counter = 0; + breakPoint = 0, + counter = 0; // if moveSlides is specified by the user if (slider.settings.moveSlides > 0) { if (slider.settings.infiniteLoop) { @@ -483,13 +521,12 @@ counter += slider.settings.moveSlides <= getNumberSlidesShowing() ? slider.settings.moveSlides : getNumberSlidesShowing(); } } - // if moveSlides is 0 (auto) divide children length by sides showing, then round up + // if moveSlides is 0 (auto) divide children length by sides showing, then round up } else { pagerQty = Math.ceil(slider.children.length / getNumberSlidesShowing()); } return pagerQty; }; - /** * Returns the number of individual slides by which to shift the slider */ @@ -501,7 +538,6 @@ // if moveSlides is 0 (auto) return getNumberSlidesShowing(); }; - /** * Sets the slider's (el) left or top position */ @@ -522,20 +558,24 @@ // set the top position setPositionProperty(-position.top, 'reset', 0); } - // if not last slide + // if not last slide } else { // get the position of the first showing slide position = slider.children.eq(slider.active.index * getMoveBy()).position(); // check for last slide - if (slider.active.index === getPagerQty() - 1) { slider.active.last = true; } + if (slider.active.index === getPagerQty() - 1) { + slider.active.last = true; + } // set the respective position if (position !== undefined) { - if (slider.settings.mode === 'horizontal') { setPositionProperty(-position.left, 'reset', 0); } - else if (slider.settings.mode === 'vertical') { setPositionProperty(-position.top, 'reset', 0); } + if (slider.settings.mode === 'horizontal') { + setPositionProperty(-position.left, 'reset', 0); + } else if (slider.settings.mode === 'vertical') { + setPositionProperty(-position.top, 'reset', 0); + } } } }; - /** * Sets the el's animating property position (which in turn will sometimes animate el). * If using CSS, sets the transform property. If not using CSS, sets the top / left property. @@ -567,7 +607,9 @@ // bind a callback method - executes when CSS transition completes el.bind('transitionend webkitTransitionEnd oTransitionEnd MSTransitionEnd', function(e) { //make sure it's the correct one - if (!$(e.target).is(el)) { return; } + if (!$(e.target).is(el)) { + return; + } // unbind the callback el.unbind('transitionend webkitTransitionEnd oTransitionEnd MSTransitionEnd'); updateAfterSlideTransition(); @@ -584,7 +626,9 @@ if (duration !== 0) { el.bind('transitionend webkitTransitionEnd oTransitionEnd MSTransitionEnd', function(e) { //make sure it's the correct one - if (!$(e.target).is(el)) { return; } + if (!$(e.target).is(el)) { + return; + } // unbind the callback el.unbind('transitionend webkitTransitionEnd oTransitionEnd MSTransitionEnd'); // reset the position @@ -597,7 +641,7 @@ tickerLoop(); } } - // use JS animate + // use JS animate } else { animateObj = {}; animateObj[slider.animProp] = value; @@ -616,14 +660,13 @@ } } }; - /** * Populates the pager with proper amount of pages */ var populatePager = function() { var pagerHtml = '', - linkContent = '', - pagerQty = getPagerQty(); + linkContent = '', + pagerQty = getPagerQty(); // loop through each pager item for (var i = 0; i < pagerQty; i++) { linkContent = ''; @@ -642,7 +685,6 @@ // populate the pager element with pager links slider.pagerEl.html(pagerHtml); }; - /** * Appends the pager to the controls element */ @@ -653,7 +695,7 @@ // if a pager selector was supplied, populate it with the pager if (slider.settings.pagerSelector) { $(slider.settings.pagerSelector).html(slider.pagerEl); - // if no pager selector was supplied, add it after the wrapper + // if no pager selector was supplied, add it after the wrapper } else { slider.controls.el.addClass('bx-has-pager').append(slider.pagerEl); } @@ -665,7 +707,6 @@ // assign the pager click binding slider.pagerEl.on('click touchend', 'a', clickPagerBind); }; - /** * Appends prev / next controls to the controls element */ @@ -693,7 +734,6 @@ slider.controls.el.addClass('bx-has-controls-direction').append(slider.controls.directionEl); } }; - /** * Appends start / stop auto controls to the controls element */ @@ -708,21 +748,20 @@ // if autoControlsCombine, insert only the "start" control if (slider.settings.autoControlsCombine) { slider.controls.autoEl.append(slider.controls.start); - // if autoControlsCombine is false, insert both controls + // if autoControlsCombine is false, insert both controls } else { slider.controls.autoEl.append(slider.controls.start).append(slider.controls.stop); } // if auto controls selector was supplied, populate it with the controls if (slider.settings.autoControlsSelector) { $(slider.settings.autoControlsSelector).html(slider.controls.autoEl); - // if auto controls selector was not supplied, add it after the wrapper + // if auto controls selector was not supplied, add it after the wrapper } else { slider.controls.el.addClass('bx-has-controls-auto').append(slider.controls.autoEl); } // update the auto controls updateAutoControls(slider.settings.autoStart ? 'stop' : 'start'); }; - /** * Appends image captions to the DOM */ @@ -737,7 +776,6 @@ } }); }; - /** * Click next binding * @@ -746,12 +784,15 @@ */ var clickNextBind = function(e) { e.preventDefault(); - if (slider.controls.el.hasClass('disabled')) { return; } + if (slider.controls.el.hasClass('disabled')) { + return; + } // if auto show is running, stop it - if (slider.settings.auto && slider.settings.stopAutoOnClick) { el.stopAuto(); } + if (slider.settings.auto && slider.settings.stopAutoOnClick) { + el.stopAuto(); + } el.goToNextSlide(); }; - /** * Click prev binding * @@ -760,12 +801,15 @@ */ var clickPrevBind = function(e) { e.preventDefault(); - if (slider.controls.el.hasClass('disabled')) { return; } + if (slider.controls.el.hasClass('disabled')) { + return; + } // if auto show is running, stop it - if (slider.settings.auto && slider.settings.stopAutoOnClick) { el.stopAuto(); } + if (slider.settings.auto && slider.settings.stopAutoOnClick) { + el.stopAuto(); + } el.goToPrevSlide(); }; - /** * Click start binding * @@ -776,7 +820,6 @@ el.startAuto(); e.preventDefault(); }; - /** * Click stop binding * @@ -787,7 +830,6 @@ el.stopAuto(); e.preventDefault(); }; - /** * Click pager binding * @@ -801,15 +843,18 @@ return; } // if auto show is running, stop it - if (slider.settings.auto && slider.settings.stopAutoOnClick) { el.stopAuto(); } + if (slider.settings.auto && slider.settings.stopAutoOnClick) { + el.stopAuto(); + } pagerLink = $(e.currentTarget); if (pagerLink.attr('data-slide-index') !== undefined) { pagerIndex = parseInt(pagerLink.attr('data-slide-index')); // if clicked pager link is not active, continue with the goToSlide call - if (pagerIndex !== slider.active.index) { el.goToSlide(pagerIndex); } + if (pagerIndex !== slider.active.index) { + el.goToSlideDelayed(pagerIndex); + } } }; - /** * Updates the pager links with an active class * @@ -829,9 +874,10 @@ // remove all pager active classes slider.pagerEl.find('a').removeClass('active'); // apply the active class for all pagers - slider.pagerEl.each(function(i, el) { $(el).find('a').eq(slideIndex).addClass('active'); }); + slider.pagerEl.each(function(i, el) { + $(el).find('a').eq(slideIndex).addClass('active'); + }); }; - /** * Performs needed actions after a slide transition */ @@ -843,16 +889,19 @@ if (slider.active.index === 0) { // set the new position position = slider.children.eq(0).position(); - // carousel, last slide + // carousel, last slide } else if (slider.active.index === getPagerQty() - 1 && slider.carousel) { position = slider.children.eq((getPagerQty() - 1) * getMoveBy()).position(); - // last slide + // last slide } else if (slider.active.index === slider.children.length - 1) { position = slider.children.eq(slider.children.length - 1).position(); } if (position) { - if (slider.settings.mode === 'horizontal') { setPositionProperty(-position.left, 'reset', 0); } - else if (slider.settings.mode === 'vertical') { setPositionProperty(-position.top, 'reset', 0); } + if (slider.settings.mode === 'horizontal') { + setPositionProperty(-position.left, 'reset', 0); + } else if (slider.settings.mode === 'vertical') { + setPositionProperty(-position.top, 'reset', 0); + } } } // declare that the transition is complete @@ -860,7 +909,6 @@ // onSlideAfter callback slider.settings.onSlideAfter.call(el, slider.children.eq(slider.active.index), slider.oldIndex, slider.active.index); }; - /** * Updates the auto controls state (either active, or combined switch) * @@ -871,13 +919,12 @@ // if autoControlsCombine is true, replace the current control with the new state if (slider.settings.autoControlsCombine) { slider.controls.autoEl.html(slider.controls[state]); - // if autoControlsCombine is false, apply the "active" class to the appropriate control + // if autoControlsCombine is false, apply the "active" class to the appropriate control } else { slider.controls.autoEl.find('a').removeClass('active'); slider.controls.autoEl.find('a:not(.bx-' + state + ')').addClass('active'); } }; - /** * Updates the direction controls (checks if either should be hidden) */ @@ -890,18 +937,17 @@ if (slider.active.index === 0) { slider.controls.prev.addClass('disabled'); slider.controls.next.removeClass('disabled'); - // if last slide + // if last slide } else if (slider.active.index === getPagerQty() - 1) { slider.controls.next.addClass('disabled'); slider.controls.prev.removeClass('disabled'); - // if any slide in the middle + // if any slide in the middle } else { slider.controls.prev.removeClass('disabled'); slider.controls.next.removeClass('disabled'); } } }; - /** * Initializes the auto process */ @@ -909,10 +955,9 @@ // if autoDelay was supplied, launch the auto show using a setTimeout() call if (slider.settings.autoDelay > 0) { var timeout = setTimeout(el.startAuto, slider.settings.autoDelay); - // if autoDelay was not supplied, start the auto show normally + // if autoDelay was not supplied, start the auto show normally } else { el.startAuto(); - //add focus and blur events to ensure its running if timeout gets paused $(window).focus(function() { el.startAuto(); @@ -942,17 +987,16 @@ }); } }; - /** * Initializes the ticker process */ var initTicker = function() { var startPosition = 0, - position, transform, value, idx, ratio, property, newSpeed, totalDimens; + position, transform, value, idx, ratio, property, newSpeed, totalDimens; // if autoDirection is "next", append a clone of the entire slider if (slider.settings.autoDirection === 'next') { el.append(slider.children.clone().addClass('bx-clone')); - // if autoDirection is "prev", prepend a clone of the entire slider, and set the left position + // if autoDirection is "prev", prepend a clone of the entire slider, and set the left position } else { el.prepend(slider.children.clone().addClass('bx-clone')); position = slider.children.first().position(); @@ -1007,57 +1051,58 @@ // start the ticker loop tickerLoop(); }; - /** * Runs a continuous loop, news ticker-style */ var tickerLoop = function(resumeSpeed) { var speed = resumeSpeed ? resumeSpeed : slider.settings.speed, - position = {left: 0, top: 0}, - reset = {left: 0, top: 0}, - animateProperty, resetValue, params; - + position = { + left: 0, + top: 0 + }, + reset = { + left: 0, + top: 0 + }, + animateProperty, resetValue, params; // if "next" animate left position to last child, then reset left to 0 if (slider.settings.autoDirection === 'next') { position = el.find('.bx-clone').first().position(); - // if "prev" animate left position to 0, then reset left to first non-clone child + // if "prev" animate left position to 0, then reset left to first non-clone child } else { reset = slider.children.first().position(); } animateProperty = slider.settings.mode === 'horizontal' ? -position.left : -position.top; resetValue = slider.settings.mode === 'horizontal' ? -reset.left : -reset.top; - params = {resetValue: resetValue}; + params = { + resetValue: resetValue + }; setPositionProperty(animateProperty, 'ticker', speed, params); }; - /** * Check if el is on screen */ var isOnScreen = function(el) { var win = $(window), - viewport = { - top: win.scrollTop(), - left: win.scrollLeft() - }, - bounds = el.offset(); - + viewport = { + top: win.scrollTop(), + left: win.scrollLeft() + }, + bounds = el.offset(); viewport.right = viewport.left + win.width(); viewport.bottom = viewport.top + win.height(); bounds.right = bounds.left + el.outerWidth(); bounds.bottom = bounds.top + el.outerHeight(); - return (!(viewport.right < bounds.left || viewport.left > bounds.right || viewport.bottom < bounds.top || viewport.top > bounds.bottom)); }; - /** * Initializes keyboard events */ var keyPress = function(e) { var activeElementTag = document.activeElement.tagName.toLowerCase(), - tagFilters = 'input|textarea', - p = new RegExp(activeElementTag,['i']), - result = p.exec(tagFilters); - + tagFilters = 'input|textarea', + p = new RegExp(activeElementTag, ['i']), + result = p.exec(tagFilters); if (result == null && isOnScreen(el)) { if (e.keyCode === 39) { clickNextBind(e); @@ -1068,18 +1113,22 @@ } } }; - /** * Initializes touch events */ var initTouch = function() { // initialize object to contain all touch values slider.touch = { - start: {x: 0, y: 0}, - end: {x: 0, y: 0} + start: { + x: 0, + y: 0 + }, + end: { + x: 0, + y: 0 + } }; slider.viewport.bind('touchstart MSPointerDown pointerdown', onTouchStart); - //for browsers that have implemented pointer events and fire a click after //every pointerup regardless of whether pointerup is on same screen location as pointerdown or not slider.viewport.on('click', '.bxslider a', function(e) { @@ -1089,7 +1138,6 @@ } }); }; - /** * Event handler for "touchstart" * @@ -1099,7 +1147,6 @@ var onTouchStart = function(e) { //disable slider controls while user is interacting with slides to avoid slider freeze that happens on touch devices when a slide swipe happens immediately after interacting with slider controls slider.controls.el.addClass('disabled'); - if (slider.working) { e.preventDefault(); slider.controls.el.removeClass('disabled'); @@ -1107,11 +1154,10 @@ // record the original position when touch starts slider.touch.originalPos = el.position(); var orig = e.originalEvent, - touchPoints = (typeof orig.changedTouches !== 'undefined') ? orig.changedTouches : [orig]; + touchPoints = (typeof orig.changedTouches !== 'undefined') ? orig.changedTouches : [orig]; // record the starting touch x, y coordinates slider.touch.start.x = touchPoints[0].pageX; slider.touch.start.y = touchPoints[0].pageY; - if (slider.viewport.get(0).setPointerCapture) { slider.pointerId = orig.pointerId; slider.viewport.get(0).setPointerCapture(slider.pointerId); @@ -1123,7 +1169,6 @@ slider.viewport.bind('MSPointerCancel pointercancel', onPointerCancel); } }; - /** * Cancel Pointer for Windows Phone * @@ -1134,7 +1179,6 @@ /* onPointerCancel handler is needed to deal with situations when a touchend doesn't fire after a touchstart (this happens on windows phones only) */ setPositionProperty(slider.touch.originalPos.left, 'reset', 0); - //remove handlers slider.controls.el.removeClass('disabled'); slider.viewport.unbind('MSPointerCancel pointercancel', onPointerCancel); @@ -1144,7 +1188,6 @@ slider.viewport.get(0).releasePointerCapture(slider.pointerId); } }; - /** * Event handler for "touchmove" * @@ -1153,17 +1196,15 @@ */ var onTouchMove = function(e) { var orig = e.originalEvent, - touchPoints = (typeof orig.changedTouches !== 'undefined') ? orig.changedTouches : [orig], - // if scrolling on y axis, do not prevent default - xMovement = Math.abs(touchPoints[0].pageX - slider.touch.start.x), - yMovement = Math.abs(touchPoints[0].pageY - slider.touch.start.y), - value = 0, - change = 0; - + touchPoints = (typeof orig.changedTouches !== 'undefined') ? orig.changedTouches : [orig], // if scrolling on y axis, do not prevent default + xMovement = Math.abs(touchPoints[0].pageX - slider.touch.start.x), + yMovement = Math.abs(touchPoints[0].pageY - slider.touch.start.y), + value = 0, + change = 0; // x axis swipe if ((xMovement * 3) > yMovement && slider.settings.preventDefaultSwipeX) { e.preventDefault(); - // y axis swipe + // y axis swipe } else if ((yMovement * 3) > xMovement && slider.settings.preventDefaultSwipeY) { e.preventDefault(); } @@ -1172,7 +1213,7 @@ if (slider.settings.mode === 'horizontal') { change = touchPoints[0].pageX - slider.touch.start.x; value = slider.touch.originalPos.left + change; - // if vertical, drag along y axis + // if vertical, drag along y axis } else { change = touchPoints[0].pageY - slider.touch.start.y; value = slider.touch.originalPos.top + change; @@ -1180,7 +1221,6 @@ setPositionProperty(value, 'reset', 0); } }; - /** * Event handler for "touchend" * @@ -1191,10 +1231,10 @@ slider.viewport.unbind('touchmove MSPointerMove pointermove', onTouchMove); //enable slider controls as soon as user stops interacing with slides slider.controls.el.removeClass('disabled'); - var orig = e.originalEvent, - touchPoints = (typeof orig.changedTouches !== 'undefined') ? orig.changedTouches : [orig], - value = 0, - distance = 0; + var orig = e.originalEvent, + touchPoints = (typeof orig.changedTouches !== 'undefined') ? orig.changedTouches : [orig], + value = 0, + distance = 0; // record end x, y positions slider.touch.end.x = touchPoints[0].pageX; slider.touch.end.y = touchPoints[0].pageY; @@ -1209,7 +1249,7 @@ } el.stopAuto(); } - // not fade mode + // not fade mode } else { // calculate distance and el's animate property if (slider.settings.mode === 'horizontal') { @@ -1242,20 +1282,21 @@ slider.viewport.get(0).releasePointerCapture(slider.pointerId); } }; - /** * Window resize event callback */ var resizeWindow = function(e) { // don't do anything if slider isn't initialized. - if (!slider.initialized) { return; } + if (!slider.initialized) { + return; + } // Delay if slider working. if (slider.working) { window.setTimeout(resizeWindow, 10); } else { // get the new window dimens (again, thank you IE) var windowWidthNew = $(window).width(), - windowHeightNew = $(window).height(); + windowHeightNew = $(window).height(); // make sure that it is a true window resize // *we must check this because our dinosaur friend IE fires a window resize event when certain DOM elements // are resized. Can you just die already?* @@ -1270,7 +1311,6 @@ } } }; - /** * Adds an aria-hidden=true attribute to each element * @@ -1287,7 +1327,6 @@ slider.children.slice(startVisibleIndex, startVisibleIndex + numberOfSlidesShowing).attr('aria-hidden', 'false'); } }; - /** * Returns index according to present page range * @@ -1298,11 +1337,11 @@ if (slideIndex < 0) { if (slider.settings.infiniteLoop) { return getPagerQty() - 1; - }else { + } else { //we don't go to undefined slides return slider.active.index; } - // if slideIndex is greater than children length, set active index to 0 (this happens during infinite loop) + // if slideIndex is greater than children length, set active index to 0 (this happens during infinite loop) } else if (slideIndex >= getPagerQty()) { if (slider.settings.infiniteLoop) { return 0; @@ -1310,18 +1349,16 @@ //we don't move to undefined pages return slider.active.index; } - // set active index to requested slide + // set active index to requested slide } else { return slideIndex; } }; - /** * =================================================================================== * = PUBLIC FUNCTIONS * =================================================================================== */ - /** * Performs slide transition to the specified slide * @@ -1335,29 +1372,30 @@ // onSlideBefore, onSlideNext, onSlidePrev callbacks // Allow transition canceling based on returned value var performTransition = true, - moveBy = 0, - position = {left: 0, top: 0}, - lastChild = null, - lastShowingIndex, eq, value, requestEl; + moveBy = 0, + position = { + left: 0, + top: 0 + }, + lastChild = null, + lastShowingIndex, eq, value, requestEl; // store the old index slider.oldIndex = slider.active.index; //set new index slider.active.index = setSlideIndex(slideIndex); - // if plugin is currently in motion, ignore request - if (slider.working || slider.active.index === slider.oldIndex) { return; } + if (slider.working || slider.active.index === slider.oldIndex) { + return; + } // declare that plugin is in motion slider.working = true; - performTransition = slider.settings.onSlideBefore.call(el, slider.children.eq(slider.active.index), slider.oldIndex, slider.active.index); - // If transitions canceled, reset and return if (typeof (performTransition) !== 'undefined' && !performTransition) { slider.active.index = slider.oldIndex; // restore old index slider.working = false; // is not in motion return; } - if (direction === 'next') { // Prevent canceling in future functions or lack there-of from negating previous commands to cancel if (!slider.settings.onSlideNext.call(el, slider.children.eq(slider.active.index), slider.oldIndex, slider.active.index)) { @@ -1369,31 +1407,40 @@ performTransition = false; } } - // check if last slide slider.active.last = slider.active.index >= getPagerQty() - 1; // update the pager with active class - if (slider.settings.pager || slider.settings.pagerCustom) { updatePagerActive(slider.active.index); } + if (slider.settings.pager || slider.settings.pagerCustom) { + updatePagerActive(slider.active.index); + } // // check for direction control update - if (slider.settings.controls) { updateDirectionControls(); } + if (slider.settings.controls) { + updateDirectionControls(); + } // if slider is set to mode: "fade" if (slider.settings.mode === 'fade') { // if adaptiveHeight is true and next height is different from current height, animate to the new height if (slider.settings.adaptiveHeight && slider.viewport.height() !== getViewportHeight()) { - slider.viewport.animate({height: getViewportHeight()}, slider.settings.adaptiveHeightSpeed); + slider.viewport.animate({ + height: getViewportHeight() + }, slider.settings.adaptiveHeightSpeed); } // fade out the visible child and reset its z-index value - slider.children.filter(':visible').fadeOut(slider.settings.speed).css({zIndex: 0}); + slider.children.filter(':visible').fadeOut(slider.settings.speed).css({ + zIndex: 0 + }); // fade in the newly requested slide slider.children.eq(slider.active.index).css('zIndex', slider.settings.slideZIndex + 1).fadeIn(slider.settings.speed, function() { $(this).css('zIndex', slider.settings.slideZIndex); updateAfterSlideTransition(); }); - // slider mode is not "fade" + // slider mode is not "fade" } else { // if adaptiveHeight is true and next height is different from current height, animate to the new height if (slider.settings.adaptiveHeight && slider.viewport.height() !== getViewportHeight()) { - slider.viewport.animate({height: getViewportHeight()}, slider.settings.adaptiveHeightSpeed); + slider.viewport.animate({ + height: getViewportHeight() + }, slider.settings.adaptiveHeightSpeed); } // if carousel and not infinite loop if (!slider.settings.infiniteLoop && slider.carousel && slider.active.last) { @@ -1414,18 +1461,17 @@ eq = slider.settings.moveSlides === 1 ? slider.settings.maxSlides - getMoveBy() : ((getPagerQty() - 1) * getMoveBy()) - (slider.children.length - slider.settings.maxSlides); lastChild = el.children('.bx-clone').eq(eq); position = lastChild.position(); - // if infinite loop and "Next" is clicked on the last slide + // if infinite loop and "Next" is clicked on the last slide } else if (direction === 'next' && slider.active.index === 0) { // get the last clone position position = el.find('> .bx-clone').eq(slider.settings.maxSlides).position(); slider.active.last = false; - // normal non-zero requests + // normal non-zero requests } else if (slideIndex >= 0) { //parseInt is applied to allow floats for slides/page requestEl = slideIndex * parseInt(getMoveBy()); position = slider.children.eq(requestEl).position(); } - /* If the position doesn't exist * (e.g. if you destroy the slider on a next click), * it doesn't throw an error. @@ -1438,29 +1484,57 @@ slider.working = false; } } - if (slider.settings.ariaHidden) { applyAriaHiddenAttributes(slider.active.index * getMoveBy()); } + if (slider.settings.ariaHidden) { + applyAriaHiddenAttributes(slider.active.index * getMoveBy()); + } + setTimeout(function() { + slider.children.eq(slider.active.index).removeClass('out').addClass('in'); + }, 200); + }; + /** + * Performs slide transition to the specified slide with delay + + to allow perform single elements out animation + * + * @param slideIndex (int) + * - the destination slide's index (zero-based) + * + * @param direction (string) + * - INTERNAL USE ONLY - the direction of travel ("prev" / "next") + **/ + el.goToSlideDelayed = function(slideIndex, direction) { + var theSlide = slider.children.eq(slideIndex); + var customDelay = parseInt(theSlide.attr('data-pauseBeforeOut')) || slider.settings.pauseBeforeOut; + slider.children.eq(slider.active.index).removeClass('in').addClass('out'); + if (!customDelay) { + el.goToSlide(slideIndex, direction); + } else { + setTimeout(function() { + el.goToSlide(slideIndex, direction); + }, customDelay); + } }; - /** * Transitions to the next slide in the show */ el.goToNextSlide = function() { // if infiniteLoop is false and last page is showing, disregard call - if (!slider.settings.infiniteLoop && slider.active.last) { return; } + if (!slider.settings.infiniteLoop && slider.active.last) { + return; + } var pagerIndex = parseInt(slider.active.index) + 1; - el.goToSlide(pagerIndex, 'next'); + el.goToSlideDelayed(pagerIndex, 'next'); }; - /** * Transitions to the prev slide in the show */ el.goToPrevSlide = function() { // if infiniteLoop is false and last page is showing, disregard call - if (!slider.settings.infiniteLoop && slider.active.index === 0) { return; } + if (!slider.settings.infiniteLoop && slider.active.index === 0) { + return; + } var pagerIndex = parseInt(slider.active.index) - 1; - el.goToSlide(pagerIndex, 'prev'); + el.goToSlideDelayed(pagerIndex, 'prev'); }; - /** * Starts the auto show * @@ -1469,19 +1543,30 @@ */ el.startAuto = function(preventControlUpdate) { // if an interval already exists, disregard call - if (slider.interval) { return; } + var theSlide = slider.children.eq(slider.active.index); + // Checking if current slide defines a custom delay + // delay is the sum of pauseAfterIn and pause. This allow to define a global pause (for reading) + // and a customized pause for completition of single elements animations + var customDelay = parseInt(theSlide.attr('data-pauseAfterInt')) || slider.settings.pauseAfterIn || 0; + customDelay += parseInt(theSlide.attr('data-pause')) || slider.settings.pause || 0; + if (slider.interval || (!customDelay)) { + return; + } // create an interval - slider.interval = setInterval(function() { + slider.interval = setTimeout(function() { if (slider.settings.autoDirection === 'next') { el.goToNextSlide(); } else { el.goToPrevSlide(); } - }, slider.settings.pause); + slider.interval = 0; + el.startAuto(preventControlUpdate); + }, customDelay); // if auto controls are displayed and preventControlUpdate is not true - if (slider.settings.autoControls && preventControlUpdate !== true) { updateAutoControls('stop'); } + if (slider.settings.autoControls && preventControlUpdate !== true) { + updateAutoControls('stop'); + } }; - /** * Stops the auto show * @@ -1490,28 +1575,29 @@ */ el.stopAuto = function(preventControlUpdate) { // if no interval exists, disregard call - if (!slider.interval) { return; } + if (!slider.interval) { + return; + } // clear the interval clearInterval(slider.interval); slider.interval = null; // if auto controls are displayed and preventControlUpdate is not true - if (slider.settings.autoControls && preventControlUpdate !== true) { updateAutoControls('start'); } + if (slider.settings.autoControls && preventControlUpdate !== true) { + updateAutoControls('start'); + } }; - /** * Returns current slide index (zero-based) */ el.getCurrentSlide = function() { return slider.active.index; }; - /** * Returns current slide element */ el.getCurrentSlideElement = function() { return slider.children.eq(slider.active.index); }; - /** * Returns a slide element * @param index (int) @@ -1520,21 +1606,18 @@ el.getSlideElement = function(index) { return slider.children.eq(index); }; - /** * Returns number of slides in show */ el.getSlideCount = function() { return slider.children.length; }; - /** * Return slider.working variable */ el.isWorking = function() { return slider.working; }; - /** * Update all dynamic slider elements */ @@ -1544,26 +1627,35 @@ // adjust the height slider.viewport.css('height', getViewportHeight()); // update the slide position - if (!slider.settings.ticker) { setSlidePosition(); } + if (!slider.settings.ticker) { + setSlidePosition(); + } // if active.last was true before the screen resize, we want // to keep it last no matter what screen size we end on - if (slider.active.last) { slider.active.index = getPagerQty() - 1; } + if (slider.active.last) { + slider.active.index = getPagerQty() - 1; + } // if the active index (page) no longer exists due to the resize, simply set the index as last - if (slider.active.index >= getPagerQty()) { slider.active.last = true; } + if (slider.active.index >= getPagerQty()) { + slider.active.last = true; + } // if a pager is being displayed and a custom pager is not being used, update it if (slider.settings.pager && !slider.settings.pagerCustom) { populatePager(); updatePagerActive(slider.active.index); } - if (slider.settings.ariaHidden) { applyAriaHiddenAttributes(slider.active.index * getMoveBy()); } + if (slider.settings.ariaHidden) { + applyAriaHiddenAttributes(slider.active.index * getMoveBy()); + } }; - /** * Destroy the current instance of the slider (revert everything back to original state) */ el.destroySlider = function() { // don't do anything if slider has already been destroyed - if (!slider.initialized) { return; } + if (!slider.initialized) { + return; + } slider.initialized = false; $('.bx-clone', this).remove(); slider.children.each(function() { @@ -1579,36 +1671,47 @@ $(this).removeAttr('style'); } $(this).unwrap().unwrap(); - if (slider.controls.el) { slider.controls.el.remove(); } - if (slider.controls.next) { slider.controls.next.remove(); } - if (slider.controls.prev) { slider.controls.prev.remove(); } - if (slider.pagerEl && slider.settings.controls && !slider.settings.pagerCustom) { slider.pagerEl.remove(); } + if (slider.controls.el) { + slider.controls.el.remove(); + } + if (slider.controls.next) { + slider.controls.next.remove(); + } + if (slider.controls.prev) { + slider.controls.prev.remove(); + } + if (slider.pagerEl && slider.settings.controls && !slider.settings.pagerCustom) { + slider.pagerEl.remove(); + } $('.bx-caption', this).remove(); - if (slider.controls.autoEl) { slider.controls.autoEl.remove(); } + if (slider.controls.autoEl) { + slider.controls.autoEl.remove(); + } clearInterval(slider.interval); - if (slider.settings.responsive) { $(window).unbind('resize', resizeWindow); } - if (slider.settings.keyboardEnabled) { $(document).unbind('keydown', keyPress); } + if (slider.settings.responsive) { + $(window).unbind('resize', resizeWindow); + } + if (slider.settings.keyboardEnabled) { + $(document).unbind('keydown', keyPress); + } //remove self reference in data $(this).removeData('bxSlider'); }; - /** * Reload the slider (revert all DOM changes, and re-initialize) */ el.reloadSlider = function(settings) { - if (settings !== undefined) { options = settings; } + if (settings !== undefined) { + options = settings; + } el.destroySlider(); init(); //store reference to self in order to access public functions later $(el).data('bxSlider', this); }; - init(); - $(el).data('bxSlider', this); - // returns the current jQuery object return this; }; - })(jQuery); diff --git a/dist/jquery.bxslider.min.css b/dist/jquery.bxslider.min.css index 0b938f2f..aea68145 100644 --- a/dist/jquery.bxslider.min.css +++ b/dist/jquery.bxslider.min.css @@ -1,10 +1,14 @@ /** * bxSlider v4.2.5 - * Copyright 2013-2015 Steven Wanderski + * Copyright 2013-2017 Steven Wanderski * Written while drinking Belgian ales and listening to jazz * Licensed under MIT (http://opensource.org/licenses/MIT) */ -.bx-wrapper{position:relative;margin:0 auto 60px;padding:0;*zoom:1;-ms-touch-action:pan-y;touch-action:pan-y}.bx-wrapper img{max-width:100%;display:block}.bxslider{margin:0;padding:0}ul.bxslider{list-style:none}.bx-viewport{-webkit-transform:translatez(0)}.bx-wrapper{-moz-box-shadow:0 0 5px #ccc;-webkit-box-shadow:0 0 5px #ccc;box-shadow:0 0 5px #ccc;border:5px solid #fff;background:#fff}.bx-wrapper .bx-controls-auto,.bx-wrapper .bx-pager{position:absolute;bottom:-30px;width:100%}.bx-wrapper .bx-loading{min-height:50px;background:url(images/bx_loader.gif) center center no-repeat #fff;height:100%;width:100%;position:absolute;top:0;left:0;z-index:2000}.bx-wrapper .bx-pager{text-align:center;font-size:.85em;font-family:Arial;font-weight:700;color:#666;padding-top:20px}.bx-wrapper .bx-pager.bx-default-pager a{background:#666;text-indent:-9999px;display:block;width:10px;height:10px;margin:0 5px;outline:0;-moz-border-radius:5px;-webkit-border-radius:5px;border-radius:5px}.bx-wrapper .bx-pager.bx-default-pager a.active,.bx-wrapper .bx-pager.bx-default-pager a:focus,.bx-wrapper .bx-pager.bx-default-pager a:hover{background:#000}.bx-wrapper .bx-controls-auto .bx-controls-auto-item,.bx-wrapper .bx-pager-item{display:inline-block;*zoom:1;*display:inline}.bx-wrapper .bx-pager-item{font-size:0;line-height:0}.bx-wrapper .bx-prev{left:10px;background:url(images/controls.png) no-repeat 0 -32px}.bx-wrapper .bx-prev:focus,.bx-wrapper .bx-prev:hover{background-position:0 0}.bx-wrapper .bx-next{right:10px;background:url(images/controls.png) no-repeat -43px -32px}.bx-wrapper .bx-next:focus,.bx-wrapper .bx-next:hover{background-position:-43px 0}.bx-wrapper .bx-controls-direction a{position:absolute;top:50%;margin-top:-16px;outline:0;width:32px;height:32px;text-indent:-9999px;z-index:9999}.bx-wrapper .bx-controls-direction a.disabled{display:none}.bx-wrapper .bx-controls-auto{text-align:center}.bx-wrapper .bx-controls-auto .bx-start{display:block;text-indent:-9999px;width:10px;height:11px;outline:0;background:url(images/controls.png) -86px -11px no-repeat;margin:0 3px}.bx-wrapper .bx-controls-auto .bx-start.active,.bx-wrapper .bx-controls-auto .bx-start:focus,.bx-wrapper .bx-controls-auto .bx-start:hover{background-position:-86px 0}.bx-wrapper .bx-controls-auto .bx-stop{display:block;text-indent:-9999px;width:9px;height:11px;outline:0;background:url(images/controls.png) -86px -44px no-repeat;margin:0 3px}.bx-wrapper .bx-controls-auto .bx-stop.active,.bx-wrapper .bx-controls-auto .bx-stop:focus,.bx-wrapper .bx-controls-auto .bx-stop:hover{background-position:-86px -33px}.bx-wrapper .bx-controls.bx-has-controls-auto.bx-has-pager .bx-pager{text-align:left;width:80%}.bx-wrapper .bx-controls.bx-has-controls-auto.bx-has-pager .bx-controls-auto{right:0;width:35px}.bx-wrapper .bx-caption{position:absolute;bottom:0;left:0;background:#666;background:rgba(80,80,80,.75);width:100%}.bx-wrapper .bx-caption span{color:#fff;font-family:Arial;display:block;font-size:.85em;padding:10px} \ No newline at end of file +/*! +Animate.css - http://daneden.me/animate +Licensed under the MIT license - http://opensource.org/licenses/MIT +Copyright (c) 2015 Daniel Eden +*/body{-webkit-backface-visibility:hidden}.animated{-webkit-animation-duration:1s;animation-duration:1s;-webkit-animation-fill-mode:both;animation-fill-mode:both}.animated.infinite{animation-iteration-count:infinite}.animated.hinge{-webkit-animation-duration:2s;animation-duration:2s}.animated.bounceIn,.animated.bounceOut,.animated.flipOutX,.animated.flipOutY{-webkit-animation-duration:.75s;animation-duration:.75s}.in .animated.fast,.in .animated.fastIn{-webkit-animation-duration:.5s;animation-duration:.5s}.in .animated.slow,.in .animated.slowIn{-webkit-animation-duration:1.5s;animation-duration:1.5s}.in .animated.xslow,.in .animated.xslowIn{-webkit-animation-duration:2.5s;animation-duration:2.5s}.in .animated.hinge.fast,.in .animated.hinge.fastIn{-webkit-animation-duration:1s;animation-duration:1s}.in .animated.hinge.slow,.in .animated.hinge.slowIn{-webkit-animation-duration:3s;animation-duration:3s}.out .animated.fastOut{-webkit-animation-duration:.5s;animation-duration:.5s}.out .animated.slowOut{-webkit-animation-duration:1.5s;animation-duration:1.5s}.out .animated.xslowOut{-webkit-animation-duration:2.5s;animation-duration:2.5s}.out .animated.hinge.fastOut{-webkit-animation-duration:1s;animation-duration:1s}.out .animated.hinge.slowOut{-webkit-animation-duration:3s;animation-duration:3s}.in .animated{-webkit-animation-delay:.5s;animation-delay:.5s}.in .animated.delay500,.in .animated.delayIn500{-webkit-animation-delay:1s;animation-delay:1s}.in .animated.delay1,.in .animated.delay1000,.in .animated.delayIn1000{-webkit-animation-delay:1.5s;animation-delay:1.5s}.in .animated.delay1500,.in .animated.delayIn1500{-webkit-animation-delay:2s;animation-delay:2s}.in .animated.delay2,.in .animated.delay2000,.in .animated.delayIn2000{-webkit-animation-delay:2.5s;animation-delay:2.5s}.in .animated.delay2500,.in .animated.delayIn2500{-webkit-animation-delay:3s;animation-delay:3s}.in .animated.delay3,.in .animated.delay3000,.in .animated.delayIn3000{-webkit-animation-delay:3.5s;animation-delay:3.5s}.in .animated.delay3500,.in .animated.delayIn3500{-webkit-animation-delay:4s;animation-delay:4s}.in .animated.delay4,.in .animated.delay4000,.in .animated.delayIn4000{-webkit-animation-delay:4.5s;animation-delay:4.5s}.in .animated.delay4500,.in .animated.delayIn4500{-webkit-animation-delay:5s;animation-delay:5s}.in .animated.delay5,.in .animateddelay5000,.in .animateddelayIn5000{-webkit-animation-delay:5.5s;animation-delay:5.5s}.out .animated.delayOut500{-webkit-animation-delay:1s;animation-delay:1s}.out .animated.delayOut1000{-webkit-animation-delay:1.5s;animation-delay:1.5s}.out .animated.delayOut1500{-webkit-animation-delay:2s;animation-delay:2s}.out .animated.delayOut2000{-webkit-animation-delay:2.5s;animation-delay:2.5s}.out .animated.delayOut2500{-webkit-animation-delay:3s;animation-delay:3s}.out .animated.delayOut3000{-webkit-animation-delay:3.5s;animation-delay:3.5s}.out .animated.delayOut3500{-webkit-animation-delay:4s;animation-delay:4s}.out .animated.delayOut4000{-webkit-animation-delay:4.5s;animation-delay:4.5s}.out .animated.delayOut4500{-webkit-animation-delay:5s;animation-delay:5s}.out .animateddelayOut5000{-webkit-animation-delay:5.5s;animation-delay:5.5s}@-webkit-keyframes bounce{0%,100%,20%,50%,80%{-webkit-transform:translateY(0)}40%{-webkit-transform:translateY(-30px)}60%{-webkit-transform:translateY(-15px)}}@keyframes bounce{0%,100%,20%,50%,80%{transform:translateY(0)}40%{transform:translateY(-30px)}60%{transform:translateY(-15px)}}.bounce{-webkit-animation-name:bounce;animation-name:bounce}@-webkit-keyframes bounceIn{0%{opacity:0;-webkit-transform:scale(0.3)}50%{opacity:1;-webkit-transform:scale(1.05)}70%{-webkit-transform:scale(0.9)}100%{-webkit-transform:scale(1)}}@keyframes bounceIn{0%{opacity:0;transform:scale(0.3)}50%{opacity:1;transform:scale(1.05)}70%{transform:scale(0.9)}100%{transform:scale(1)}}.in .bounceIn{-webkit-animation-name:bounceIn;animation-name:bounceIn}@-webkit-keyframes bounceInDown{0%{opacity:0;-webkit-transform:translateY(-2000px)}60%{opacity:1;-webkit-transform:translateY(30px)}80%{-webkit-transform:translateY(-10px)}100%{-webkit-transform:translateY(0)}}@keyframes bounceInDown{0%{opacity:0;transform:translateY(-2000px)}60%{opacity:1;transform:translateY(30px)}80%{transform:translateY(-10px)}100%{transform:translateY(0)}}.in .bounceInDown{-webkit-animation-name:bounceInDown;animation-name:bounceInDown}@-webkit-keyframes bounceInLeft{0%{opacity:0;-webkit-transform:translateX(-2000px)}60%{opacity:1;-webkit-transform:translateX(30px)}80%{-webkit-transform:translateX(-10px)}100%{-webkit-transform:translateX(0)}}@keyframes bounceInLeft{0%{opacity:0;transform:translateX(-2000px)}60%{opacity:1;transform:translateX(30px)}80%{transform:translateX(-10px)}100%{transform:translateX(0)}}.in .bounceInLeft{-webkit-animation-name:bounceInLeft;animation-name:bounceInLeft}@-webkit-keyframes bounceInRight{0%{opacity:0;-webkit-transform:translateX(2000px)}60%{opacity:1;-webkit-transform:translateX(-30px)}80%{-webkit-transform:translateX(10px)}100%{-webkit-transform:translateX(0)}}@keyframes bounceInRight{0%{opacity:0;transform:translateX(2000px)}60%{opacity:1;transform:translateX(-30px)}80%{transform:translateX(10px)}100%{transform:translateX(0)}}.in .bounceInRight{-webkit-animation-name:bounceInRight;animation-name:bounceInRight}@-webkit-keyframes bounceInUp{0%{opacity:0;-webkit-transform:translateY(2000px)}60%{opacity:1;-webkit-transform:translateY(-30px)}80%{-webkit-transform:translateY(10px)}100%{-webkit-transform:translateY(0)}}@keyframes bounceInUp{0%{opacity:0;transform:translateY(2000px)}60%{opacity:1;transform:translateY(-30px)}80%{transform:translateY(10px)}100%{transform:translateY(0)}}.in .bounceInUp{-webkit-animation-name:bounceInUp;animation-name:bounceInUp}@-webkit-keyframes bounceOut{0%{-webkit-transform:scale(1)}25%{-webkit-transform:scale(0.95)}50%{opacity:1;-webkit-transform:scale(1.1)}100%{opacity:0;-webkit-transform:scale(0.3)}}@keyframes bounceOut{0%{transform:scale(1)}25%{transform:scale(0.95)}50%{opacity:1;transform:scale(1.1)}100%{opacity:0;transform:scale(0.3)}}.out .bounceOut{-webkit-animation-name:bounceOut;animation-name:bounceOut}@-webkit-keyframes bounceOutDown{0%{-webkit-transform:translateY(0)}20%{opacity:1;-webkit-transform:translateY(-20px)}100%{opacity:0;-webkit-transform:translateY(2000px)}}@keyframes bounceOutDown{0%{transform:translateY(0)}20%{opacity:1;transform:translateY(-20px)}100%{opacity:0;transform:translateY(2000px)}}.out .bounceOutDown{-webkit-animation-name:bounceOutDown;animation-name:bounceOutDown}@-webkit-keyframes bounceOutLeft{0%{-webkit-transform:translateX(0)}20%{opacity:1;-webkit-transform:translateX(20px)}100%{opacity:0;-webkit-transform:translateX(-2000px)}}@keyframes bounceOutLeft{0%{transform:translateX(0)}20%{opacity:1;transform:translateX(20px)}100%{opacity:0;transform:translateX(-2000px)}}.out .bounceOutLeft{-webkit-animation-name:bounceOutLeft;animation-name:bounceOutLeft}@-webkit-keyframes bounceOutRight{0%{-webkit-transform:translateX(0)}20%{opacity:1;-webkit-transform:translateX(-20px)}100%{opacity:0;-webkit-transform:translateX(2000px)}}@keyframes bounceOutRight{0%{transform:translateX(0)}20%{opacity:1;transform:translateX(-20px)}100%{opacity:0;transform:translateX(2000px)}}.out .bounceOutRight{-webkit-animation-name:bounceOutRight;animation-name:bounceOutRight}@-webkit-keyframes bounceOutUp{0%{-webkit-transform:translateY(0)}20%{opacity:1;-webkit-transform:translateY(20px)}100%{opacity:0;-webkit-transform:translateY(-2000px)}}@keyframes bounceOutUp{0%{transform:translateY(0)}20%{opacity:1;transform:translateY(20px)}100%{opacity:0;transform:translateY(-2000px)}}.out .bounceOutUp{-webkit-animation-name:bounceOutUp;animation-name:bounceOutUp}@-webkit-keyframes fadeIn{0%{opacity:0}100%{opacity:1}}@keyframes fadeIn{0%{opacity:0}100%{opacity:1}}.in .fadeIn{-webkit-animation-name:fadeIn;animation-name:fadeIn}@-webkit-keyframes fadeInDown{0%{opacity:0;-webkit-transform:translateY(-20px)}100%{opacity:1;-webkit-transform:translateY(0)}}@keyframes fadeInDown{0%{opacity:0;transform:translateY(-20px)}100%{opacity:1;transform:translateY(0)}}.in .fadeInDown{-webkit-animation-name:fadeInDown;animation-name:fadeInDown}@-webkit-keyframes fadeInDownBig{0%{opacity:0;-webkit-transform:translateY(-2000px)}100%{opacity:1;-webkit-transform:translateY(0)}}@keyframes fadeInDownBig{0%{opacity:0;transform:translateY(-2000px)}100%{opacity:1;transform:translateY(0)}}.in .fadeInDownBig{-webkit-animation-name:fadeInDownBig;animation-name:fadeInDownBig}@-webkit-keyframes fadeInLeft{0%{opacity:0;-webkit-transform:translateX(-20px)}100%{opacity:1;-webkit-transform:translateX(0)}}@keyframes fadeInLeft{0%{opacity:0;transform:translateX(-20px)}100%{opacity:1;transform:translateX(0)}}.in .fadeInLeft{-webkit-animation-name:fadeInLeft;animation-name:fadeInLeft}@-webkit-keyframes fadeInLeftBig{0%{opacity:0;-webkit-transform:translateX(-2000px)}100%{opacity:1;-webkit-transform:translateX(0)}}@keyframes fadeInLeftBig{0%{opacity:0;transform:translateX(-2000px)}100%{opacity:1;transform:translateX(0)}}.in .fadeInLeftBig{-webkit-animation-name:fadeInLeftBig;animation-name:fadeInLeftBig}@-webkit-keyframes fadeInRight{0%{opacity:0;-webkit-transform:translateX(20px)}100%{opacity:1;-webkit-transform:translateX(0)}}@keyframes fadeInRight{0%{opacity:0;transform:translateX(20px)}100%{opacity:1;transform:translateX(0)}}.in .fadeInRight{-webkit-animation-name:fadeInRight;animation-name:fadeInRight}@-webkit-keyframes fadeInRightBig{0%{opacity:0;-webkit-transform:translateX(2000px)}100%{opacity:1;-webkit-transform:translateX(0)}}@keyframes fadeInRightBig{0%{opacity:0;transform:translateX(2000px)}100%{opacity:1;transform:translateX(0)}}.in .fadeInRightBig{-webkit-animation-name:fadeInRightBig;animation-name:fadeInRightBig}@-webkit-keyframes fadeInUp{0%{opacity:0;-webkit-transform:translateY(20px)}100%{opacity:1;-webkit-transform:translateY(0)}}@keyframes fadeInUp{0%{opacity:0;transform:translateY(20px)}100%{opacity:1;transform:translateY(0)}}.in .fadeInUp{-webkit-animation-name:fadeInUp;animation-name:fadeInUp}@-webkit-keyframes fadeInUpBig{0%{opacity:0;-webkit-transform:translateY(2000px)}100%{opacity:1;-webkit-transform:translateY(0)}}@keyframes fadeInUpBig{0%{opacity:0;transform:translateY(2000px)}100%{opacity:1;transform:translateY(0)}}.in .fadeInUpBig{-webkit-animation-name:fadeInUpBig;animation-name:fadeInUpBig}@-webkit-keyframes fadeOut{0%{opacity:1}100%{opacity:0}}@keyframes fadeOut{0%{opacity:1}100%{opacity:0}}.out .fadeOut{-webkit-animation-name:fadeOut;animation-name:fadeOut}@-webkit-keyframes fadeOutDown{0%{opacity:1;-webkit-transform:translateY(0)}100%{opacity:0;-webkit-transform:translateY(20px)}}@keyframes fadeOutDown{0%{opacity:1;transform:translateY(0)}100%{opacity:0;transform:translateY(20px)}}.out .fadeOutDown{-webkit-animation-name:fadeOutDown;animation-name:fadeOutDown}@-webkit-keyframes fadeOutDownBig{0%{opacity:1;-webkit-transform:translateY(0)}100%{opacity:0;-webkit-transform:translateY(2000px)}}@keyframes fadeOutDownBig{0%{opacity:1;transform:translateY(0)}100%{opacity:0;transform:translateY(2000px)}}.out .fadeOutDownBig{-webkit-animation-name:fadeOutDownBig;animation-name:fadeOutDownBig}@-webkit-keyframes fadeOutLeft{0%{opacity:1;-webkit-transform:translateX(0)}100%{opacity:0;-webkit-transform:translateX(-20px)}}@keyframes fadeOutLeft{0%{opacity:1;transform:translateX(0)}100%{opacity:0;transform:translateX(-20px)}}.out .fadeOutLeft{-webkit-animation-name:fadeOutLeft;animation-name:fadeOutLeft}@-webkit-keyframes fadeOutLeftBig{0%{opacity:1;-webkit-transform:translateX(0)}100%{opacity:0;-webkit-transform:translateX(-2000px)}}@keyframes fadeOutLeftBig{0%{opacity:1;transform:translateX(0)}100%{opacity:0;transform:translateX(-2000px)}}.out .fadeOutLeftBig{-webkit-animation-name:fadeOutLeftBig;animation-name:fadeOutLeftBig}@-webkit-keyframes fadeOutRight{0%{opacity:1;-webkit-transform:translateX(0)}100%{opacity:0;-webkit-transform:translateX(20px)}}@keyframes fadeOutRight{0%{opacity:1;transform:translateX(0)}100%{opacity:0;transform:translateX(20px)}}.out .fadeOutRight{-webkit-animation-name:fadeOutRight;animation-name:fadeOutRight}@-webkit-keyframes fadeOutRightBig{0%{opacity:1;-webkit-transform:translateX(0)}100%{opacity:0;-webkit-transform:translateX(2000px)}}@keyframes fadeOutRightBig{0%{opacity:1;transform:translateX(0)}100%{opacity:0;transform:translateX(2000px)}}.out .fadeOutRightBig{-webkit-animation-name:fadeOutRightBig;animation-name:fadeOutRightBig}@-webkit-keyframes fadeOutUp{0%{opacity:1;-webkit-transform:translateY(0)}100%{opacity:0;-webkit-transform:translateY(-20px)}}@keyframes fadeOutUp{0%{opacity:1;transform:translateY(0)}100%{opacity:0;transform:translateY(-20px)}}.out .fadeOutUp{-webkit-animation-name:fadeOutUp;animation-name:fadeOutUp}@-webkit-keyframes fadeOutUpBig{0%{opacity:1;-webkit-transform:translateY(0)}100%{opacity:0;-webkit-transform:translateY(-2000px)}}@keyframes fadeOutUpBig{0%{opacity:1;transform:translateY(0)}100%{opacity:0;transform:translateY(-2000px)}}.out .fadeOutUpBig{-webkit-animation-name:fadeOutUpBig;animation-name:fadeOutUpBig}@-webkit-keyframes flipInX{0%{-webkit-transform:perspective(400px) rotateX(90deg);opacity:0}40%{-webkit-transform:perspective(400px) rotateX(-10deg)}70%{-webkit-transform:perspective(400px) rotateX(10deg)}100%{-webkit-transform:perspective(400px) rotateX(0deg);opacity:1}}@keyframes flipInX{0%{transform:perspective(400px) rotateX(90deg);opacity:0}40%{transform:perspective(400px) rotateX(-10deg)}70%{transform:perspective(400px) rotateX(10deg)}100%{transform:perspective(400px) rotateX(0deg);opacity:1}}.in .flipInX{-webkit-backface-visibility:visible!important;backface-visibility:visible!important;-webkit-animation-name:flipInX;animation-name:flipInX}@-webkit-keyframes flipInY{0%{-webkit-transform:perspective(400px) rotateY(90deg);opacity:0}40%{-webkit-transform:perspective(400px) rotateY(-10deg)}70%{-webkit-transform:perspective(400px) rotateY(10deg)}100%{-webkit-transform:perspective(400px) rotateY(0deg);opacity:1}}@keyframes flipInY{0%{transform:perspective(400px) rotateY(90deg);opacity:0}40%{transform:perspective(400px) rotateY(-10deg)}70%{transform:perspective(400px) rotateY(10deg)}100%{transform:perspective(400px) rotateY(0deg);opacity:1}}.in .flipInY{-webkit-backface-visibility:visible!important;backface-visibility:visible!important;-webkit-animation-name:flipInY;animation-name:flipInY}@-webkit-keyframes flipOutX{0%{-webkit-transform:perspective(400px) rotateX(0deg);opacity:1}100%{-webkit-transform:perspective(400px) rotateX(90deg);opacity:0}}@keyframes flipOutX{0%{transform:perspective(400px) rotateX(0deg);opacity:1}100%{transform:perspective(400px) rotateX(90deg);opacity:0}}.out .flipOutX{-webkit-animation-name:flipOutX;animation-name:flipOutX;-webkit-backface-visibility:visible!important;backface-visibility:visible!important}@-webkit-keyframes flipOutY{0%{-webkit-transform:perspective(400px) rotateY(0deg);opacity:1}100%{-webkit-transform:perspective(400px) rotateY(90deg);opacity:0}}@keyframes flipOutY{0%{transform:perspective(400px) rotateY(0deg);opacity:1}100%{transform:perspective(400px) rotateY(90deg);opacity:0}}.out .flipOutY{-webkit-backface-visibility:visible!important;backface-visibility:visible!important;-webkit-animation-name:flipOutY;animation-name:flipOutY}@-webkit-keyframes lightSpeedIn{0%{-webkit-transform:translateX(100%) skewX(-30deg);opacity:0}60%{-webkit-transform:translateX(-20%) skewX(30deg);opacity:1}80%{-webkit-transform:translateX(0%) skewX(-15deg);opacity:1}100%{-webkit-transform:translateX(0%) skewX(0deg);opacity:1}}@keyframes lightSpeedIn{0%{transform:translateX(100%) skewX(-30deg);opacity:0}60%{transform:translateX(-20%) skewX(30deg);opacity:1}80%{transform:translateX(0%) skewX(-15deg);opacity:1}100%{transform:translateX(0%) skewX(0deg);opacity:1}}.in .lightSpeedIn{-webkit-animation-name:lightSpeedIn;animation-name:lightSpeedIn;-webkit-animation-timing-function:ease-out;animation-timing-function:ease-out}@-webkit-keyframes lightSpeedOut{0%{-webkit-transform:translateX(0%) skewX(0deg);opacity:1}100%{-webkit-transform:translateX(100%) skewX(-30deg);opacity:0}}@keyframes lightSpeedOut{0%{transform:translateX(0%) skewX(0deg);opacity:1}100%{transform:translateX(100%) skewX(-30deg);opacity:0}}.out .lightSpeedOut{-webkit-animation-name:lightSpeedOut;animation-name:lightSpeedOut;-webkit-animation-timing-function:ease-in;animation-timing-function:ease-in}@-webkit-keyframes rotateIn{0%{-webkit-transform-origin:center center;-webkit-transform:rotate(-200deg);opacity:0}100%{-webkit-transform-origin:center center;-webkit-transform:rotate(0);opacity:1}}@keyframes rotateIn{0%{transform-origin:center center;transform:rotate(-200deg);opacity:0}100%{transform-origin:center center;transform:rotate(0);opacity:1}}.in .rotateIn{-webkit-animation-name:rotateIn;animation-name:rotateIn}@-webkit-keyframes rotateInDownLeft{0%{-webkit-transform-origin:left bottom;-webkit-transform:rotate(-90deg);opacity:0}100%{-webkit-transform-origin:left bottom;-webkit-transform:rotate(0);opacity:1}}@keyframes rotateInDownLeft{0%{transform-origin:left bottom;transform:rotate(-90deg);opacity:0}100%{transform-origin:left bottom;transform:rotate(0);opacity:1}}.in .rotateInDownLeft{-webkit-animation-name:rotateInDownLeft;animation-name:rotateInDownLeft}@-webkit-keyframes rotateInDownRight{0%{-webkit-transform-origin:right bottom;-webkit-transform:rotate(90deg);opacity:0}100%{-webkit-transform-origin:right bottom;-webkit-transform:rotate(0);opacity:1}}@keyframes rotateInDownRight{0%{transform-origin:right bottom;transform:rotate(90deg);opacity:0}100%{transform-origin:right bottom;transform:rotate(0);opacity:1}}.in .rotateInDownRight{-webkit-animation-name:rotateInDownRight;animation-name:rotateInDownRight}@-webkit-keyframes rotateInUpLeft{0%{-webkit-transform-origin:left bottom;-webkit-transform:rotate(90deg);opacity:0}100%{-webkit-transform-origin:left bottom;-webkit-transform:rotate(0);opacity:1}}@keyframes rotateInUpLeft{0%{transform-origin:left bottom;transform:rotate(90deg);opacity:0}100%{transform-origin:left bottom;transform:rotate(0);opacity:1}}.in .rotateInUpLeft{-webkit-animation-name:rotateInUpLeft;animation-name:rotateInUpLeft}@-webkit-keyframes rotateInUpRight{0%{-webkit-transform-origin:right bottom;-webkit-transform:rotate(-90deg);opacity:0}100%{-webkit-transform-origin:right bottom;-webkit-transform:rotate(0);opacity:1}}@keyframes rotateInUpRight{0%{transform-origin:right bottom;transform:rotate(-90deg);opacity:0}100%{transform-origin:right bottom;transform:rotate(0);opacity:1}}.in .rotateInUpRight{-webkit-animation-name:rotateInUpRight;animation-name:rotateInUpRight}@-webkit-keyframes rotateOut{0%{-webkit-transform-origin:center center;-webkit-transform:rotate(0);opacity:1}100%{-webkit-transform-origin:center center;-webkit-transform:rotate(200deg);opacity:0}}@keyframes rotateOut{0%{transform-origin:center center;transform:rotate(0);opacity:1}100%{transform-origin:center center;transform:rotate(200deg);opacity:0}}.out .rotateOut{-webkit-animation-name:rotateOut;animation-name:rotateOut}@-webkit-keyframes rotateOutDownLeft{0%{-webkit-transform-origin:left bottom;-webkit-transform:rotate(0);opacity:1}100%{-webkit-transform-origin:left bottom;-webkit-transform:rotate(90deg);opacity:0}}@keyframes rotateOutDownLeft{0%{transform-origin:left bottom;transform:rotate(0);opacity:1}100%{transform-origin:left bottom;transform:rotate(90deg);opacity:0}}.out .rotateOutDownLeft{-webkit-animation-name:rotateOutDownLeft;animation-name:rotateOutDownLeft}@-webkit-keyframes rotateOutDownRight{0%{-webkit-transform-origin:right bottom;-webkit-transform:rotate(0);opacity:1}100%{-webkit-transform-origin:right bottom;-webkit-transform:rotate(-90deg);opacity:0}}@keyframes rotateOutDownRight{0%{transform-origin:right bottom;transform:rotate(0);opacity:1}100%{transform-origin:right bottom;transform:rotate(-90deg);opacity:0}}.out .rotateOutDownRight{-webkit-animation-name:rotateOutDownRight;animation-name:rotateOutDownRight}@-webkit-keyframes rotateOutUpLeft{0%{-webkit-transform-origin:left bottom;-webkit-transform:rotate(0);opacity:1}100%{-webkit-transform-origin:left bottom;-webkit-transform:rotate(-90deg);opacity:0}}@keyframes rotateOutUpLeft{0%{transform-origin:left bottom;transform:rotate(0);opacity:1}100%{-transform-origin:left bottom;-transform:rotate(-90deg);opacity:0}}.out .rotateOutUpLeft{-webkit-animation-name:rotateOutUpLeft;animation-name:rotateOutUpLeft}@-webkit-keyframes rotateOutUpRight{0%{-webkit-transform-origin:right bottom;-webkit-transform:rotate(0);opacity:1}100%{-webkit-transform-origin:right bottom;-webkit-transform:rotate(90deg);opacity:0}}@keyframes rotateOutUpRight{0%{transform-origin:right bottom;transform:rotate(0);opacity:1}100%{transform-origin:right bottom;transform:rotate(90deg);opacity:0}}.out .rotateOutUpRight{-webkit-animation-name:rotateOutUpRight;animation-name:rotateOutUpRight}@-webkit-keyframes slideInDown{0%{-webkit-transform:translate3d(0,-100%,0);visibility:visible}100%{-webkit-transform:translate3d(0,0,0)}}@keyframes slideInDown{0%{transform:translate3d(0,-100%,0);visibility:visible}100%{transform:translate3d(0,0,0)}}.in .slideInDown{-webkit-animation-name:slideInDown;animation-name:slideInDown}@-webkit-keyframes slideInLeft{0%{-webkit-transform:translate3d(-100%,0,0);visibility:visible}100%{-webkit-transform:translate3d(0,0,0)}}@keyframes slideInLeft{0%{transform:translate3d(-100%,0,0);visibility:visible}100%{transform:translate3d(0,0,0)}}.in .slideInLeft{-webkit-animation-name:slideInLeft;animation-name:slideInLeft}@-webkit-keyframes slideInRight{0%{-webkit-transform:translate3d(100%,0,0);visibility:visible}100%{-webkit-transform:translate3d(0,0,0)}}@keyframes slideInRight{0%{transform:translate3d(100%,0,0);visibility:visible}100%{transform:translate3d(0,0,0)}}.in .slideInRight{-webkit-animation-name:slideInRight;animation-name:slideInRight}@-webkit-keyframes slideInUp{0%{-webkit-transform:translate3d(0,100%,0);visibility:visible}100%{-webkit-transform:translate3d(0,0,0)}}@keyframes slideInUp{0%{transform:translate3d(0,100%,0);visibility:visible}100%{transform:translate3d(0,0,0)}}.in .slideInUp{-webkit-animation-name:slideInUp;animation-name:slideInUp}@-webkit-keyframes slideOutDown{0%{-webkit-transform:translate3d(0,0,0);visibility:visible}100%{-webkit-transform:translate3d(0,100%,0)}}@keyframes slideOutDown{0%{transform:translate3d(0,0,0);visibility:visible}100%{transform:translate3d(0,100%,0)}}.out .slideOutDown{-webkit-animation-name:slideOutDown;animation-name:slideOutDown}@-webkit-keyframes slideOutLeft{0%{-webkit-transform:translate3d(0,0,0);visibility:visible}100%{-webkit-transform:translate3d(-100%,0,0)}}@keyframes slideOutLeft{0%{transform:translate3d(0,0,0);visibility:visible}100%{transform:translate3d(-100%,0,0)}}.out .slideOutLeft{-webkit-animation-name:slideOutLeft;animation-name:slideOutLeft}@-webkit-keyframes slideOutRight{0%{-webkit-transform:translate3d(0,0,0);visibility:visible}100%{-webkit-transform:translate3d(100%,0,0)}}@keyframes slideOutRight{0%{transform:translate3d(0,0,0);visibility:visible}100%{transform:translate3d(100%,0,0)}}.out .slideOutRight{-webkit-animation-name:slideOutRight;animation-name:slideOutRight}@-webkit-keyframes slideOutUp{0%{-webkit-transform:translate3d(0,0,0);visibility:visible}100%{-webkit-transform:translate3d(0,-100%,0)}}@keyframes slideOutUp{0%{transform:translate3d(0,0,0);visibility:visible}100%{transform:translate3d(0,-100%,0)}}.out .slideOutUp{-webkit-animation-name:slideOutUp;animation-name:slideOutUp}@-webkit-keyframes hinge{0%{-webkit-transform:rotate(0);-webkit-transform-origin:top left;-webkit-animation-timing-function:ease-in-out}20%,60%{-webkit-transform:rotate(80deg);-webkit-transform-origin:top left;-webkit-animation-timing-function:ease-in-out}40%{-webkit-transform:rotate(60deg);-webkit-transform-origin:top left;-webkit-animation-timing-function:ease-in-out}80%{-webkit-transform:rotate(60deg) translateY(0);opacity:1;-webkit-transform-origin:top left;-webkit-animation-timing-function:ease-in-out}100%{-webkit-transform:translateY(700px);opacity:0}}@keyframes hinge{0%{transform:rotate(0);transform-origin:top left;animation-timing-function:ease-in-out}20%,60%{transform:rotate(80deg);transform-origin:top left;animation-timing-function:ease-in-out}40%{transform:rotate(60deg);transform-origin:top left;animation-timing-function:ease-in-out}80%{transform:rotate(60deg) translateY(0);opacity:1;transform-origin:top left;animation-timing-function:ease-in-out}100%{transform:translateY(700px);opacity:0}}.out .hingeOut{-webkit-animation-name:hinge;animation-name:hinge}@-webkit-keyframes rollIn{0%{opacity:0;-webkit-transform:translateX(-100%) rotate(-120deg)}100%{opacity:1;-webkit-transform:translateX(0px) rotate(0deg)}}@keyframes rollIn{0%{opacity:0;transform:translateX(-100%) rotate(-120deg)}100%{opacity:1;transform:translateX(0px) rotate(0deg)}}.in .rollIn{-webkit-animation-name:rollIn;animation-name:rollIn}@-webkit-keyframes rollOut{0%{opacity:1;-webkit-transform:translateX(0px) rotate(0deg)}100%{opacity:0;-webkit-transform:translateX(100%) rotate(120deg)}}@keyframes rollOut{0%{opacity:1;transform:translateX(0px) rotate(0deg)}100%{opacity:0;transform:translateX(100%) rotate(120deg)}}.out .rollOut{-webkit-animation-name:rollOut;animation-name:rollOut}@-webkit-keyframes zoomIn{0%{opacity:0;-webkit-transform:scale3d(0.3,.3,.3)}50%{opacity:1}}@keyframes zoomIn{0%{opacity:0;transform:scale3d(0.3,.3,.3)}50%{opacity:1}}.in .zoomIn{-webkit-animation-name:zoomIn;animation-name:zoomIn}@-webkit-keyframes zoomInDown{0%{opacity:0;-webkit-transform:scale3d(0.1,.1,.1) translate3d(0,-1000px,0);-webkit-animation-timing-function:cubic-bezier(0.55,.055,.675,.19)}60%{opacity:1;-webkit-transform:scale3d(0.475,.475,.475) translate3d(0,60px,0);-webkit-animation-timing-function:cubic-bezier(0.175,.885,.32,1)}}@keyframes zoomInDown{0%{opacity:0;transform:scale3d(0.1,.1,.1) translate3d(0,-1000px,0);animation-timing-function:cubic-bezier(0.55,.055,.675,.19)}60%{opacity:1;transform:scale3d(0.475,.475,.475) translate3d(0,60px,0);animation-timing-function:cubic-bezier(0.175,.885,.32,1)}}.in .zoomInDown{-webkit-animation-name:zoomInDown;animation-name:zoomInDown}@-webkit-keyframes zoomInLeft{0%{opacity:0;-webkit-transform:scale3d(0.1,.1,.1) translate3d(-1000px,0,0);-webkit-animation-timing-function:cubic-bezier(0.55,.055,.675,.19)}60%{opacity:1;-webkit-transform:scale3d(0.475,.475,.475) translate3d(10px,0,0);-webkit-animation-timing-function:cubic-bezier(0.175,.885,.32,1)}}@keyframes zoomInLeft{0%{opacity:0;transform:scale3d(0.1,.1,.1) translate3d(-1000px,0,0);animation-timing-function:cubic-bezier(0.55,.055,.675,.19)}60%{opacity:1;transform:scale3d(0.475,.475,.475) translate3d(10px,0,0);animation-timing-function:cubic-bezier(0.175,.885,.32,1)}}.in .zoomInLeft{-webkit-animation-name:zoomInLeft;animation-name:zoomInLeft}@-webkit-keyframes zoomInRight{0%{opacity:0;-webkit-transform:scale3d(0.1,.1,.1) translate3d(1000px,0,0);-webkit-animation-timing-function:cubic-bezier(0.55,.055,.675,.19)}60%{opacity:1;-webkit-transform:scale3d(0.475,.475,.475) translate3d(-10px,0,0);-webkit-animation-timing-function:cubic-bezier(0.175,.885,.32,1)}}@keyframes zoomInRight{0%{opacity:0;transform:scale3d(0.1,.1,.1) translate3d(1000px,0,0);animation-timing-function:cubic-bezier(0.55,.055,.675,.19)}60%{opacity:1;transform:scale3d(0.475,.475,.475) translate3d(-10px,0,0);animation-timing-function:cubic-bezier(0.175,.885,.32,1)}}.in .zoomInRight{-webkit-animation-name:zoomInRight;animation-name:zoomInRight}@-webkit-keyframes zoomInUp{0%{opacity:0;-webkit-transform:scale3d(0.1,.1,.1) translate3d(0,1000px,0);-webkit-animation-timing-function:cubic-bezier(0.55,.055,.675,.19)}60%{opacity:1;-webkit-transform:scale3d(0.475,.475,.475) translate3d(0,-60px,0);-webkit-animation-timing-function:cubic-bezier(0.175,.885,.32,1)}}@keyframes zoomInUp{0%{opacity:0;transform:scale3d(0.1,.1,.1) translate3d(0,1000px,0);animation-timing-function:cubic-bezier(0.55,.055,.675,.19)}60%{opacity:1;transform:scale3d(0.475,.475,.475) translate3d(0,-60px,0);animation-timing-function:cubic-bezier(0.175,.885,.32,1)}}.in .zoomInUp{-webkit-animation-name:zoomInUp;animation-name:zoomInUp}@-webkit-keyframes zoomOut{0%{opacity:1}50%{opacity:0;-webkit-transform:scale3d(0.3,.3,.3)}100%{opacity:0}}@keyframes zoomOut{0%{opacity:1}50%{opacity:0;transform:scale3d(0.3,.3,.3)}100%{opacity:0}}.out .zoomOut{-webkit-animation-name:zoomOut;animation-name:zoomOut}@-webkit-keyframes zoomOutDown{40%{opacity:1;-webkit-transform:scale3d(0.475,.475,.475) translate3d(0,-60px,0);-webkit-animation-timing-function:cubic-bezier(0.55,.055,.675,.19)}100%{opacity:0;-webkit-transform:scale3d(0.1,.1,.1) translate3d(0,2000px,0);-webkit-transform-origin:center bottom;-webkit-animation-timing-function:cubic-bezier(0.175,.885,.32,1)}}@keyframes zoomOutDown{40%{opacity:1;transform:scale3d(0.475,.475,.475) translate3d(0,-60px,0);animation-timing-function:cubic-bezier(0.55,.055,.675,.19)}100%{opacity:0;transform:scale3d(0.1,.1,.1) translate3d(0,2000px,0);transform-origin:center bottom;animation-timing-function:cubic-bezier(0.175,.885,.32,1)}}.out .zoomOutDown{-webkit-animation-name:zoomOutDown;animation-name:zoomOutDown}@-webkit-keyframes zoomOutLeft{40%{opacity:1;-webkit-transform:scale3d(0.475,.475,.475) translate3d(42px,0,0)}100%{opacity:0;-webkit-transform:scale3d(0.1) translate3d(-2000px,0,0);-webkit-transform-origin:left center}}@keyframes zoomOutLeft{40%{opacity:1;transform:scale3d(0.475,.475,.475) translate3d(42px,0,0)}100%{opacity:0;transform:scale3d(0.1) translate3d(-2000px,0,0);transform-origin:left center}}.out .zoomOutLeft{-webkit-animation-name:zoomOutLeft;animation-name:zoomOutLeft}@-webkit-keyframes zoomOutRight{40%{opacity:1;-webkit-transform:scale3d(0.475,.475,.475) translate3d(-42px,0,0)}100%{opacity:0;-webkit-transform:scale3d(0.1) translate3d(2000px,0,0);-webkit-transform-origin:right center}}@keyframes zoomOutRight{40%{opacity:1;transform:scale3d(0.475,.475,.475) translate3d(-42px,0,0)}100%{opacity:0;transform:scale3d(0.1) translate3d(2000px,0,0);transform-origin:right center}}.out .zoomOutRight{-webkit-animation-name:zoomOutRight;animation-name:zoomOutRight}@-webkit-keyframes zoomOutUp{40%{opacity:1;-webkit-transform:scale3d(0.475,.475,.475) translate3d(0,60px,0);-webkit-animation-timing-function:cubic-bezier(0.55,.055,.675,.19)}100%{opacity:0;-webkit-transform:scale3d(0.1,.1,.1) translate3d(0,-2000px,0);-webkit-transform-origin:center bottom;-webkit-animation-timing-function:cubic-bezier(0.175,.885,.32,1)}}@keyframes zoomOutUp{40%{opacity:1;transform:scale3d(0.475,.475,.475) translate3d(0,60px,0);animation-timing-function:cubic-bezier(0.55,.055,.675,.19)}100%{opacity:0;transform:scale3d(0.1,.1,.1) translate3d(0,-2000px,0);transform-origin:center bottom;animation-timing-function:cubic-bezier(0.175,.885,.32,1)}}.out .zoomOutUp{-webkit-animation-name:zoomOutUp;animation-name:zoomOutUp}.bx-wrapper{position:relative;margin:0 auto 60px;padding:0;*zoom:1;-ms-touch-action:pan-y;touch-action:pan-y}.bx-wrapper img{max-width:100%;display:block}.bxslider{margin:0;padding:0}ul.bxslider{list-style:none}.bx-viewport{-webkit-transform:translatez(0)}.bx-wrapper{-moz-box-shadow:0 0 5px #ccc;-webkit-box-shadow:0 0 5px #ccc;box-shadow:0 0 5px #ccc;border:5px solid #fff;background:#fff}.bx-wrapper .bx-controls-auto,.bx-wrapper .bx-pager{position:absolute;bottom:-30px;width:100%}.bx-wrapper .bx-loading{min-height:50px;background:url(images/bx_loader.gif) center center no-repeat #fff;height:100%;width:100%;position:absolute;top:0;left:0;z-index:2000}.bx-wrapper .bx-pager{text-align:center;font-size:.85em;font-family:Arial;font-weight:700;color:#666;padding-top:20px}.bx-wrapper .bx-pager.bx-default-pager a{background:#666;text-indent:-9999px;display:block;width:10px;height:10px;margin:0 5px;outline:0;-moz-border-radius:5px;-webkit-border-radius:5px;border-radius:5px}.bx-wrapper .bx-pager.bx-default-pager a.active,.bx-wrapper .bx-pager.bx-default-pager a:focus,.bx-wrapper .bx-pager.bx-default-pager a:hover{background:#000}.bx-wrapper .bx-controls-auto .bx-controls-auto-item,.bx-wrapper .bx-pager-item{display:inline-block;*zoom:1;*display:inline}.bx-wrapper .bx-pager-item{font-size:0;line-height:0}.bx-wrapper .bx-prev{left:10px;background:url(images/controls.png) no-repeat 0 -32px}.bx-wrapper .bx-prev:focus,.bx-wrapper .bx-prev:hover{background-position:0 0}.bx-wrapper .bx-next{right:10px;background:url(images/controls.png) no-repeat -43px -32px}.bx-wrapper .bx-next:focus,.bx-wrapper .bx-next:hover{background-position:-43px 0}.bx-wrapper .bx-controls-direction a{position:absolute;top:50%;margin-top:-16px;outline:0;width:32px;height:32px;text-indent:-9999px;z-index:9999}.bx-wrapper .bx-controls-direction a.disabled{display:none}.bx-wrapper .bx-controls-auto{text-align:center}.bx-wrapper .bx-controls-auto .bx-start{display:block;text-indent:-9999px;width:10px;height:11px;outline:0;background:url(images/controls.png) -86px -11px no-repeat;margin:0 3px}.bx-wrapper .bx-controls-auto .bx-start.active,.bx-wrapper .bx-controls-auto .bx-start:focus,.bx-wrapper .bx-controls-auto .bx-start:hover{background-position:-86px 0}.bx-wrapper .bx-controls-auto .bx-stop{display:block;text-indent:-9999px;width:9px;height:11px;outline:0;background:url(images/controls.png) -86px -44px no-repeat;margin:0 3px}.bx-wrapper .bx-controls-auto .bx-stop.active,.bx-wrapper .bx-controls-auto .bx-stop:focus,.bx-wrapper .bx-controls-auto .bx-stop:hover{background-position:-86px -33px}.bx-wrapper .bx-controls.bx-has-controls-auto.bx-has-pager .bx-pager{text-align:left;width:80%}.bx-wrapper .bx-controls.bx-has-controls-auto.bx-has-pager .bx-controls-auto{right:0;width:35px}.bx-wrapper .bx-caption{position:absolute;bottom:0;left:0;background:#666;background:rgba(80,80,80,.75);width:100%}.bx-wrapper .bx-caption span{color:#fff;font-family:Arial;display:block;font-size:.85em;padding:10px} diff --git a/dist/jquery.bxslider.min.js b/dist/jquery.bxslider.min.js index 0d62d910..e8f89c1f 100644 --- a/dist/jquery.bxslider.min.js +++ b/dist/jquery.bxslider.min.js @@ -1,9 +1,9 @@ /** * bxSlider v4.2.5 - * Copyright 2013-2015 Steven Wanderski + * Copyright 2013-2017 Steven Wanderski * Written while drinking Belgian ales and listening to jazz * Licensed under MIT (http://opensource.org/licenses/MIT) */ -!function(a){var b={mode:"horizontal",slideSelector:"",infiniteLoop:!0,hideControlOnEnd:!1,speed:500,easing:null,slideMargin:0,startSlide:0,randomStart:!1,captions:!1,ticker:!1,tickerHover:!1,adaptiveHeight:!1,adaptiveHeightSpeed:500,video:!1,useCSS:!0,preloadImages:"visible",responsive:!0,slideZIndex:50,wrapperClass:"bx-wrapper",touchEnabled:!0,swipeThreshold:50,oneToOneTouch:!0,preventDefaultSwipeX:!0,preventDefaultSwipeY:!1,ariaLive:!0,ariaHidden:!0,keyboardEnabled:!1,pager:!0,pagerType:"full",pagerShortSeparator:" / ",pagerSelector:null,buildPager:null,pagerCustom:null,controls:!0,nextText:"Next",prevText:"Prev",nextSelector:null,prevSelector:null,autoControls:!1,startText:"Start",stopText:"Stop",autoControlsCombine:!1,autoControlsSelector:null,auto:!1,pause:4e3,autoStart:!0,autoDirection:"next",stopAutoOnClick:!1,autoHover:!1,autoDelay:0,autoSlideForOnePage:!1,minSlides:1,maxSlides:1,moveSlides:0,slideWidth:0,shrinkItems:!1,onSliderLoad:function(){return!0},onSlideBefore:function(){return!0},onSlideAfter:function(){return!0},onSlideNext:function(){return!0},onSlidePrev:function(){return!0},onSliderResize:function(){return!0}};a.fn.bxSlider=function(c){if(0===this.length)return this;if(this.length>1)return this.each(function(){a(this).bxSlider(c)}),this;var d={},e=this,f=a(window).width(),g=a(window).height();if(!a(e).data("bxSlider")){var h=function(){a(e).data("bxSlider")||(d.settings=a.extend({},b,c),d.settings.slideWidth=parseInt(d.settings.slideWidth),d.children=e.children(d.settings.slideSelector),d.children.length1||d.settings.maxSlides>1?!0:!1,d.carousel&&(d.settings.preloadImages="all"),d.minThreshold=d.settings.minSlides*d.settings.slideWidth+(d.settings.minSlides-1)*d.settings.slideMargin,d.maxThreshold=d.settings.maxSlides*d.settings.slideWidth+(d.settings.maxSlides-1)*d.settings.slideMargin,d.working=!1,d.controls={},d.interval=null,d.animProp="vertical"===d.settings.mode?"top":"left",d.usingCSS=d.settings.useCSS&&"fade"!==d.settings.mode&&function(){for(var a=document.createElement("div"),b=["WebkitPerspective","MozPerspective","OPerspective","msPerspective"],c=0;c
'),d.viewport=e.parent(),d.settings.ariaLive&&!d.settings.ticker&&d.viewport.attr("aria-live","polite"),d.loader=a('
'),d.viewport.prepend(d.loader),e.css({width:"horizontal"===d.settings.mode?1e3*d.children.length+215+"%":"auto",position:"relative"}),d.usingCSS&&d.settings.easing?e.css("-"+d.cssPrefix+"-transition-timing-function",d.settings.easing):d.settings.easing||(d.settings.easing="swing"),d.viewport.css({width:"100%",overflow:"hidden",position:"relative"}),d.viewport.parent().css({maxWidth:n()}),d.settings.pager||d.settings.controls||d.viewport.parent().css({margin:"0 auto 0px"}),d.children.css({"float":"horizontal"===d.settings.mode?"left":"none",listStyle:"none",position:"relative"}),d.children.css("width",o()),"horizontal"===d.settings.mode&&d.settings.slideMargin>0&&d.children.css("marginRight",d.settings.slideMargin),"vertical"===d.settings.mode&&d.settings.slideMargin>0&&d.children.css("marginBottom",d.settings.slideMargin),"fade"===d.settings.mode&&(d.children.css({position:"absolute",zIndex:0,display:"none"}),d.children.eq(d.settings.startSlide).css({zIndex:d.settings.slideZIndex,display:"block"})),d.controls.el=a('
'),d.settings.captions&&y(),d.active.last=d.settings.startSlide===q()-1,d.settings.video&&e.fitVids(),("all"===d.settings.preloadImages||d.settings.ticker)&&(b=d.children),d.settings.ticker?d.settings.pager=!1:(d.settings.controls&&w(),d.settings.auto&&d.settings.autoControls&&x(),d.settings.pager&&v(),(d.settings.controls||d.settings.autoControls||d.settings.pager)&&d.viewport.after(d.controls.el)),k(b,l)},k=function(b,c){var d=b.find('img:not([src=""]), iframe').length,e=0;return 0===d?void c():void b.find('img:not([src=""]), iframe').each(function(){a(this).one("load error",function(){++e===d&&c()}).each(function(){this.complete&&a(this).load()})})},l=function(){if(d.settings.infiniteLoop&&"fade"!==d.settings.mode&&!d.settings.ticker){var b="vertical"===d.settings.mode?d.settings.minSlides:d.settings.maxSlides,c=d.children.slice(0,b).clone(!0).addClass("bx-clone"),f=d.children.slice(-b).clone(!0).addClass("bx-clone");d.settings.ariaHidden&&(c.attr("aria-hidden",!0),f.attr("aria-hidden",!0)),e.append(c).prepend(f)}d.loader.remove(),s(),"vertical"===d.settings.mode&&(d.settings.adaptiveHeight=!0),d.viewport.height(m()),e.redrawSlider(),d.settings.onSliderLoad.call(e,d.active.index),d.initialized=!0,d.settings.responsive&&a(window).bind("resize",S),d.settings.auto&&d.settings.autoStart&&(q()>1||d.settings.autoSlideForOnePage)&&I(),d.settings.ticker&&J(),d.settings.pager&&E(d.settings.startSlide),d.settings.controls&&H(),d.settings.touchEnabled&&!d.settings.ticker&&N(),d.settings.keyboardEnabled&&!d.settings.ticker&&a(document).keydown(M)},m=function(){var b=0,c=a();if("vertical"===d.settings.mode||d.settings.adaptiveHeight)if(d.carousel){var e=1===d.settings.moveSlides?d.active.index:d.active.index*r();for(c=d.children.eq(e),i=1;i<=d.settings.maxSlides-1;i++)c=e+i>=d.children.length?c.add(d.children.eq(i-1)):c.add(d.children.eq(e+i))}else c=d.children.eq(d.active.index);else c=d.children;return"vertical"===d.settings.mode?(c.each(function(c){b+=a(this).outerHeight()}),d.settings.slideMargin>0&&(b+=d.settings.slideMargin*(d.settings.minSlides-1))):b=Math.max.apply(Math,c.map(function(){return a(this).outerHeight(!1)}).get()),"border-box"===d.viewport.css("box-sizing")?b+=parseFloat(d.viewport.css("padding-top"))+parseFloat(d.viewport.css("padding-bottom"))+parseFloat(d.viewport.css("border-top-width"))+parseFloat(d.viewport.css("border-bottom-width")):"padding-box"===d.viewport.css("box-sizing")&&(b+=parseFloat(d.viewport.css("padding-top"))+parseFloat(d.viewport.css("padding-bottom"))),b},n=function(){var a="100%";return d.settings.slideWidth>0&&(a="horizontal"===d.settings.mode?d.settings.maxSlides*d.settings.slideWidth+(d.settings.maxSlides-1)*d.settings.slideMargin:d.settings.slideWidth),a},o=function(){var a=d.settings.slideWidth,b=d.viewport.width();if(0===d.settings.slideWidth||d.settings.slideWidth>b&&!d.carousel||"vertical"===d.settings.mode)a=b;else if(d.settings.maxSlides>1&&"horizontal"===d.settings.mode){if(b>d.maxThreshold)return a;b0?d.viewport.width()d.maxThreshold?a=d.settings.maxSlides:(b=d.children.first().width()+d.settings.slideMargin,a=Math.floor((d.viewport.width()+d.settings.slideMargin)/b)):"vertical"===d.settings.mode&&(a=d.settings.minSlides),a},q=function(){var a=0,b=0,c=0;if(d.settings.moveSlides>0)if(d.settings.infiniteLoop)a=Math.ceil(d.children.length/r());else for(;b0&&d.settings.moveSlides<=p()?d.settings.moveSlides:p()},s=function(){var a,b,c;d.children.length>d.settings.maxSlides&&d.active.last&&!d.settings.infiniteLoop?"horizontal"===d.settings.mode?(b=d.children.last(),a=b.position(),t(-(a.left-(d.viewport.width()-b.outerWidth())),"reset",0)):"vertical"===d.settings.mode&&(c=d.children.length-d.settings.minSlides,a=d.children.eq(c).position(),t(-a.top,"reset",0)):(a=d.children.eq(d.active.index*r()).position(),d.active.index===q()-1&&(d.active.last=!0),void 0!==a&&("horizontal"===d.settings.mode?t(-a.left,"reset",0):"vertical"===d.settings.mode&&t(-a.top,"reset",0)))},t=function(b,c,f,g){var h,i;d.usingCSS?(i="vertical"===d.settings.mode?"translate3d(0, "+b+"px, 0)":"translate3d("+b+"px, 0, 0)",e.css("-"+d.cssPrefix+"-transition-duration",f/1e3+"s"),"slide"===c?(e.css(d.animProp,i),0!==f?e.bind("transitionend webkitTransitionEnd oTransitionEnd MSTransitionEnd",function(b){a(b.target).is(e)&&(e.unbind("transitionend webkitTransitionEnd oTransitionEnd MSTransitionEnd"),F())}):F()):"reset"===c?e.css(d.animProp,i):"ticker"===c&&(e.css("-"+d.cssPrefix+"-transition-timing-function","linear"),e.css(d.animProp,i),0!==f?e.bind("transitionend webkitTransitionEnd oTransitionEnd MSTransitionEnd",function(b){a(b.target).is(e)&&(e.unbind("transitionend webkitTransitionEnd oTransitionEnd MSTransitionEnd"),t(g.resetValue,"reset",0),K())}):(t(g.resetValue,"reset",0),K()))):(h={},h[d.animProp]=b,"slide"===c?e.animate(h,f,d.settings.easing,function(){F()}):"reset"===c?e.css(d.animProp,b):"ticker"===c&&e.animate(h,f,"linear",function(){t(g.resetValue,"reset",0),K()}))},u=function(){for(var b="",c="",e=q(),f=0;e>f;f++)c="",d.settings.buildPager&&a.isFunction(d.settings.buildPager)||d.settings.pagerCustom?(c=d.settings.buildPager(f),d.pagerEl.addClass("bx-custom-pager")):(c=f+1,d.pagerEl.addClass("bx-default-pager")),b+='";d.pagerEl.html(b)},v=function(){d.settings.pagerCustom?d.pagerEl=a(d.settings.pagerCustom):(d.pagerEl=a('
'),d.settings.pagerSelector?a(d.settings.pagerSelector).html(d.pagerEl):d.controls.el.addClass("bx-has-pager").append(d.pagerEl),u()),d.pagerEl.on("click touchend","a",D)},w=function(){d.controls.next=a(''+d.settings.nextText+""),d.controls.prev=a(''+d.settings.prevText+""),d.controls.next.bind("click touchend",z),d.controls.prev.bind("click touchend",A),d.settings.nextSelector&&a(d.settings.nextSelector).append(d.controls.next),d.settings.prevSelector&&a(d.settings.prevSelector).append(d.controls.prev),d.settings.nextSelector||d.settings.prevSelector||(d.controls.directionEl=a('
'),d.controls.directionEl.append(d.controls.prev).append(d.controls.next),d.controls.el.addClass("bx-has-controls-direction").append(d.controls.directionEl))},x=function(){d.controls.start=a('"),d.controls.stop=a('"),d.controls.autoEl=a('
'),d.controls.autoEl.on("click",".bx-start",B),d.controls.autoEl.on("click",".bx-stop",C),d.settings.autoControlsCombine?d.controls.autoEl.append(d.controls.start):d.controls.autoEl.append(d.controls.start).append(d.controls.stop),d.settings.autoControlsSelector?a(d.settings.autoControlsSelector).html(d.controls.autoEl):d.controls.el.addClass("bx-has-controls-auto").append(d.controls.autoEl),G(d.settings.autoStart?"stop":"start")},y=function(){d.children.each(function(b){var c=a(this).find("img:first").attr("title");void 0!==c&&(""+c).length&&a(this).append('
'+c+"
")})},z=function(a){a.preventDefault(),d.controls.el.hasClass("disabled")||(d.settings.auto&&d.settings.stopAutoOnClick&&e.stopAuto(),e.goToNextSlide())},A=function(a){a.preventDefault(),d.controls.el.hasClass("disabled")||(d.settings.auto&&d.settings.stopAutoOnClick&&e.stopAuto(),e.goToPrevSlide())},B=function(a){e.startAuto(),a.preventDefault()},C=function(a){e.stopAuto(),a.preventDefault()},D=function(b){var c,f;b.preventDefault(),d.controls.el.hasClass("disabled")||(d.settings.auto&&d.settings.stopAutoOnClick&&e.stopAuto(),c=a(b.currentTarget),void 0!==c.attr("data-slide-index")&&(f=parseInt(c.attr("data-slide-index")),f!==d.active.index&&e.goToSlide(f)))},E=function(b){var c=d.children.length;return"short"===d.settings.pagerType?(d.settings.maxSlides>1&&(c=Math.ceil(d.children.length/d.settings.maxSlides)),void d.pagerEl.html(b+1+d.settings.pagerShortSeparator+c)):(d.pagerEl.find("a").removeClass("active"),void d.pagerEl.each(function(c,d){a(d).find("a").eq(b).addClass("active")}))},F=function(){if(d.settings.infiniteLoop){var a="";0===d.active.index?a=d.children.eq(0).position():d.active.index===q()-1&&d.carousel?a=d.children.eq((q()-1)*r()).position():d.active.index===d.children.length-1&&(a=d.children.eq(d.children.length-1).position()),a&&("horizontal"===d.settings.mode?t(-a.left,"reset",0):"vertical"===d.settings.mode&&t(-a.top,"reset",0))}d.working=!1,d.settings.onSlideAfter.call(e,d.children.eq(d.active.index),d.oldIndex,d.active.index)},G=function(a){d.settings.autoControlsCombine?d.controls.autoEl.html(d.controls[a]):(d.controls.autoEl.find("a").removeClass("active"),d.controls.autoEl.find("a:not(.bx-"+a+")").addClass("active"))},H=function(){1===q()?(d.controls.prev.addClass("disabled"),d.controls.next.addClass("disabled")):!d.settings.infiniteLoop&&d.settings.hideControlOnEnd&&(0===d.active.index?(d.controls.prev.addClass("disabled"),d.controls.next.removeClass("disabled")):d.active.index===q()-1?(d.controls.next.addClass("disabled"),d.controls.prev.removeClass("disabled")):(d.controls.prev.removeClass("disabled"),d.controls.next.removeClass("disabled")))},I=function(){if(d.settings.autoDelay>0){setTimeout(e.startAuto,d.settings.autoDelay)}else e.startAuto(),a(window).focus(function(){e.startAuto()}).blur(function(){e.stopAuto()});d.settings.autoHover&&e.hover(function(){d.interval&&(e.stopAuto(!0),d.autoPaused=!0)},function(){d.autoPaused&&(e.startAuto(!0),d.autoPaused=null)})},J=function(){var b,c,f,g,h,i,j,k,l=0;"next"===d.settings.autoDirection?e.append(d.children.clone().addClass("bx-clone")):(e.prepend(d.children.clone().addClass("bx-clone")),b=d.children.first().position(),l="horizontal"===d.settings.mode?-b.left:-b.top),t(l,"reset",0),d.settings.pager=!1,d.settings.controls=!1,d.settings.autoControls=!1,d.settings.tickerHover&&(d.usingCSS?(g="horizontal"===d.settings.mode?4:5,d.viewport.hover(function(){c=e.css("-"+d.cssPrefix+"-transform"),f=parseFloat(c.split(",")[g]),t(f,"reset",0)},function(){k=0,d.children.each(function(b){k+="horizontal"===d.settings.mode?a(this).outerWidth(!0):a(this).outerHeight(!0)}),h=d.settings.speed/k,i="horizontal"===d.settings.mode?"left":"top",j=h*(k-Math.abs(parseInt(f))),K(j)})):d.viewport.hover(function(){e.stop()},function(){k=0,d.children.each(function(b){k+="horizontal"===d.settings.mode?a(this).outerWidth(!0):a(this).outerHeight(!0)}),h=d.settings.speed/k,i="horizontal"===d.settings.mode?"left":"top",j=h*(k-Math.abs(parseInt(e.css(i)))),K(j)})),K()},K=function(a){var b,c,f,g=a?a:d.settings.speed,h={left:0,top:0},i={left:0,top:0};"next"===d.settings.autoDirection?h=e.find(".bx-clone").first().position():i=d.children.first().position(),b="horizontal"===d.settings.mode?-h.left:-h.top,c="horizontal"===d.settings.mode?-i.left:-i.top,f={resetValue:c},t(b,"ticker",g,f)},L=function(b){var c=a(window),d={top:c.scrollTop(),left:c.scrollLeft()},e=b.offset();return d.right=d.left+c.width(),d.bottom=d.top+c.height(),e.right=e.left+b.outerWidth(),e.bottom=e.top+b.outerHeight(),!(d.righte.right||d.bottome.bottom)},M=function(a){var b=document.activeElement.tagName.toLowerCase(),c="input|textarea",d=new RegExp(b,["i"]),f=d.exec(c);if(null==f&&L(e)){if(39===a.keyCode)return z(a),!1;if(37===a.keyCode)return A(a),!1}},N=function(){d.touch={start:{x:0,y:0},end:{x:0,y:0}},d.viewport.bind("touchstart MSPointerDown pointerdown",O),d.viewport.on("click",".bxslider a",function(a){d.viewport.hasClass("click-disabled")&&(a.preventDefault(),d.viewport.removeClass("click-disabled"))})},O=function(a){if(d.controls.el.addClass("disabled"),d.working)a.preventDefault(),d.controls.el.removeClass("disabled");else{d.touch.originalPos=e.position();var b=a.originalEvent,c="undefined"!=typeof b.changedTouches?b.changedTouches:[b];d.touch.start.x=c[0].pageX,d.touch.start.y=c[0].pageY,d.viewport.get(0).setPointerCapture&&(d.pointerId=b.pointerId,d.viewport.get(0).setPointerCapture(d.pointerId)),d.viewport.bind("touchmove MSPointerMove pointermove",Q),d.viewport.bind("touchend MSPointerUp pointerup",R),d.viewport.bind("MSPointerCancel pointercancel",P)}},P=function(a){t(d.touch.originalPos.left,"reset",0),d.controls.el.removeClass("disabled"),d.viewport.unbind("MSPointerCancel pointercancel",P),d.viewport.unbind("touchmove MSPointerMove pointermove",Q),d.viewport.unbind("touchend MSPointerUp pointerup",R),d.viewport.get(0).releasePointerCapture&&d.viewport.get(0).releasePointerCapture(d.pointerId)},Q=function(a){var b=a.originalEvent,c="undefined"!=typeof b.changedTouches?b.changedTouches:[b],e=Math.abs(c[0].pageX-d.touch.start.x),f=Math.abs(c[0].pageY-d.touch.start.y),g=0,h=0;3*e>f&&d.settings.preventDefaultSwipeX?a.preventDefault():3*f>e&&d.settings.preventDefaultSwipeY&&a.preventDefault(),"fade"!==d.settings.mode&&d.settings.oneToOneTouch&&("horizontal"===d.settings.mode?(h=c[0].pageX-d.touch.start.x,g=d.touch.originalPos.left+h):(h=c[0].pageY-d.touch.start.y,g=d.touch.originalPos.top+h),t(g,"reset",0))},R=function(a){d.viewport.unbind("touchmove MSPointerMove pointermove",Q),d.controls.el.removeClass("disabled");var b=a.originalEvent,c="undefined"!=typeof b.changedTouches?b.changedTouches:[b],f=0,g=0;d.touch.end.x=c[0].pageX,d.touch.end.y=c[0].pageY,"fade"===d.settings.mode?(g=Math.abs(d.touch.start.x-d.touch.end.x),g>=d.settings.swipeThreshold&&(d.touch.start.x>d.touch.end.x?e.goToNextSlide():e.goToPrevSlide(),e.stopAuto())):("horizontal"===d.settings.mode?(g=d.touch.end.x-d.touch.start.x,f=d.touch.originalPos.left):(g=d.touch.end.y-d.touch.start.y,f=d.touch.originalPos.top),!d.settings.infiniteLoop&&(0===d.active.index&&g>0||d.active.last&&0>g)?t(f,"reset",200):Math.abs(g)>=d.settings.swipeThreshold?(0>g?e.goToNextSlide():e.goToPrevSlide(),e.stopAuto()):t(f,"reset",200)),d.viewport.unbind("touchend MSPointerUp pointerup",R),d.viewport.get(0).releasePointerCapture&&d.viewport.get(0).releasePointerCapture(d.pointerId)},S=function(b){if(d.initialized)if(d.working)window.setTimeout(S,10);else{var c=a(window).width(),h=a(window).height();(f!==c||g!==h)&&(f=c,g=h,e.redrawSlider(),d.settings.onSliderResize.call(e,d.active.index))}},T=function(a){var b=p();d.settings.ariaHidden&&!d.settings.ticker&&(d.children.attr("aria-hidden","true"),d.children.slice(a,a+b).attr("aria-hidden","false"))},U=function(a){return 0>a?d.settings.infiniteLoop?q()-1:d.active.index:a>=q()?d.settings.infiniteLoop?0:d.active.index:a};return e.goToSlide=function(b,c){var f,g,h,i,j=!0,k=0,l={left:0,top:0},n=null;if(d.oldIndex=d.active.index,d.active.index=U(b),!d.working&&d.active.index!==d.oldIndex){if(d.working=!0,j=d.settings.onSlideBefore.call(e,d.children.eq(d.active.index),d.oldIndex,d.active.index),"undefined"!=typeof j&&!j)return d.active.index=d.oldIndex,void(d.working=!1);"next"===c?d.settings.onSlideNext.call(e,d.children.eq(d.active.index),d.oldIndex,d.active.index)||(j=!1):"prev"===c&&(d.settings.onSlidePrev.call(e,d.children.eq(d.active.index),d.oldIndex,d.active.index)||(j=!1)),d.active.last=d.active.index>=q()-1,(d.settings.pager||d.settings.pagerCustom)&&E(d.active.index),d.settings.controls&&H(),"fade"===d.settings.mode?(d.settings.adaptiveHeight&&d.viewport.height()!==m()&&d.viewport.animate({height:m()},d.settings.adaptiveHeightSpeed),d.children.filter(":visible").fadeOut(d.settings.speed).css({zIndex:0}),d.children.eq(d.active.index).css("zIndex",d.settings.slideZIndex+1).fadeIn(d.settings.speed,function(){a(this).css("zIndex",d.settings.slideZIndex),F()})):(d.settings.adaptiveHeight&&d.viewport.height()!==m()&&d.viewport.animate({height:m()},d.settings.adaptiveHeightSpeed),!d.settings.infiniteLoop&&d.carousel&&d.active.last?"horizontal"===d.settings.mode?(n=d.children.eq(d.children.length-1),l=n.position(),k=d.viewport.width()-n.outerWidth()):(f=d.children.length-d.settings.minSlides,l=d.children.eq(f).position()):d.carousel&&d.active.last&&"prev"===c?(g=1===d.settings.moveSlides?d.settings.maxSlides-r():(q()-1)*r()-(d.children.length-d.settings.maxSlides),n=e.children(".bx-clone").eq(g),l=n.position()):"next"===c&&0===d.active.index?(l=e.find("> .bx-clone").eq(d.settings.maxSlides).position(),d.active.last=!1):b>=0&&(i=b*parseInt(r()),l=d.children.eq(i).position()),"undefined"!=typeof l?(h="horizontal"===d.settings.mode?-(l.left-k):-l.top,t(h,"slide",d.settings.speed)):d.working=!1),d.settings.ariaHidden&&T(d.active.index*r())}},e.goToNextSlide=function(){if(d.settings.infiniteLoop||!d.active.last){var a=parseInt(d.active.index)+1;e.goToSlide(a,"next")}},e.goToPrevSlide=function(){if(d.settings.infiniteLoop||0!==d.active.index){var a=parseInt(d.active.index)-1;e.goToSlide(a,"prev")}},e.startAuto=function(a){d.interval||(d.interval=setInterval(function(){"next"===d.settings.autoDirection?e.goToNextSlide():e.goToPrevSlide()},d.settings.pause),d.settings.autoControls&&a!==!0&&G("stop"))},e.stopAuto=function(a){d.interval&&(clearInterval(d.interval),d.interval=null,d.settings.autoControls&&a!==!0&&G("start"))},e.getCurrentSlide=function(){return d.active.index},e.getCurrentSlideElement=function(){return d.children.eq(d.active.index)},e.getSlideElement=function(a){return d.children.eq(a)},e.getSlideCount=function(){return d.children.length},e.isWorking=function(){return d.working},e.redrawSlider=function(){d.children.add(e.find(".bx-clone")).outerWidth(o()),d.viewport.css("height",m()),d.settings.ticker||s(),d.active.last&&(d.active.index=q()-1),d.active.index>=q()&&(d.active.last=!0),d.settings.pager&&!d.settings.pagerCustom&&(u(),E(d.active.index)),d.settings.ariaHidden&&T(d.active.index*r())},e.destroySlider=function(){d.initialized&&(d.initialized=!1,a(".bx-clone",this).remove(),d.children.each(function(){void 0!==a(this).data("origStyle")?a(this).attr("style",a(this).data("origStyle")):a(this).removeAttr("style")}),void 0!==a(this).data("origStyle")?this.attr("style",a(this).data("origStyle")):a(this).removeAttr("style"),a(this).unwrap().unwrap(),d.controls.el&&d.controls.el.remove(),d.controls.next&&d.controls.next.remove(),d.controls.prev&&d.controls.prev.remove(),d.pagerEl&&d.settings.controls&&!d.settings.pagerCustom&&d.pagerEl.remove(),a(".bx-caption",this).remove(),d.controls.autoEl&&d.controls.autoEl.remove(),clearInterval(d.interval),d.settings.responsive&&a(window).unbind("resize",S),d.settings.keyboardEnabled&&a(document).unbind("keydown",M),a(this).removeData("bxSlider"))},e.reloadSlider=function(b){void 0!==b&&(c=b),e.destroySlider(),h(),a(e).data("bxSlider",this)},h(),a(e).data("bxSlider",this),this}}}(jQuery); \ No newline at end of file +!function(a){var b={mode:"horizontal",slideSelector:"",infiniteLoop:!0,hideControlOnEnd:!1,speed:500,easing:null,slideMargin:0,startSlide:0,randomStart:!1,captions:!1,ticker:!1,tickerHover:!1,adaptiveHeight:!1,adaptiveHeightSpeed:500,video:!1,useCSS:!0,preloadImages:"visible",responsive:!0,slideZIndex:50,wrapperClass:"bx-wrapper",touchEnabled:!0,swipeThreshold:50,oneToOneTouch:!0,preventDefaultSwipeX:!0,preventDefaultSwipeY:!1,ariaLive:!0,ariaHidden:!0,keyboardEnabled:!1,pager:!0,pagerType:"full",pagerShortSeparator:" / ",pagerSelector:null,buildPager:null,pagerCustom:null,controls:!0,nextText:"Next",prevText:"Prev",nextSelector:null,prevSelector:null,autoControls:!1,startText:"Start",stopText:"Stop",autoControlsCombine:!1,autoControlsSelector:null,pauseBeforeOut:0,pauseAfterIn:0,auto:!1,pause:4e3,autoStart:!0,autoDirection:"next",stopAutoOnClick:!1,autoHover:!1,autoDelay:0,autoSlideForOnePage:!1,minSlides:1,maxSlides:1,moveSlides:0,slideWidth:0,shrinkItems:!1,onSliderLoad:function(){return!0},onSlideBefore:function(){return!0},onSlideAfter:function(){return!0},onSlideNext:function(){return!0},onSlidePrev:function(){return!0},onSliderResize:function(){return!0}};a.fn.bxSlider=function(c){if(0===this.length)return this;if(this.length>1)return this.each(function(){a(this).bxSlider(c)}),this;var d={},e=this,f=a(window).width(),g=a(window).height();if(!a(e).data("bxSlider")){var h=function(){a(e).data("bxSlider")||(d.settings=a.extend({},b,c),d.settings.slideWidth=parseInt(d.settings.slideWidth),d.children=e.children(d.settings.slideSelector),d.children.length1||d.settings.maxSlides>1,d.carousel&&(d.settings.preloadImages="all"),d.minThreshold=d.settings.minSlides*d.settings.slideWidth+(d.settings.minSlides-1)*d.settings.slideMargin,d.maxThreshold=d.settings.maxSlides*d.settings.slideWidth+(d.settings.maxSlides-1)*d.settings.slideMargin,d.working=!1,d.controls={},d.interval=null,d.animProp="vertical"===d.settings.mode?"top":"left",d.usingCSS=d.settings.useCSS&&"fade"!==d.settings.mode&&function(){for(var a=document.createElement("div"),b=["WebkitPerspective","MozPerspective","OPerspective","msPerspective"],c=0;c
'),d.viewport=e.parent(),d.settings.ariaLive&&!d.settings.ticker&&d.viewport.attr("aria-live","polite"),d.loader=a('
'),d.viewport.prepend(d.loader),e.css({width:"horizontal"===d.settings.mode?1e3*d.children.length+215+"%":"auto",position:"relative"}),d.usingCSS&&d.settings.easing?e.css("-"+d.cssPrefix+"-transition-timing-function",d.settings.easing):d.settings.easing||(d.settings.easing="swing"),d.viewport.css({width:"100%",overflow:"hidden",position:"relative"}),d.viewport.parent().css({maxWidth:n()}),d.settings.pager||d.settings.controls||d.viewport.parent().css({margin:"0 auto 0px"}),d.children.css({float:"horizontal"===d.settings.mode?"left":"none",listStyle:"none",position:"relative"}),d.children.css("width",o()),"horizontal"===d.settings.mode&&d.settings.slideMargin>0&&d.children.css("marginRight",d.settings.slideMargin),"vertical"===d.settings.mode&&d.settings.slideMargin>0&&d.children.css("marginBottom",d.settings.slideMargin),"fade"===d.settings.mode&&(d.children.css({position:"absolute",zIndex:0,display:"none"}),d.children.eq(d.settings.startSlide).css({zIndex:d.settings.slideZIndex,display:"block"})),d.children.removeClass("in").addClass("out"),d.controls.el=a('
'),d.settings.captions&&y(),d.active.last=d.settings.startSlide===q()-1,d.settings.video&&e.fitVids(),("all"===d.settings.preloadImages||d.settings.ticker)&&(b=d.children),d.settings.ticker?d.settings.pager=!1:(d.settings.controls&&w(),d.settings.auto&&d.settings.autoControls&&x(),d.settings.pager&&v(),(d.settings.controls||d.settings.autoControls||d.settings.pager)&&d.viewport.after(d.controls.el)),k(b,l)},k=function(b,c){var d=b.find('img:not([src=""]), iframe').length,e=0;return 0===d?void c():void b.find('img:not([src=""]), iframe').each(function(){a(this).one("load error",function(){++e===d&&c()}).each(function(){this.complete&&a(this).load()})})},l=function(){if(d.settings.infiniteLoop&&"fade"!==d.settings.mode&&!d.settings.ticker){var b="vertical"===d.settings.mode?d.settings.minSlides:d.settings.maxSlides,c=d.children.slice(0,b).clone(!0).addClass("bx-clone"),f=d.children.slice(-b).clone(!0).addClass("bx-clone");d.settings.ariaHidden&&(c.attr("aria-hidden",!0),f.attr("aria-hidden",!0)),e.append(c).prepend(f)}d.loader.remove(),s(),"vertical"===d.settings.mode&&(d.settings.adaptiveHeight=!0),d.viewport.height(m()),e.redrawSlider(),d.settings.onSliderLoad.call(e,d.active.index),setTimeout(function(){d.children.eq(d.active.index).removeClass("out").addClass("in")},1500),d.initialized=!0,d.settings.responsive&&a(window).bind("resize",S),d.settings.auto&&d.settings.autoStart&&(q()>1||d.settings.autoSlideForOnePage)&&I(),d.settings.ticker&&J(),d.settings.pager&&E(d.settings.startSlide),d.settings.controls&&H(),d.settings.touchEnabled&&!d.settings.ticker&&N(),d.settings.keyboardEnabled&&!d.settings.ticker&&a(document).keydown(M)},m=function(){var b=0,c=a();if("vertical"===d.settings.mode||d.settings.adaptiveHeight)if(d.carousel){var e=1===d.settings.moveSlides?d.active.index:d.active.index*r();for(c=d.children.eq(e),i=1;i<=d.settings.maxSlides-1;i++)c=e+i>=d.children.length?c.add(d.children.eq(i-1)):c.add(d.children.eq(e+i))}else c=d.children.eq(d.active.index);else c=d.children;return"vertical"===d.settings.mode?(c.each(function(c){b+=a(this).outerHeight()}),d.settings.slideMargin>0&&(b+=d.settings.slideMargin*(d.settings.minSlides-1))):b=Math.max.apply(Math,c.map(function(){return a(this).outerHeight(!1)}).get()),"border-box"===d.viewport.css("box-sizing")?b+=parseFloat(d.viewport.css("padding-top"))+parseFloat(d.viewport.css("padding-bottom"))+parseFloat(d.viewport.css("border-top-width"))+parseFloat(d.viewport.css("border-bottom-width")):"padding-box"===d.viewport.css("box-sizing")&&(b+=parseFloat(d.viewport.css("padding-top"))+parseFloat(d.viewport.css("padding-bottom"))),b},n=function(){var a="100%";return d.settings.slideWidth>0&&(a="horizontal"===d.settings.mode?d.settings.maxSlides*d.settings.slideWidth+(d.settings.maxSlides-1)*d.settings.slideMargin:d.settings.slideWidth),a},o=function(){var a=d.settings.slideWidth,b=d.viewport.width();if(0===d.settings.slideWidth||d.settings.slideWidth>b&&!d.carousel||"vertical"===d.settings.mode)a=b;else if(d.settings.maxSlides>1&&"horizontal"===d.settings.mode){if(b>d.maxThreshold)return a;b0?d.viewport.width()d.maxThreshold?a=d.settings.maxSlides:(b=d.children.first().width()+d.settings.slideMargin,a=Math.floor((d.viewport.width()+d.settings.slideMargin)/b)):"vertical"===d.settings.mode&&(a=d.settings.minSlides),a},q=function(){var a=0,b=0,c=0;if(d.settings.moveSlides>0)if(d.settings.infiniteLoop)a=Math.ceil(d.children.length/r());else for(;b0&&d.settings.moveSlides<=p()?d.settings.moveSlides:p()},s=function(){var a,b,c;d.children.length>d.settings.maxSlides&&d.active.last&&!d.settings.infiniteLoop?"horizontal"===d.settings.mode?(b=d.children.last(),a=b.position(),t(-(a.left-(d.viewport.width()-b.outerWidth())),"reset",0)):"vertical"===d.settings.mode&&(c=d.children.length-d.settings.minSlides,a=d.children.eq(c).position(),t(-a.top,"reset",0)):(a=d.children.eq(d.active.index*r()).position(),d.active.index===q()-1&&(d.active.last=!0),void 0!==a&&("horizontal"===d.settings.mode?t(-a.left,"reset",0):"vertical"===d.settings.mode&&t(-a.top,"reset",0)))},t=function(b,c,f,g){var h,i;d.usingCSS?(i="vertical"===d.settings.mode?"translate3d(0, "+b+"px, 0)":"translate3d("+b+"px, 0, 0)",e.css("-"+d.cssPrefix+"-transition-duration",f/1e3+"s"),"slide"===c?(e.css(d.animProp,i),0!==f?e.bind("transitionend webkitTransitionEnd oTransitionEnd MSTransitionEnd",function(b){a(b.target).is(e)&&(e.unbind("transitionend webkitTransitionEnd oTransitionEnd MSTransitionEnd"),F())}):F()):"reset"===c?e.css(d.animProp,i):"ticker"===c&&(e.css("-"+d.cssPrefix+"-transition-timing-function","linear"),e.css(d.animProp,i),0!==f?e.bind("transitionend webkitTransitionEnd oTransitionEnd MSTransitionEnd",function(b){a(b.target).is(e)&&(e.unbind("transitionend webkitTransitionEnd oTransitionEnd MSTransitionEnd"),t(g.resetValue,"reset",0),K())}):(t(g.resetValue,"reset",0),K()))):(h={},h[d.animProp]=b,"slide"===c?e.animate(h,f,d.settings.easing,function(){F()}):"reset"===c?e.css(d.animProp,b):"ticker"===c&&e.animate(h,f,"linear",function(){t(g.resetValue,"reset",0),K()}))},u=function(){for(var b="",c="",e=q(),f=0;f'+c+"
";d.pagerEl.html(b)},v=function(){d.settings.pagerCustom?d.pagerEl=a(d.settings.pagerCustom):(d.pagerEl=a('
'),d.settings.pagerSelector?a(d.settings.pagerSelector).html(d.pagerEl):d.controls.el.addClass("bx-has-pager").append(d.pagerEl),u()),d.pagerEl.on("click touchend","a",D)},w=function(){d.controls.next=a(''+d.settings.nextText+""),d.controls.prev=a(''+d.settings.prevText+""),d.controls.next.bind("click touchend",z),d.controls.prev.bind("click touchend",A),d.settings.nextSelector&&a(d.settings.nextSelector).append(d.controls.next),d.settings.prevSelector&&a(d.settings.prevSelector).append(d.controls.prev),d.settings.nextSelector||d.settings.prevSelector||(d.controls.directionEl=a('
'),d.controls.directionEl.append(d.controls.prev).append(d.controls.next),d.controls.el.addClass("bx-has-controls-direction").append(d.controls.directionEl))},x=function(){d.controls.start=a('"),d.controls.stop=a('"),d.controls.autoEl=a('
'),d.controls.autoEl.on("click",".bx-start",B),d.controls.autoEl.on("click",".bx-stop",C),d.settings.autoControlsCombine?d.controls.autoEl.append(d.controls.start):d.controls.autoEl.append(d.controls.start).append(d.controls.stop),d.settings.autoControlsSelector?a(d.settings.autoControlsSelector).html(d.controls.autoEl):d.controls.el.addClass("bx-has-controls-auto").append(d.controls.autoEl),G(d.settings.autoStart?"stop":"start")},y=function(){d.children.each(function(b){var c=a(this).find("img:first").attr("title");void 0!==c&&(""+c).length&&a(this).append('
'+c+"
")})},z=function(a){a.preventDefault(),d.controls.el.hasClass("disabled")||(d.settings.auto&&d.settings.stopAutoOnClick&&e.stopAuto(),e.goToNextSlide())},A=function(a){a.preventDefault(),d.controls.el.hasClass("disabled")||(d.settings.auto&&d.settings.stopAutoOnClick&&e.stopAuto(),e.goToPrevSlide())},B=function(a){e.startAuto(),a.preventDefault()},C=function(a){e.stopAuto(),a.preventDefault()},D=function(b){var c,f;b.preventDefault(),d.controls.el.hasClass("disabled")||(d.settings.auto&&d.settings.stopAutoOnClick&&e.stopAuto(),c=a(b.currentTarget),void 0!==c.attr("data-slide-index")&&(f=parseInt(c.attr("data-slide-index")),f!==d.active.index&&e.goToSlideDelayed(f)))},E=function(b){var c=d.children.length;return"short"===d.settings.pagerType?(d.settings.maxSlides>1&&(c=Math.ceil(d.children.length/d.settings.maxSlides)),void d.pagerEl.html(b+1+d.settings.pagerShortSeparator+c)):(d.pagerEl.find("a").removeClass("active"),void d.pagerEl.each(function(c,d){a(d).find("a").eq(b).addClass("active")}))},F=function(){if(d.settings.infiniteLoop){var a="";0===d.active.index?a=d.children.eq(0).position():d.active.index===q()-1&&d.carousel?a=d.children.eq((q()-1)*r()).position():d.active.index===d.children.length-1&&(a=d.children.eq(d.children.length-1).position()),a&&("horizontal"===d.settings.mode?t(-a.left,"reset",0):"vertical"===d.settings.mode&&t(-a.top,"reset",0))}d.working=!1,d.settings.onSlideAfter.call(e,d.children.eq(d.active.index),d.oldIndex,d.active.index)},G=function(a){d.settings.autoControlsCombine?d.controls.autoEl.html(d.controls[a]):(d.controls.autoEl.find("a").removeClass("active"),d.controls.autoEl.find("a:not(.bx-"+a+")").addClass("active"))},H=function(){1===q()?(d.controls.prev.addClass("disabled"),d.controls.next.addClass("disabled")):!d.settings.infiniteLoop&&d.settings.hideControlOnEnd&&(0===d.active.index?(d.controls.prev.addClass("disabled"),d.controls.next.removeClass("disabled")):d.active.index===q()-1?(d.controls.next.addClass("disabled"),d.controls.prev.removeClass("disabled")):(d.controls.prev.removeClass("disabled"),d.controls.next.removeClass("disabled")))},I=function(){if(d.settings.autoDelay>0){setTimeout(e.startAuto,d.settings.autoDelay)}else e.startAuto(),a(window).focus(function(){e.startAuto()}).blur(function(){e.stopAuto()});d.settings.autoHover&&e.hover(function(){d.interval&&(e.stopAuto(!0),d.autoPaused=!0)},function(){d.autoPaused&&(e.startAuto(!0),d.autoPaused=null)})},J=function(){var b,c,f,g,h,i,j,k,l=0;"next"===d.settings.autoDirection?e.append(d.children.clone().addClass("bx-clone")):(e.prepend(d.children.clone().addClass("bx-clone")),b=d.children.first().position(),l="horizontal"===d.settings.mode?-b.left:-b.top),t(l,"reset",0),d.settings.pager=!1,d.settings.controls=!1,d.settings.autoControls=!1,d.settings.tickerHover&&(d.usingCSS?(g="horizontal"===d.settings.mode?4:5,d.viewport.hover(function(){c=e.css("-"+d.cssPrefix+"-transform"),f=parseFloat(c.split(",")[g]),t(f,"reset",0)},function(){k=0,d.children.each(function(b){k+="horizontal"===d.settings.mode?a(this).outerWidth(!0):a(this).outerHeight(!0)}),h=d.settings.speed/k,i="horizontal"===d.settings.mode?"left":"top",j=h*(k-Math.abs(parseInt(f))),K(j)})):d.viewport.hover(function(){e.stop()},function(){k=0,d.children.each(function(b){k+="horizontal"===d.settings.mode?a(this).outerWidth(!0):a(this).outerHeight(!0)}),h=d.settings.speed/k,i="horizontal"===d.settings.mode?"left":"top",j=h*(k-Math.abs(parseInt(e.css(i)))),K(j)})),K()},K=function(a){var b,c,f,g=a?a:d.settings.speed,h={left:0,top:0},i={left:0,top:0};"next"===d.settings.autoDirection?h=e.find(".bx-clone").first().position():i=d.children.first().position(),b="horizontal"===d.settings.mode?-h.left:-h.top,c="horizontal"===d.settings.mode?-i.left:-i.top,f={resetValue:c},t(b,"ticker",g,f)},L=function(b){var c=a(window),d={top:c.scrollTop(),left:c.scrollLeft()},e=b.offset();return d.right=d.left+c.width(),d.bottom=d.top+c.height(),e.right=e.left+b.outerWidth(),e.bottom=e.top+b.outerHeight(),!(d.righte.right||d.bottome.bottom)},M=function(a){var b=document.activeElement.tagName.toLowerCase(),c="input|textarea",d=new RegExp(b,["i"]),f=d.exec(c);if(null==f&&L(e)){if(39===a.keyCode)return z(a),!1;if(37===a.keyCode)return A(a),!1}},N=function(){d.touch={start:{x:0,y:0},end:{x:0,y:0}},d.viewport.bind("touchstart MSPointerDown pointerdown",O),d.viewport.on("click",".bxslider a",function(a){d.viewport.hasClass("click-disabled")&&(a.preventDefault(),d.viewport.removeClass("click-disabled"))})},O=function(a){if(d.controls.el.addClass("disabled"),d.working)a.preventDefault(),d.controls.el.removeClass("disabled");else{d.touch.originalPos=e.position();var b=a.originalEvent,c="undefined"!=typeof b.changedTouches?b.changedTouches:[b];d.touch.start.x=c[0].pageX,d.touch.start.y=c[0].pageY,d.viewport.get(0).setPointerCapture&&(d.pointerId=b.pointerId,d.viewport.get(0).setPointerCapture(d.pointerId)),d.viewport.bind("touchmove MSPointerMove pointermove",Q),d.viewport.bind("touchend MSPointerUp pointerup",R),d.viewport.bind("MSPointerCancel pointercancel",P)}},P=function(a){t(d.touch.originalPos.left,"reset",0),d.controls.el.removeClass("disabled"),d.viewport.unbind("MSPointerCancel pointercancel",P),d.viewport.unbind("touchmove MSPointerMove pointermove",Q),d.viewport.unbind("touchend MSPointerUp pointerup",R),d.viewport.get(0).releasePointerCapture&&d.viewport.get(0).releasePointerCapture(d.pointerId)},Q=function(a){var b=a.originalEvent,c="undefined"!=typeof b.changedTouches?b.changedTouches:[b],e=Math.abs(c[0].pageX-d.touch.start.x),f=Math.abs(c[0].pageY-d.touch.start.y),g=0,h=0;3*e>f&&d.settings.preventDefaultSwipeX?a.preventDefault():3*f>e&&d.settings.preventDefaultSwipeY&&a.preventDefault(),"fade"!==d.settings.mode&&d.settings.oneToOneTouch&&("horizontal"===d.settings.mode?(h=c[0].pageX-d.touch.start.x,g=d.touch.originalPos.left+h):(h=c[0].pageY-d.touch.start.y,g=d.touch.originalPos.top+h),t(g,"reset",0))},R=function(a){d.viewport.unbind("touchmove MSPointerMove pointermove",Q),d.controls.el.removeClass("disabled");var b=a.originalEvent,c="undefined"!=typeof b.changedTouches?b.changedTouches:[b],f=0,g=0;d.touch.end.x=c[0].pageX,d.touch.end.y=c[0].pageY,"fade"===d.settings.mode?(g=Math.abs(d.touch.start.x-d.touch.end.x),g>=d.settings.swipeThreshold&&(d.touch.start.x>d.touch.end.x?e.goToNextSlide():e.goToPrevSlide(),e.stopAuto())):("horizontal"===d.settings.mode?(g=d.touch.end.x-d.touch.start.x,f=d.touch.originalPos.left):(g=d.touch.end.y-d.touch.start.y,f=d.touch.originalPos.top),!d.settings.infiniteLoop&&(0===d.active.index&&g>0||d.active.last&&g<0)?t(f,"reset",200):Math.abs(g)>=d.settings.swipeThreshold?(g<0?e.goToNextSlide():e.goToPrevSlide(),e.stopAuto()):t(f,"reset",200)),d.viewport.unbind("touchend MSPointerUp pointerup",R),d.viewport.get(0).releasePointerCapture&&d.viewport.get(0).releasePointerCapture(d.pointerId)},S=function(b){if(d.initialized)if(d.working)window.setTimeout(S,10);else{var c=a(window).width(),h=a(window).height();f===c&&g===h||(f=c,g=h,e.redrawSlider(),d.settings.onSliderResize.call(e,d.active.index))}},T=function(a){var b=p();d.settings.ariaHidden&&!d.settings.ticker&&(d.children.attr("aria-hidden","true"),d.children.slice(a,a+b).attr("aria-hidden","false"))},U=function(a){return a<0?d.settings.infiniteLoop?q()-1:d.active.index:a>=q()?d.settings.infiniteLoop?0:d.active.index:a};return e.goToSlide=function(b,c){var f,g,h,i,j=!0,k=0,l={left:0,top:0},n=null;if(d.oldIndex=d.active.index,d.active.index=U(b),!d.working&&d.active.index!==d.oldIndex){if(d.working=!0,j=d.settings.onSlideBefore.call(e,d.children.eq(d.active.index),d.oldIndex,d.active.index),"undefined"!=typeof j&&!j)return d.active.index=d.oldIndex,void(d.working=!1);"next"===c?d.settings.onSlideNext.call(e,d.children.eq(d.active.index),d.oldIndex,d.active.index)||(j=!1):"prev"===c&&(d.settings.onSlidePrev.call(e,d.children.eq(d.active.index),d.oldIndex,d.active.index)||(j=!1)),d.active.last=d.active.index>=q()-1,(d.settings.pager||d.settings.pagerCustom)&&E(d.active.index),d.settings.controls&&H(),"fade"===d.settings.mode?(d.settings.adaptiveHeight&&d.viewport.height()!==m()&&d.viewport.animate({height:m()},d.settings.adaptiveHeightSpeed),d.children.filter(":visible").fadeOut(d.settings.speed).css({zIndex:0}),d.children.eq(d.active.index).css("zIndex",d.settings.slideZIndex+1).fadeIn(d.settings.speed,function(){a(this).css("zIndex",d.settings.slideZIndex),F()})):(d.settings.adaptiveHeight&&d.viewport.height()!==m()&&d.viewport.animate({height:m()},d.settings.adaptiveHeightSpeed),!d.settings.infiniteLoop&&d.carousel&&d.active.last?"horizontal"===d.settings.mode?(n=d.children.eq(d.children.length-1),l=n.position(),k=d.viewport.width()-n.outerWidth()):(f=d.children.length-d.settings.minSlides,l=d.children.eq(f).position()):d.carousel&&d.active.last&&"prev"===c?(g=1===d.settings.moveSlides?d.settings.maxSlides-r():(q()-1)*r()-(d.children.length-d.settings.maxSlides),n=e.children(".bx-clone").eq(g),l=n.position()):"next"===c&&0===d.active.index?(l=e.find("> .bx-clone").eq(d.settings.maxSlides).position(),d.active.last=!1):b>=0&&(i=b*parseInt(r()),l=d.children.eq(i).position()),"undefined"!=typeof l?(h="horizontal"===d.settings.mode?-(l.left-k):-l.top,t(h,"slide",d.settings.speed)):d.working=!1),d.settings.ariaHidden&&T(d.active.index*r()),setTimeout(function(){d.children.eq(d.active.index).removeClass("out").addClass("in")},200)}},e.goToSlideDelayed=function(a,b){var c=d.children.eq(a),f=parseInt(c.attr("data-pauseBeforeOut"))||d.settings.pauseBeforeOut;d.children.eq(d.active.index).removeClass("in").addClass("out"),f?setTimeout(function(){e.goToSlide(a,b)},f):e.goToSlide(a,b)},e.goToNextSlide=function(){if(d.settings.infiniteLoop||!d.active.last){var a=parseInt(d.active.index)+1;e.goToSlideDelayed(a,"next")}},e.goToPrevSlide=function(){if(d.settings.infiniteLoop||0!==d.active.index){var a=parseInt(d.active.index)-1;e.goToSlideDelayed(a,"prev")}},e.startAuto=function(a){var b=d.children.eq(d.active.index),c=parseInt(b.attr("data-pauseAfterInt"))||d.settings.pauseAfterIn||0;c+=parseInt(b.attr("data-pause"))||d.settings.pause||0,!d.interval&&c&&(d.interval=setTimeout(function(){"next"===d.settings.autoDirection?e.goToNextSlide():e.goToPrevSlide(),d.interval=0,e.startAuto(a)},c),d.settings.autoControls&&a!==!0&&G("stop"))},e.stopAuto=function(a){d.interval&&(clearInterval(d.interval),d.interval=null,d.settings.autoControls&&a!==!0&&G("start"))},e.getCurrentSlide=function(){return d.active.index},e.getCurrentSlideElement=function(){return d.children.eq(d.active.index)},e.getSlideElement=function(a){return d.children.eq(a)},e.getSlideCount=function(){return d.children.length},e.isWorking=function(){return d.working},e.redrawSlider=function(){d.children.add(e.find(".bx-clone")).outerWidth(o()),d.viewport.css("height",m()),d.settings.ticker||s(),d.active.last&&(d.active.index=q()-1),d.active.index>=q()&&(d.active.last=!0),d.settings.pager&&!d.settings.pagerCustom&&(u(),E(d.active.index)),d.settings.ariaHidden&&T(d.active.index*r())},e.destroySlider=function(){d.initialized&&(d.initialized=!1,a(".bx-clone",this).remove(),d.children.each(function(){void 0!==a(this).data("origStyle")?a(this).attr("style",a(this).data("origStyle")):a(this).removeAttr("style")}),void 0!==a(this).data("origStyle")?this.attr("style",a(this).data("origStyle")):a(this).removeAttr("style"),a(this).unwrap().unwrap(),d.controls.el&&d.controls.el.remove(),d.controls.next&&d.controls.next.remove(),d.controls.prev&&d.controls.prev.remove(),d.pagerEl&&d.settings.controls&&!d.settings.pagerCustom&&d.pagerEl.remove(),a(".bx-caption",this).remove(),d.controls.autoEl&&d.controls.autoEl.remove(),clearInterval(d.interval),d.settings.responsive&&a(window).unbind("resize",S),d.settings.keyboardEnabled&&a(document).unbind("keydown",M),a(this).removeData("bxSlider"))},e.reloadSlider=function(b){void 0!==b&&(c=b),e.destroySlider(),h(),a(e).data("bxSlider",this)},h(),a(e).data("bxSlider",this),this}}}(jQuery); diff --git a/readme.md b/readme.md index c88f4dd0..f155de3e 100644 --- a/readme.md +++ b/readme.md @@ -1,5 +1,133 @@ -#bxSlider 4.2.5 -##The fully-loaded, responsive jQuery content slider +#This is a fork of bxSlider 4.2.5 +####This fork adds some new features aimed to create animated presentations. + +* You can define timing for every slide via data- attributes +* You can define in (entering) and out (exiting) animations for every HTML element in the slide +* Finally you can add your custom animations using included sass project + +##New configuration options +**pauseBeforeOut** + +Pause before slide change in milliseconds. It allows out animation completion before the next slide enter. It works both in auto mode and in manual mode. +``` +default: 0 +options: integer +``` + +**pauseAfterIn** + +Pause added to slide pause in milliseconds. For every slide you may define a pause for in animation completion an a pause for slide reading. It works both in auto mode and in manual mode. +``` +default: 0 +options: integer +``` +###data-... attributes +**data-pauseBeforeOut** + +Pause before slide change. It allows out animation completion before the next slide enter. It works both in auto mode and in manual mode. It overrides pauseBeforeOut option setting. +``` +
  • +..... +
  • +``` + +**data-pauseAfterIn** + +Pause added to slide pause in milliseconds. For every slide you may define a pause for in animation completion an a pause for slide reading. It works both in auto mode and in manual mode. It overrides pauseAfterIn option setting. +``` +
  • +..... +
  • +``` +**data-pause** +The amount of time (in ms) between the end of pauseAfterIn time and the beginning of pauseBeforeOut time in auto transition mode. It overrides pause option setting. +``` +
  • +..... +
  • +``` +##Installation +Animation css stuff is integrated in jquery.bxslider.css. So you don't need to do any special installation. Simply follow bxSlider installation instruction. +If you want to modify provided animations or create new once you must install compass-sass (http://compass-style.org/install/): +* All scss files are in the /src/sass folder +* Generated css files are located in src/css folder +* Compass settings are defined is /src/config.rb +* `$ grunt ` or `$ grunt dist` commands will assemble all generated css into /dist/jquery.bxslider.css + +After editing you may +1. Compile compass project launching compass (`$ compass compile`) +2. Run grunt to assemble and copy files (`$ grunt`) + +or +1. Install proper grunt compass component +2. Automate compiling changing Gruntfile.js + +##Use +To animate every HTML element in a slide you must assign to it some classes. +###General class +To every animated element you must assign the class `animated`.This class assign general bhaviors to animated elements. +###Animation classes +Then you must: +* Assign a class for enter animation that have the "In" suffix or infix (`fadeIn, flipInX, rotateIn, slideInUp`, etc.) +* Assign a class for exit animation that have the "Out" suffix or infix (`fadeOut, flipInX, rotateIn, slideInUp`, etc.) + +**Available enter animation classes**: `fadeIn, fadeInUp, fadeInUpBig, fadeInDown, fadeInDownBig, fadeInLeft, fadeInLeftBig, fadeInRight, fadeInRightBig, bounceIn, bounceInUp, bounceInDown, bounceInLeft, bounceInRight, rotateIn, rotateInUpLeft, rotateInUpRight, rotateInDownLeft, rotateInDownRight, slideIn, slideInUp, slideInDown, slideInLeft, slideInRight, flipInX, flipOutX, lightSpeedIn, rollIn, zoomIn, zoomInDown, zoomInLeft, zoomInRight, zoomInUp` + +**Available exit animation classes**: `fadeOut, fadeOutUp, fadeOutUpBig, fadeOutDown, fadeOutDownBig, fadeOutLeft, fadeOutLeftBig, fadeOutRight, fadeOutRightBig, bounceOut, bounceOutUp, bounceOutDown, bounceOutLeft, bounceOutRight, rotateOut, rotateOutUpLeft, rotateOutUpRight, rotateOutDownLeft, rotateOutDownRight, slideOut, slideOutUp, slideOutDown, slideOutLeft, slideOutRight, flipOutX, flipOutX, lightSpeedOut, hingeOut, rollOut, zoomOut, zoomOutDown, zoomOutLeft, zoomOutRight, zoomOutUp` + +###Modifier classes +* **Delay**: Animations has a base delay of 0.5 seconds (500 ms). You can use delayInXXXX and delayOutXXXX classes (where XXXX is 500, 1000, 1500, 2000, 2500, 3000, 3500, 4000, 4500, 5000) to delay in and/or out animation and create temporized animation sequences. +* **Speed**: Animations has a base speed of 1 second. You can modify animation speed using `slowIn, slowOut, fastIn, fastOut, xslowIn, xslowOut` classes. + +###Slideshow Example +``` + ....... +
      +
    • +

      + +

      +

      + Sample animations: flip +

      +
    • +
    • +

      + +

      +

      + Sample animations: zoom +

      +
    • +
    • +

      + +

      +

      + Sample animations: rotate +

      +
    • +
    + ..... + +``` ###Why should I use this slider? * Fully responsive - will adapt to any device diff --git a/src/config.rb b/src/config.rb new file mode 100644 index 00000000..be6fdcdd --- /dev/null +++ b/src/config.rb @@ -0,0 +1,28 @@ +require 'compass/import-once/activate' +# Require any additional compass plugins here. + + +# Set this to the root of your project when deployed: +http_path = "/" +css_dir = "css" +sass_dir = "sass" +images_dir = "images" +javascripts_dir = "js" + +# You can select your preferred output style here (can be overridden via the command line): +# output_style = :expanded or :nested or :compact or :compressed + +# To enable relative paths to assets via compass helper functions. Uncomment: +# relative_assets = true + +# To disable debugging comments that display the original location of your selectors. Uncomment: +# line_comments = false + + +# If you prefer the indented syntax, you might want to regenerate this +# project again passing --syntax sass, or you can uncomment this: +# preferred_syntax = :sass +# and then run: +# sass-convert -R --from scss --to sass sass scss && rm -rf sass && mv scss sass + +cache_path = 'C:\Temp\sass-cache' diff --git a/src/css/animate_custom.css b/src/css/animate_custom.css new file mode 100644 index 00000000..7132050c --- /dev/null +++ b/src/css/animate_custom.css @@ -0,0 +1,2145 @@ +/*! +Animate.css - http://daneden.me/animate +Licensed under the MIT license - http://opensource.org/licenses/MIT +Copyright (c) 2015 Daniel Eden +*/ +/* line 9, ../sass/helpers/_base.scss */ +body { + -webkit-backface-visibility: hidden; +} + +/* line 13, ../sass/helpers/_base.scss */ +.animated { + -webkit-animation-duration: 1s; + animation-duration: 1s; + -webkit-animation-fill-mode: both; + animation-fill-mode: both; +} +/* line 16, ../sass/helpers/_base.scss */ +.animated.infinite { + animation-iteration-count: infinite; +} +/* line 19, ../sass/helpers/_base.scss */ +.animated.hinge { + -webkit-animation-duration: 2s; + animation-duration: 2s; +} +/* line 22, ../sass/helpers/_base.scss */ +.animated.bounceIn, .animated.bounceOut { + -webkit-animation-duration: 0.75s; + animation-duration: 0.75s; +} +/* line 26, ../sass/helpers/_base.scss */ +.animated.flipOutX, .animated.flipOutY { + -webkit-animation-duration: 0.75s; + animation-duration: 0.75s; +} + +/* line 34, ../sass/helpers/_base.scss */ +.in .animated.fast, .in .animated.fastIn { + -webkit-animation-duration: 0.5s; + animation-duration: 0.5s; +} +/* line 38, ../sass/helpers/_base.scss */ +.in .animated.slow, .in .animated.slowIn { + -webkit-animation-duration: 1.5s; + animation-duration: 1.5s; +} +/* line 42, ../sass/helpers/_base.scss */ +.in .animated.xslow, .in .animated.xslowIn { + -webkit-animation-duration: 2.5s; + animation-duration: 2.5s; +} +/* line 47, ../sass/helpers/_base.scss */ +.in .animated.hinge.fast, .in .animated.hinge.fastIn { + -webkit-animation-duration: 1s; + animation-duration: 1s; +} +/* line 51, ../sass/helpers/_base.scss */ +.in .animated.hinge.slow, .in .animated.hinge.slowIn { + -webkit-animation-duration: 3s; + animation-duration: 3s; +} + +/* line 61, ../sass/helpers/_base.scss */ +.out .animated.fastOut { + -webkit-animation-duration: 0.5s; + animation-duration: 0.5s; +} +/* line 64, ../sass/helpers/_base.scss */ +.out .animated.slowOut { + -webkit-animation-duration: 1.5s; + animation-duration: 1.5s; +} +/* line 67, ../sass/helpers/_base.scss */ +.out .animated.xslowOut { + -webkit-animation-duration: 2.5s; + animation-duration: 2.5s; +} +/* line 71, ../sass/helpers/_base.scss */ +.out .animated.hinge.fastOut { + -webkit-animation-duration: 1s; + animation-duration: 1s; +} +/* line 74, ../sass/helpers/_base.scss */ +.out .animated.hinge.slowOut { + -webkit-animation-duration: 3s; + animation-duration: 3s; +} + +/* line 1, ../sass/helpers/_delay.scss */ +.in .animated { + -webkit-animation-delay: 0.5s; + animation-delay: 0.5s; +} +/* line 3, ../sass/helpers/_delay.scss */ +.in .animated.delay500, .in .animated.delayIn500 { + -webkit-animation-delay: 1s; + animation-delay: 1s; +} +/* line 6, ../sass/helpers/_delay.scss */ +.in .animated.delay1, .in .animated.delay1000, .in .animated.delayIn1000 { + -webkit-animation-delay: 1.5s; + animation-delay: 1.5s; +} +/* line 9, ../sass/helpers/_delay.scss */ +.in .animated.delay1500, .in .animated.delayIn1500 { + -webkit-animation-delay: 2s; + animation-delay: 2s; +} +/* line 12, ../sass/helpers/_delay.scss */ +.in .animated.delay2, .in .animated.delay2000, .in .animated.delayIn2000 { + -webkit-animation-delay: 2.5s; + animation-delay: 2.5s; +} +/* line 15, ../sass/helpers/_delay.scss */ +.in .animated.delay2500, .in .animated.delayIn2500 { + -webkit-animation-delay: 3s; + animation-delay: 3s; +} +/* line 18, ../sass/helpers/_delay.scss */ +.in .animated.delay3, .in .animated.delay3000, .in .animated.delayIn3000 { + -webkit-animation-delay: 3.5s; + animation-delay: 3.5s; +} +/* line 21, ../sass/helpers/_delay.scss */ +.in .animated.delay3500, .in .animated.delayIn3500 { + -webkit-animation-delay: 4s; + animation-delay: 4s; +} +/* line 24, ../sass/helpers/_delay.scss */ +.in .animated.delay4, .in .animated.delay4000, .in .animated.delayIn4000 { + -webkit-animation-delay: 4.5s; + animation-delay: 4.5s; +} +/* line 27, ../sass/helpers/_delay.scss */ +.in .animated.delay4500, .in .animated.delayIn4500 { + -webkit-animation-delay: 5s; + animation-delay: 5s; +} +/* line 30, ../sass/helpers/_delay.scss */ +.in .animated.delay5, .in .animateddelay5000, .in .animateddelayIn5000 { + -webkit-animation-delay: 5.5s; + animation-delay: 5.5s; +} + +/* line 37, ../sass/helpers/_delay.scss */ +.out .animated.delayOut500 { + -webkit-animation-delay: 1s; + animation-delay: 1s; +} +/* line 40, ../sass/helpers/_delay.scss */ +.out .animated.delayOut1000 { + -webkit-animation-delay: 1.5s; + animation-delay: 1.5s; +} +/* line 43, ../sass/helpers/_delay.scss */ +.out .animated.delayOut1500 { + -webkit-animation-delay: 2s; + animation-delay: 2s; +} +/* line 46, ../sass/helpers/_delay.scss */ +.out .animated.delayOut2000 { + -webkit-animation-delay: 2.5s; + animation-delay: 2.5s; +} +/* line 49, ../sass/helpers/_delay.scss */ +.out .animated.delayOut2500 { + -webkit-animation-delay: 3s; + animation-delay: 3s; +} +/* line 52, ../sass/helpers/_delay.scss */ +.out .animated.delayOut3000 { + -webkit-animation-delay: 3.5s; + animation-delay: 3.5s; +} +/* line 55, ../sass/helpers/_delay.scss */ +.out .animated.delayOut3500 { + -webkit-animation-delay: 4s; + animation-delay: 4s; +} +/* line 58, ../sass/helpers/_delay.scss */ +.out .animated.delayOut4000 { + -webkit-animation-delay: 4.5s; + animation-delay: 4.5s; +} +/* line 61, ../sass/helpers/_delay.scss */ +.out .animated.delayOut4500 { + -webkit-animation-delay: 5s; + animation-delay: 5s; +} +/* line 64, ../sass/helpers/_delay.scss */ +.out .animateddelayOut5000 { + -webkit-animation-delay: 5.5s; + animation-delay: 5.5s; +} + +@-webkit-keyframes bounce { + 0%, 20%, 50%, 80%, 100% { + -webkit-transform: translateY(0); + } + 40% { + -webkit-transform: translateY(-30px); + } + 60% { + -webkit-transform: translateY(-15px); + } +} +@keyframes bounce { + 0%, 20%, 50%, 80%, 100% { + transform: translateY(0); + } + 40% { + transform: translateY(-30px); + } + 60% { + transform: translateY(-15px); + } +} +/* line 15, ../sass/animations/attention-seekers/_bounce.scss */ +.bounce { + -webkit-animation-name: bounce; + animation-name: bounce; +} + +@-webkit-keyframes bounceIn { + 0% { + opacity: 0; + -webkit-transform: scale(0.3); + } + 50% { + opacity: 1; + -webkit-transform: scale(1.05); + } + 70% { + -webkit-transform: scale(0.9); + } + 100% { + -webkit-transform: scale(1); + } +} +@keyframes bounceIn { + 0% { + opacity: 0; + transform: scale(0.3); + } + 50% { + opacity: 1; + transform: scale(1.05); + } + 70% { + transform: scale(0.9); + } + 100% { + transform: scale(1); + } +} +/* line 43, ../sass/animations/bounce-enter/_bounceIn.scss */ +.in .bounceIn { + -webkit-animation-name: bounceIn; + animation-name: bounceIn; +} + +@-webkit-keyframes bounceInDown { + 0% { + opacity: 0; + -webkit-transform: translateY(-2000px); + } + 60% { + opacity: 1; + -webkit-transform: translateY(30px); + } + 80% { + -webkit-transform: translateY(-10px); + } + 100% { + -webkit-transform: translateY(0); + } +} +@keyframes bounceInDown { + 0% { + opacity: 0; + transform: translateY(-2000px); + } + 60% { + opacity: 1; + transform: translateY(30px); + } + 80% { + transform: translateY(-10px); + } + 100% { + transform: translateY(0); + } +} +/* line 43, ../sass/animations/bounce-enter/_bounceInDown.scss */ +.in .bounceInDown { + -webkit-animation-name: bounceInDown; + animation-name: bounceInDown; +} + +@-webkit-keyframes bounceInLeft { + 0% { + opacity: 0; + -webkit-transform: translateX(-2000px); + } + 60% { + opacity: 1; + -webkit-transform: translateX(30px); + } + 80% { + -webkit-transform: translateX(-10px); + } + 100% { + -webkit-transform: translateX(0); + } +} +@keyframes bounceInLeft { + 0% { + opacity: 0; + transform: translateX(-2000px); + } + 60% { + opacity: 1; + transform: translateX(30px); + } + 80% { + transform: translateX(-10px); + } + 100% { + transform: translateX(0); + } +} +/* line 43, ../sass/animations/bounce-enter/_bounceInLeft.scss */ +.in .bounceInLeft { + -webkit-animation-name: bounceInLeft; + animation-name: bounceInLeft; +} + +@-webkit-keyframes bounceInRight { + 0% { + opacity: 0; + -webkit-transform: translateX(2000px); + } + 60% { + opacity: 1; + -webkit-transform: translateX(-30px); + } + 80% { + -webkit-transform: translateX(10px); + } + 100% { + -webkit-transform: translateX(0); + } +} +@keyframes bounceInRight { + 0% { + opacity: 0; + transform: translateX(2000px); + } + 60% { + opacity: 1; + transform: translateX(-30px); + } + 80% { + transform: translateX(10px); + } + 100% { + transform: translateX(0); + } +} +/* line 43, ../sass/animations/bounce-enter/_bounceInRight.scss */ +.in .bounceInRight { + -webkit-animation-name: bounceInRight; + animation-name: bounceInRight; +} + +@-webkit-keyframes bounceInUp { + 0% { + opacity: 0; + -webkit-transform: translateY(2000px); + } + 60% { + opacity: 1; + -webkit-transform: translateY(-30px); + } + 80% { + -webkit-transform: translateY(10px); + } + 100% { + -webkit-transform: translateY(0); + } +} +@keyframes bounceInUp { + 0% { + opacity: 0; + transform: translateY(2000px); + } + 60% { + opacity: 1; + transform: translateY(-30px); + } + 80% { + transform: translateY(10px); + } + 100% { + transform: translateY(0); + } +} +/* line 43, ../sass/animations/bounce-enter/_bounceInUp.scss */ +.in .bounceInUp { + -webkit-animation-name: bounceInUp; + animation-name: bounceInUp; +} + +@-webkit-keyframes bounceOut { + 0% { + -webkit-transform: scale(1); + } + 25% { + -webkit-transform: scale(0.95); + } + 50% { + opacity: 1; + -webkit-transform: scale(1.1); + } + 100% { + opacity: 0; + -webkit-transform: scale(0.3); + } +} +@keyframes bounceOut { + 0% { + transform: scale(1); + } + 25% { + transform: scale(0.95); + } + 50% { + opacity: 1; + transform: scale(1.1); + } + 100% { + opacity: 0; + transform: scale(0.3); + } +} +/* line 43, ../sass/animations/bounce-exit/_bounceOut.scss */ +.out .bounceOut { + -webkit-animation-name: bounceOut; + animation-name: bounceOut; +} + +@-webkit-keyframes bounceOutDown { + 0% { + -webkit-transform: translateY(0); + } + 20% { + opacity: 1; + -webkit-transform: translateY(-20px); + } + 100% { + opacity: 0; + -webkit-transform: translateY(2000px); + } +} +@keyframes bounceOutDown { + 0% { + transform: translateY(0); + } + 20% { + opacity: 1; + transform: translateY(-20px); + } + 100% { + opacity: 0; + transform: translateY(2000px); + } +} +/* line 35, ../sass/animations/bounce-exit/_bounceOutDown.scss */ +.out .bounceOutDown { + -webkit-animation-name: bounceOutDown; + animation-name: bounceOutDown; +} + +@-webkit-keyframes bounceOutLeft { + 0% { + -webkit-transform: translateX(0); + } + 20% { + opacity: 1; + -webkit-transform: translateX(20px); + } + 100% { + opacity: 0; + -webkit-transform: translateX(-2000px); + } +} +@keyframes bounceOutLeft { + 0% { + transform: translateX(0); + } + 20% { + opacity: 1; + transform: translateX(20px); + } + 100% { + opacity: 0; + transform: translateX(-2000px); + } +} +/* line 35, ../sass/animations/bounce-exit/_bounceOutLeft.scss */ +.out .bounceOutLeft { + -webkit-animation-name: bounceOutLeft; + animation-name: bounceOutLeft; +} + +@-webkit-keyframes bounceOutRight { + 0% { + -webkit-transform: translateX(0); + } + 20% { + opacity: 1; + -webkit-transform: translateX(-20px); + } + 100% { + opacity: 0; + -webkit-transform: translateX(2000px); + } +} +@keyframes bounceOutRight { + 0% { + transform: translateX(0); + } + 20% { + opacity: 1; + transform: translateX(-20px); + } + 100% { + opacity: 0; + transform: translateX(2000px); + } +} +/* line 35, ../sass/animations/bounce-exit/_bounceOutRight.scss */ +.out .bounceOutRight { + -webkit-animation-name: bounceOutRight; + animation-name: bounceOutRight; +} + +@-webkit-keyframes bounceOutUp { + 0% { + -webkit-transform: translateY(0); + } + 20% { + opacity: 1; + -webkit-transform: translateY(20px); + } + 100% { + opacity: 0; + -webkit-transform: translateY(-2000px); + } +} +@keyframes bounceOutUp { + 0% { + transform: translateY(0); + } + 20% { + opacity: 1; + transform: translateY(20px); + } + 100% { + opacity: 0; + transform: translateY(-2000px); + } +} +/* line 35, ../sass/animations/bounce-exit/_bounceOutUp.scss */ +.out .bounceOutUp { + -webkit-animation-name: bounceOutUp; + animation-name: bounceOutUp; +} + +@-webkit-keyframes fadeIn { + 0% { + opacity: 0; + } + 100% { + opacity: 1; + } +} +@keyframes fadeIn { + 0% { + opacity: 0; + } + 100% { + opacity: 1; + } +} +/* line 8, ../sass/animations/fade-enter/_fadeIn.scss */ +.in .fadeIn { + -webkit-animation-name: fadeIn; + animation-name: fadeIn; +} + +@-webkit-keyframes fadeInDown { + 0% { + opacity: 0; + -webkit-transform: translateY(-20px); + } + 100% { + opacity: 1; + -webkit-transform: translateY(0); + } +} +@keyframes fadeInDown { + 0% { + opacity: 0; + transform: translateY(-20px); + } + 100% { + opacity: 1; + transform: translateY(0); + } +} +/* line 27, ../sass/animations/fade-enter/_fadeInDown.scss */ +.in .fadeInDown { + -webkit-animation-name: fadeInDown; + animation-name: fadeInDown; +} + +@-webkit-keyframes fadeInDownBig { + 0% { + opacity: 0; + -webkit-transform: translateY(-2000px); + } + 100% { + opacity: 1; + -webkit-transform: translateY(0); + } +} +@keyframes fadeInDownBig { + 0% { + opacity: 0; + transform: translateY(-2000px); + } + 100% { + opacity: 1; + transform: translateY(0); + } +} +/* line 27, ../sass/animations/fade-enter/_fadeInDownBig.scss */ +.in .fadeInDownBig { + -webkit-animation-name: fadeInDownBig; + animation-name: fadeInDownBig; +} + +@-webkit-keyframes fadeInLeft { + 0% { + opacity: 0; + -webkit-transform: translateX(-20px); + } + 100% { + opacity: 1; + -webkit-transform: translateX(0); + } +} +@keyframes fadeInLeft { + 0% { + opacity: 0; + transform: translateX(-20px); + } + 100% { + opacity: 1; + transform: translateX(0); + } +} +/* line 27, ../sass/animations/fade-enter/_fadeInLeft.scss */ +.in .fadeInLeft { + -webkit-animation-name: fadeInLeft; + animation-name: fadeInLeft; +} + +@-webkit-keyframes fadeInLeftBig { + 0% { + opacity: 0; + -webkit-transform: translateX(-2000px); + } + 100% { + opacity: 1; + -webkit-transform: translateX(0); + } +} +@keyframes fadeInLeftBig { + 0% { + opacity: 0; + transform: translateX(-2000px); + } + 100% { + opacity: 1; + transform: translateX(0); + } +} +/* line 27, ../sass/animations/fade-enter/_fadeInLeftBig.scss */ +.in .fadeInLeftBig { + -webkit-animation-name: fadeInLeftBig; + animation-name: fadeInLeftBig; +} + +@-webkit-keyframes fadeInRight { + 0% { + opacity: 0; + -webkit-transform: translateX(20px); + } + 100% { + opacity: 1; + -webkit-transform: translateX(0); + } +} +@keyframes fadeInRight { + 0% { + opacity: 0; + transform: translateX(20px); + } + 100% { + opacity: 1; + transform: translateX(0); + } +} +/* line 27, ../sass/animations/fade-enter/_fadeInRight.scss */ +.in .fadeInRight { + -webkit-animation-name: fadeInRight; + animation-name: fadeInRight; +} + +@-webkit-keyframes fadeInRightBig { + 0% { + opacity: 0; + -webkit-transform: translateX(2000px); + } + 100% { + opacity: 1; + -webkit-transform: translateX(0); + } +} +@keyframes fadeInRightBig { + 0% { + opacity: 0; + transform: translateX(2000px); + } + 100% { + opacity: 1; + transform: translateX(0); + } +} +/* line 27, ../sass/animations/fade-enter/_fadeInRightBig.scss */ +.in .fadeInRightBig { + -webkit-animation-name: fadeInRightBig; + animation-name: fadeInRightBig; +} + +@-webkit-keyframes fadeInUp { + 0% { + opacity: 0; + -webkit-transform: translateY(20px); + } + 100% { + opacity: 1; + -webkit-transform: translateY(0); + } +} +@keyframes fadeInUp { + 0% { + opacity: 0; + transform: translateY(20px); + } + 100% { + opacity: 1; + transform: translateY(0); + } +} +/* line 27, ../sass/animations/fade-enter/_fadeInUp.scss */ +.in .fadeInUp { + -webkit-animation-name: fadeInUp; + animation-name: fadeInUp; +} + +@-webkit-keyframes fadeInUpBig { + 0% { + opacity: 0; + -webkit-transform: translateY(2000px); + } + 100% { + opacity: 1; + -webkit-transform: translateY(0); + } +} +@keyframes fadeInUpBig { + 0% { + opacity: 0; + transform: translateY(2000px); + } + 100% { + opacity: 1; + transform: translateY(0); + } +} +/* line 27, ../sass/animations/fade-enter/_fadeInUpBig.scss */ +.in .fadeInUpBig { + -webkit-animation-name: fadeInUpBig; + animation-name: fadeInUpBig; +} + +@-webkit-keyframes fadeOut { + 0% { + opacity: 1; + } + 100% { + opacity: 0; + } +} +@keyframes fadeOut { + 0% { + opacity: 1; + } + 100% { + opacity: 0; + } +} +/* line 8, ../sass/animations/fade-exit/_fadeOut.scss */ +.out .fadeOut { + -webkit-animation-name: fadeOut; + animation-name: fadeOut; +} + +@-webkit-keyframes fadeOutDown { + 0% { + opacity: 1; + -webkit-transform: translateY(0); + } + 100% { + opacity: 0; + -webkit-transform: translateY(20px); + } +} +@keyframes fadeOutDown { + 0% { + opacity: 1; + transform: translateY(0); + } + 100% { + opacity: 0; + transform: translateY(20px); + } +} +/* line 27, ../sass/animations/fade-exit/_fadeOutDown.scss */ +.out .fadeOutDown { + -webkit-animation-name: fadeOutDown; + animation-name: fadeOutDown; +} + +@-webkit-keyframes fadeOutDownBig { + 0% { + opacity: 1; + -webkit-transform: translateY(0); + } + 100% { + opacity: 0; + -webkit-transform: translateY(2000px); + } +} +@keyframes fadeOutDownBig { + 0% { + opacity: 1; + transform: translateY(0); + } + 100% { + opacity: 0; + transform: translateY(2000px); + } +} +/* line 27, ../sass/animations/fade-exit/_fadeOutDownBig.scss */ +.out .fadeOutDownBig { + -webkit-animation-name: fadeOutDownBig; + animation-name: fadeOutDownBig; +} + +@-webkit-keyframes fadeOutLeft { + 0% { + opacity: 1; + -webkit-transform: translateX(0); + } + 100% { + opacity: 0; + -webkit-transform: translateX(-20px); + } +} +@keyframes fadeOutLeft { + 0% { + opacity: 1; + transform: translateX(0); + } + 100% { + opacity: 0; + transform: translateX(-20px); + } +} +/* line 27, ../sass/animations/fade-exit/_fadeOutLeft.scss */ +.out .fadeOutLeft { + -webkit-animation-name: fadeOutLeft; + animation-name: fadeOutLeft; +} + +@-webkit-keyframes fadeOutLeftBig { + 0% { + opacity: 1; + -webkit-transform: translateX(0); + } + 100% { + opacity: 0; + -webkit-transform: translateX(-2000px); + } +} +@keyframes fadeOutLeftBig { + 0% { + opacity: 1; + transform: translateX(0); + } + 100% { + opacity: 0; + transform: translateX(-2000px); + } +} +/* line 27, ../sass/animations/fade-exit/_fadeOutLeftBig.scss */ +.out .fadeOutLeftBig { + -webkit-animation-name: fadeOutLeftBig; + animation-name: fadeOutLeftBig; +} + +@-webkit-keyframes fadeOutRight { + 0% { + opacity: 1; + -webkit-transform: translateX(0); + } + 100% { + opacity: 0; + -webkit-transform: translateX(20px); + } +} +@keyframes fadeOutRight { + 0% { + opacity: 1; + transform: translateX(0); + } + 100% { + opacity: 0; + transform: translateX(20px); + } +} +/* line 27, ../sass/animations/fade-exit/_fadeOutRight.scss */ +.out .fadeOutRight { + -webkit-animation-name: fadeOutRight; + animation-name: fadeOutRight; +} + +@-webkit-keyframes fadeOutRightBig { + 0% { + opacity: 1; + -webkit-transform: translateX(0); + } + 100% { + opacity: 0; + -webkit-transform: translateX(2000px); + } +} +@keyframes fadeOutRightBig { + 0% { + opacity: 1; + transform: translateX(0); + } + 100% { + opacity: 0; + transform: translateX(2000px); + } +} +/* line 27, ../sass/animations/fade-exit/_fadeOutRightBig.scss */ +.out .fadeOutRightBig { + -webkit-animation-name: fadeOutRightBig; + animation-name: fadeOutRightBig; +} + +@-webkit-keyframes fadeOutUp { + 0% { + opacity: 1; + -webkit-transform: translateY(0); + } + 100% { + opacity: 0; + -webkit-transform: translateY(-20px); + } +} +@keyframes fadeOutUp { + 0% { + opacity: 1; + transform: translateY(0); + } + 100% { + opacity: 0; + transform: translateY(-20px); + } +} +/* line 27, ../sass/animations/fade-exit/_fadeOutUp.scss */ +.out .fadeOutUp { + -webkit-animation-name: fadeOutUp; + animation-name: fadeOutUp; +} + +@-webkit-keyframes fadeOutUpBig { + 0% { + opacity: 1; + -webkit-transform: translateY(0); + } + 100% { + opacity: 0; + -webkit-transform: translateY(-2000px); + } +} +@keyframes fadeOutUpBig { + 0% { + opacity: 1; + transform: translateY(0); + } + 100% { + opacity: 0; + transform: translateY(-2000px); + } +} +/* line 27, ../sass/animations/fade-exit/_fadeOutUpBig.scss */ +.out .fadeOutUpBig { + -webkit-animation-name: fadeOutUpBig; + animation-name: fadeOutUpBig; +} + +@-webkit-keyframes flipInX { + 0% { + -webkit-transform: perspective(400px) rotateX(90deg); + opacity: 0; + } + 40% { + -webkit-transform: perspective(400px) rotateX(-10deg); + } + 70% { + -webkit-transform: perspective(400px) rotateX(10deg); + } + 100% { + -webkit-transform: perspective(400px) rotateX(0deg); + opacity: 1; + } +} +@keyframes flipInX { + 0% { + transform: perspective(400px) rotateX(90deg); + opacity: 0; + } + 40% { + transform: perspective(400px) rotateX(-10deg); + } + 70% { + transform: perspective(400px) rotateX(10deg); + } + 100% { + transform: perspective(400px) rotateX(0deg); + opacity: 1; + } +} +/* line 43, ../sass/animations/flippers/_flipInX.scss */ +.in .flipInX { + -webkit-backface-visibility: visible !important; + backface-visibility: visible !important; + -webkit-animation-name: flipInX; + animation-name: flipInX; +} + +@-webkit-keyframes flipInY { + 0% { + -webkit-transform: perspective(400px) rotateY(90deg); + opacity: 0; + } + 40% { + -webkit-transform: perspective(400px) rotateY(-10deg); + } + 70% { + -webkit-transform: perspective(400px) rotateY(10deg); + } + 100% { + -webkit-transform: perspective(400px) rotateY(0deg); + opacity: 1; + } +} +@keyframes flipInY { + 0% { + transform: perspective(400px) rotateY(90deg); + opacity: 0; + } + 40% { + transform: perspective(400px) rotateY(-10deg); + } + 70% { + transform: perspective(400px) rotateY(10deg); + } + 100% { + transform: perspective(400px) rotateY(0deg); + opacity: 1; + } +} +/* line 43, ../sass/animations/flippers/_flipInY.scss */ +.in .flipInY { + -webkit-backface-visibility: visible !important; + backface-visibility: visible !important; + -webkit-animation-name: flipInY; + animation-name: flipInY; +} + +@-webkit-keyframes flipOutX { + 0% { + -webkit-transform: perspective(400px) rotateX(0deg); + opacity: 1; + } + 100% { + -webkit-transform: perspective(400px) rotateX(90deg); + opacity: 0; + } +} +@keyframes flipOutX { + 0% { + transform: perspective(400px) rotateX(0deg); + opacity: 1; + } + 100% { + transform: perspective(400px) rotateX(90deg); + opacity: 0; + } +} +/* line 25, ../sass/animations/flippers/_flipOutX.scss */ +.out .flipOutX { + -webkit-animation-name: flipOutX; + animation-name: flipOutX; + -webkit-backface-visibility: visible !important; + backface-visibility: visible !important; +} + +@-webkit-keyframes flipOutY { + 0% { + -webkit-transform: perspective(400px) rotateY(0deg); + opacity: 1; + } + 100% { + -webkit-transform: perspective(400px) rotateY(90deg); + opacity: 0; + } +} +@keyframes flipOutY { + 0% { + transform: perspective(400px) rotateY(0deg); + opacity: 1; + } + 100% { + transform: perspective(400px) rotateY(90deg); + opacity: 0; + } +} +/* line 25, ../sass/animations/flippers/_flipOutY.scss */ +.out .flipOutY { + -webkit-backface-visibility: visible !important; + backface-visibility: visible !important; + -webkit-animation-name: flipOutY; + animation-name: flipOutY; +} + +@-webkit-keyframes lightSpeedIn { + 0% { + -webkit-transform: translateX(100%) skewX(-30deg); + opacity: 0; + } + 60% { + -webkit-transform: translateX(-20%) skewX(30deg); + opacity: 1; + } + 80% { + -webkit-transform: translateX(0%) skewX(-15deg); + opacity: 1; + } + 100% { + -webkit-transform: translateX(0%) skewX(0deg); + opacity: 1; + } +} +@keyframes lightSpeedIn { + 0% { + transform: translateX(100%) skewX(-30deg); + opacity: 0; + } + 60% { + transform: translateX(-20%) skewX(30deg); + opacity: 1; + } + 80% { + transform: translateX(0%) skewX(-15deg); + opacity: 1; + } + 100% { + transform: translateX(0%) skewX(0deg); + opacity: 1; + } +} +/* line 17, ../sass/animations/lightspeed/_lightSpeedIn.scss */ +.in .lightSpeedIn { + -webkit-animation-name: lightSpeedIn; + animation-name: lightSpeedIn; + -webkit-animation-timing-function: ease-out; + animation-timing-function: ease-out; +} + +@-webkit-keyframes lightSpeedOut { + 0% { + -webkit-transform: translateX(0%) skewX(0deg); + opacity: 1; + } + 100% { + -webkit-transform: translateX(100%) skewX(-30deg); + opacity: 0; + } +} +@keyframes lightSpeedOut { + 0% { + transform: translateX(0%) skewX(0deg); + opacity: 1; + } + 100% { + transform: translateX(100%) skewX(-30deg); + opacity: 0; + } +} +/* line 13, ../sass/animations/lightspeed/_lightSpeedOut.scss */ +.out .lightSpeedOut { + -webkit-animation-name: lightSpeedOut; + animation-name: lightSpeedOut; + -webkit-animation-timing-function: ease-in; + animation-timing-function: ease-in; +} + +@-webkit-keyframes rotateIn { + 0% { + -webkit-transform-origin: center center; + -webkit-transform: rotate(-200deg); + opacity: 0; + } + 100% { + -webkit-transform-origin: center center; + -webkit-transform: rotate(0); + opacity: 1; + } +} +@keyframes rotateIn { + 0% { + transform-origin: center center; + transform: rotate(-200deg); + opacity: 0; + } + 100% { + transform-origin: center center; + transform: rotate(0); + opacity: 1; + } +} +/* line 31, ../sass/animations/rotate-enter/_rotateIn.scss */ +.in .rotateIn { + -webkit-animation-name: rotateIn; + animation-name: rotateIn; +} + +@-webkit-keyframes rotateInDownLeft { + 0% { + -webkit-transform-origin: left bottom; + -webkit-transform: rotate(-90deg); + opacity: 0; + } + 100% { + -webkit-transform-origin: left bottom; + -webkit-transform: rotate(0); + opacity: 1; + } +} +@keyframes rotateInDownLeft { + 0% { + transform-origin: left bottom; + transform: rotate(-90deg); + opacity: 0; + } + 100% { + transform-origin: left bottom; + transform: rotate(0); + opacity: 1; + } +} +/* line 31, ../sass/animations/rotate-enter/_rotateInDownLeft.scss */ +.in .rotateInDownLeft { + -webkit-animation-name: rotateInDownLeft; + animation-name: rotateInDownLeft; +} + +@-webkit-keyframes rotateInDownRight { + 0% { + -webkit-transform-origin: right bottom; + -webkit-transform: rotate(90deg); + opacity: 0; + } + 100% { + -webkit-transform-origin: right bottom; + -webkit-transform: rotate(0); + opacity: 1; + } +} +@keyframes rotateInDownRight { + 0% { + transform-origin: right bottom; + transform: rotate(90deg); + opacity: 0; + } + 100% { + transform-origin: right bottom; + transform: rotate(0); + opacity: 1; + } +} +/* line 31, ../sass/animations/rotate-enter/_rotateInDownRight.scss */ +.in .rotateInDownRight { + -webkit-animation-name: rotateInDownRight; + animation-name: rotateInDownRight; +} + +@-webkit-keyframes rotateInUpLeft { + 0% { + -webkit-transform-origin: left bottom; + -webkit-transform: rotate(90deg); + opacity: 0; + } + 100% { + -webkit-transform-origin: left bottom; + -webkit-transform: rotate(0); + opacity: 1; + } +} +@keyframes rotateInUpLeft { + 0% { + transform-origin: left bottom; + transform: rotate(90deg); + opacity: 0; + } + 100% { + transform-origin: left bottom; + transform: rotate(0); + opacity: 1; + } +} +/* line 31, ../sass/animations/rotate-enter/_rotateInUpLeft.scss */ +.in .rotateInUpLeft { + -webkit-animation-name: rotateInUpLeft; + animation-name: rotateInUpLeft; +} + +@-webkit-keyframes rotateInUpRight { + 0% { + -webkit-transform-origin: right bottom; + -webkit-transform: rotate(-90deg); + opacity: 0; + } + 100% { + -webkit-transform-origin: right bottom; + -webkit-transform: rotate(0); + opacity: 1; + } +} +@keyframes rotateInUpRight { + 0% { + transform-origin: right bottom; + transform: rotate(-90deg); + opacity: 0; + } + 100% { + transform-origin: right bottom; + transform: rotate(0); + opacity: 1; + } +} +/* line 31, ../sass/animations/rotate-enter/_rotateInUpRight.scss */ +.in .rotateInUpRight { + -webkit-animation-name: rotateInUpRight; + animation-name: rotateInUpRight; +} + +@-webkit-keyframes rotateOut { + 0% { + -webkit-transform-origin: center center; + -webkit-transform: rotate(0); + opacity: 1; + } + 100% { + -webkit-transform-origin: center center; + -webkit-transform: rotate(200deg); + opacity: 0; + } +} +@keyframes rotateOut { + 0% { + transform-origin: center center; + transform: rotate(0); + opacity: 1; + } + 100% { + transform-origin: center center; + transform: rotate(200deg); + opacity: 0; + } +} +/* line 31, ../sass/animations/rotate-exit/_rotateOut.scss */ +.out .rotateOut { + -webkit-animation-name: rotateOut; + animation-name: rotateOut; +} + +@-webkit-keyframes rotateOutDownLeft { + 0% { + -webkit-transform-origin: left bottom; + -webkit-transform: rotate(0); + opacity: 1; + } + 100% { + -webkit-transform-origin: left bottom; + -webkit-transform: rotate(90deg); + opacity: 0; + } +} +@keyframes rotateOutDownLeft { + 0% { + transform-origin: left bottom; + transform: rotate(0); + opacity: 1; + } + 100% { + transform-origin: left bottom; + transform: rotate(90deg); + opacity: 0; + } +} +/* line 31, ../sass/animations/rotate-exit/_rotateOutDownLeft.scss */ +.out .rotateOutDownLeft { + -webkit-animation-name: rotateOutDownLeft; + animation-name: rotateOutDownLeft; +} + +@-webkit-keyframes rotateOutDownRight { + 0% { + -webkit-transform-origin: right bottom; + -webkit-transform: rotate(0); + opacity: 1; + } + 100% { + -webkit-transform-origin: right bottom; + -webkit-transform: rotate(-90deg); + opacity: 0; + } +} +@keyframes rotateOutDownRight { + 0% { + transform-origin: right bottom; + transform: rotate(0); + opacity: 1; + } + 100% { + transform-origin: right bottom; + transform: rotate(-90deg); + opacity: 0; + } +} +/* line 31, ../sass/animations/rotate-exit/_rotateOutDownRight.scss */ +.out .rotateOutDownRight { + -webkit-animation-name: rotateOutDownRight; + animation-name: rotateOutDownRight; +} + +@-webkit-keyframes rotateOutUpLeft { + 0% { + -webkit-transform-origin: left bottom; + -webkit-transform: rotate(0); + opacity: 1; + } + 100% { + -webkit-transform-origin: left bottom; + -webkit-transform: rotate(-90deg); + opacity: 0; + } +} +@keyframes rotateOutUpLeft { + 0% { + transform-origin: left bottom; + transform: rotate(0); + opacity: 1; + } + 100% { + -transform-origin: left bottom; + -transform: rotate(-90deg); + opacity: 0; + } +} +/* line 31, ../sass/animations/rotate-exit/_rotateOutUpLeft.scss */ +.out .rotateOutUpLeft { + -webkit-animation-name: rotateOutUpLeft; + animation-name: rotateOutUpLeft; +} + +@-webkit-keyframes rotateOutUpRight { + 0% { + -webkit-transform-origin: right bottom; + -webkit-transform: rotate(0); + opacity: 1; + } + 100% { + -webkit-transform-origin: right bottom; + -webkit-transform: rotate(90deg); + opacity: 0; + } +} +@keyframes rotateOutUpRight { + 0% { + transform-origin: right bottom; + transform: rotate(0); + opacity: 1; + } + 100% { + transform-origin: right bottom; + transform: rotate(90deg); + opacity: 0; + } +} +/* line 30, ../sass/animations/rotate-exit/_rotateOutUpRight.scss */ +.out .rotateOutUpRight { + -webkit-animation-name: rotateOutUpRight; + animation-name: rotateOutUpRight; +} + +@-webkit-keyframes slideInDown { + 0% { + -webkit-transform: translate3d(0, -100%, 0); + visibility: visible; + } + 100% { + -webkit-transform: translate3d(0, 0, 0); + } +} +@keyframes slideInDown { + 0% { + transform: translate3d(0, -100%, 0); + visibility: visible; + } + 100% { + transform: translate3d(0, 0, 0); + } +} +/* line 25, ../sass/animations/slide-enter/_slideInDown.scss */ +.in .slideInDown { + -webkit-animation-name: slideInDown; + animation-name: slideInDown; +} + +@-webkit-keyframes slideInLeft { + 0% { + -webkit-transform: translate3d(-100%, 0, 0); + visibility: visible; + } + 100% { + -webkit-transform: translate3d(0, 0, 0); + } +} +@keyframes slideInLeft { + 0% { + transform: translate3d(-100%, 0, 0); + visibility: visible; + } + 100% { + transform: translate3d(0, 0, 0); + } +} +/* line 25, ../sass/animations/slide-enter/_slideInLeft.scss */ +.in .slideInLeft { + -webkit-animation-name: slideInLeft; + animation-name: slideInLeft; +} + +@-webkit-keyframes slideInRight { + 0% { + -webkit-transform: translate3d(100%, 0, 0); + visibility: visible; + } + 100% { + -webkit-transform: translate3d(0, 0, 0); + } +} +@keyframes slideInRight { + 0% { + transform: translate3d(100%, 0, 0); + visibility: visible; + } + 100% { + transform: translate3d(0, 0, 0); + } +} +/* line 25, ../sass/animations/slide-enter/_slideInRight.scss */ +.in .slideInRight { + -webkit-animation-name: slideInRight; + animation-name: slideInRight; +} + +@-webkit-keyframes slideInUp { + 0% { + -webkit-transform: translate3d(0, 100%, 0); + visibility: visible; + } + 100% { + -webkit-transform: translate3d(0, 0, 0); + } +} +@keyframes slideInUp { + 0% { + transform: translate3d(0, 100%, 0); + visibility: visible; + } + 100% { + transform: translate3d(0, 0, 0); + } +} +/* line 25, ../sass/animations/slide-enter/_slideInUp.scss */ +.in .slideInUp { + -webkit-animation-name: slideInUp; + animation-name: slideInUp; +} + +@-webkit-keyframes slideOutDown { + 0% { + -webkit-transform: translate3d(0, 0, 0); + visibility: visible; + } + 100% { + -webkit-transform: translate3d(0, 100%, 0); + } +} +@keyframes slideOutDown { + 0% { + transform: translate3d(0, 0, 0); + visibility: visible; + } + 100% { + transform: translate3d(0, 100%, 0); + } +} +/* line 25, ../sass/animations/slide-exit/_slideOutDown.scss */ +.out .slideOutDown { + -webkit-animation-name: slideOutDown; + animation-name: slideOutDown; +} + +@-webkit-keyframes slideOutLeft { + 0% { + -webkit-transform: translate3d(0, 0, 0); + visibility: visible; + } + 100% { + -webkit-transform: translate3d(-100%, 0, 0); + } +} +@keyframes slideOutLeft { + 0% { + transform: translate3d(0, 0, 0); + visibility: visible; + } + 100% { + transform: translate3d(-100%, 0, 0); + } +} +/* line 25, ../sass/animations/slide-exit/_slideOutLeft.scss */ +.out .slideOutLeft { + -webkit-animation-name: slideOutLeft; + animation-name: slideOutLeft; +} + +@-webkit-keyframes slideOutRight { + 0% { + -webkit-transform: translate3d(0, 0, 0); + visibility: visible; + } + 100% { + -webkit-transform: translate3d(100%, 0, 0); + } +} +@keyframes slideOutRight { + 0% { + transform: translate3d(0, 0, 0); + visibility: visible; + } + 100% { + transform: translate3d(100%, 0, 0); + } +} +/* line 25, ../sass/animations/slide-exit/_slideOutRight.scss */ +.out .slideOutRight { + -webkit-animation-name: slideOutRight; + animation-name: slideOutRight; +} + +@-webkit-keyframes slideOutUp { + 0% { + -webkit-transform: translate3d(0, 0, 0); + visibility: visible; + } + 100% { + -webkit-transform: translate3d(0, -100%, 0); + } +} +@keyframes slideOutUp { + 0% { + transform: translate3d(0, 0, 0); + visibility: visible; + } + 100% { + transform: translate3d(0, -100%, 0); + } +} +/* line 25, ../sass/animations/slide-exit/_slideOutUp.scss */ +.out .slideOutUp { + -webkit-animation-name: slideOutUp; + animation-name: slideOutUp; +} + +@-webkit-keyframes hinge { + 0% { + -webkit-transform: rotate(0); + -webkit-transform-origin: top left; + -webkit-animation-timing-function: ease-in-out; + } + 20%, 60% { + -webkit-transform: rotate(80deg); + -webkit-transform-origin: top left; + -webkit-animation-timing-function: ease-in-out; + } + 40% { + -webkit-transform: rotate(60deg); + -webkit-transform-origin: top left; + -webkit-animation-timing-function: ease-in-out; + } + 80% { + -webkit-transform: rotate(60deg) translateY(0); + opacity: 1; + -webkit-transform-origin: top left; + -webkit-animation-timing-function: ease-in-out; + } + 100% { + -webkit-transform: translateY(700px); + opacity: 0; + } +} +@keyframes hinge { + 0% { + transform: rotate(0); + transform-origin: top left; + animation-timing-function: ease-in-out; + } + 20%, 60% { + transform: rotate(80deg); + transform-origin: top left; + animation-timing-function: ease-in-out; + } + 40% { + transform: rotate(60deg); + transform-origin: top left; + animation-timing-function: ease-in-out; + } + 80% { + transform: rotate(60deg) translateY(0); + opacity: 1; + transform-origin: top left; + animation-timing-function: ease-in-out; + } + 100% { + transform: translateY(700px); + opacity: 0; + } +} +/* line 19, ../sass/animations/special/_hinge.scss */ +.out .hingeOut { + -webkit-animation-name: hinge; + animation-name: hinge; +} + +@-webkit-keyframes rollIn { + 0% { + opacity: 0; + -webkit-transform: translateX(-100%) rotate(-120deg); + } + 100% { + opacity: 1; + -webkit-transform: translateX(0px) rotate(0deg); + } +} +@keyframes rollIn { + 0% { + opacity: 0; + transform: translateX(-100%) rotate(-120deg); + } + 100% { + opacity: 1; + transform: translateX(0px) rotate(0deg); + } +} +/* line 15, ../sass/animations/special/_rollIn.scss */ +.in .rollIn { + -webkit-animation-name: rollIn; + animation-name: rollIn; +} + +@-webkit-keyframes rollOut { + 0% { + opacity: 1; + -webkit-transform: translateX(0px) rotate(0deg); + } + 100% { + opacity: 0; + -webkit-transform: translateX(100%) rotate(120deg); + } +} +@keyframes rollOut { + 0% { + opacity: 1; + transform: translateX(0px) rotate(0deg); + } + 100% { + opacity: 0; + transform: translateX(100%) rotate(120deg); + } +} +/* line 29, ../sass/animations/special/_rollOut.scss */ +.out .rollOut { + -webkit-animation-name: rollOut; + animation-name: rollOut; +} + +@-webkit-keyframes zoomIn { + 0% { + opacity: 0; + -webkit-transform: scale3d(0.3, 0.3, 0.3); + } + 50% { + opacity: 1; + } +} +@keyframes zoomIn { + 0% { + opacity: 0; + transform: scale3d(0.3, 0.3, 0.3); + } + 50% { + opacity: 1; + } +} +/* line 24, ../sass/animations/zoom-enter/_zoomIn.scss */ +.in .zoomIn { + -webkit-animation-name: zoomIn; + animation-name: zoomIn; +} + +@-webkit-keyframes zoomInDown { + 0% { + opacity: 0; + -webkit-transform: scale3d(0.1, 0.1, 0.1) translate3d(0, -1000px, 0); + -webkit-animation-timing-function: cubic-bezier(0.55, 0.055, 0.675, 0.19); + } + 60% { + opacity: 1; + -webkit-transform: scale3d(0.475, 0.475, 0.475) translate3d(0, 60px, 0); + -webkit-animation-timing-function: cubic-bezier(0.175, 0.885, 0.32, 1); + } +} +@keyframes zoomInDown { + 0% { + opacity: 0; + transform: scale3d(0.1, 0.1, 0.1) translate3d(0, -1000px, 0); + animation-timing-function: cubic-bezier(0.55, 0.055, 0.675, 0.19); + } + 60% { + opacity: 1; + transform: scale3d(0.475, 0.475, 0.475) translate3d(0, 60px, 0); + animation-timing-function: cubic-bezier(0.175, 0.885, 0.32, 1); + } +} +/* line 27, ../sass/animations/zoom-enter/_zoomInDown.scss */ +.in .zoomInDown { + -webkit-animation-name: zoomInDown; + animation-name: zoomInDown; +} + +@-webkit-keyframes zoomInLeft { + 0% { + opacity: 0; + -webkit-transform: scale3d(0.1, 0.1, 0.1) translate3d(-1000px, 0, 0); + -webkit-animation-timing-function: cubic-bezier(0.55, 0.055, 0.675, 0.19); + } + 60% { + opacity: 1; + -webkit-transform: scale3d(0.475, 0.475, 0.475) translate3d(10px, 0, 0); + -webkit-animation-timing-function: cubic-bezier(0.175, 0.885, 0.32, 1); + } +} +@keyframes zoomInLeft { + 0% { + opacity: 0; + transform: scale3d(0.1, 0.1, 0.1) translate3d(-1000px, 0, 0); + animation-timing-function: cubic-bezier(0.55, 0.055, 0.675, 0.19); + } + 60% { + opacity: 1; + transform: scale3d(0.475, 0.475, 0.475) translate3d(10px, 0, 0); + animation-timing-function: cubic-bezier(0.175, 0.885, 0.32, 1); + } +} +/* line 27, ../sass/animations/zoom-enter/_zoomInLeft.scss */ +.in .zoomInLeft { + -webkit-animation-name: zoomInLeft; + animation-name: zoomInLeft; +} + +@-webkit-keyframes zoomInRight { + 0% { + opacity: 0; + -webkit-transform: scale3d(0.1, 0.1, 0.1) translate3d(1000px, 0, 0); + -webkit-animation-timing-function: cubic-bezier(0.55, 0.055, 0.675, 0.19); + } + 60% { + opacity: 1; + -webkit-transform: scale3d(0.475, 0.475, 0.475) translate3d(-10px, 0, 0); + -webkit-animation-timing-function: cubic-bezier(0.175, 0.885, 0.32, 1); + } +} +@keyframes zoomInRight { + 0% { + opacity: 0; + transform: scale3d(0.1, 0.1, 0.1) translate3d(1000px, 0, 0); + animation-timing-function: cubic-bezier(0.55, 0.055, 0.675, 0.19); + } + 60% { + opacity: 1; + transform: scale3d(0.475, 0.475, 0.475) translate3d(-10px, 0, 0); + animation-timing-function: cubic-bezier(0.175, 0.885, 0.32, 1); + } +} +/* line 27, ../sass/animations/zoom-enter/_zoomInRight.scss */ +.in .zoomInRight { + -webkit-animation-name: zoomInRight; + animation-name: zoomInRight; +} + +@-webkit-keyframes zoomInUp { + 0% { + opacity: 0; + -webkit-transform: scale3d(0.1, 0.1, 0.1) translate3d(0, 1000px, 0); + -webkit-animation-timing-function: cubic-bezier(0.55, 0.055, 0.675, 0.19); + } + 60% { + opacity: 1; + -webkit-transform: scale3d(0.475, 0.475, 0.475) translate3d(0, -60px, 0); + -webkit-animation-timing-function: cubic-bezier(0.175, 0.885, 0.32, 1); + } +} +@keyframes zoomInUp { + 0% { + opacity: 0; + transform: scale3d(0.1, 0.1, 0.1) translate3d(0, 1000px, 0); + animation-timing-function: cubic-bezier(0.55, 0.055, 0.675, 0.19); + } + 60% { + opacity: 1; + transform: scale3d(0.475, 0.475, 0.475) translate3d(0, -60px, 0); + animation-timing-function: cubic-bezier(0.175, 0.885, 0.32, 1); + } +} +/* line 27, ../sass/animations/zoom-enter/_zoomInUp.scss */ +.in .zoomInUp { + -webkit-animation-name: zoomInUp; + animation-name: zoomInUp; +} + +@-webkit-keyframes zoomOut { + 0% { + opacity: 1; + } + 50% { + opacity: 0; + -webkit-transform: scale3d(0.3, 0.3, 0.3); + } + 100% { + opacity: 0; + } +} +@keyframes zoomOut { + 0% { + opacity: 1; + } + 50% { + opacity: 0; + transform: scale3d(0.3, 0.3, 0.3); + } + 100% { + opacity: 0; + } +} +/* line 28, ../sass/animations/zoom-exit/_zoomOut.scss */ +.out .zoomOut { + -webkit-animation-name: zoomOut; + animation-name: zoomOut; +} + +@-webkit-keyframes zoomOutDown { + 40% { + opacity: 1; + -webkit-transform: scale3d(0.475, 0.475, 0.475) translate3d(0, -60px, 0); + -webkit-animation-timing-function: cubic-bezier(0.55, 0.055, 0.675, 0.19); + } + 100% { + opacity: 0; + -webkit-transform: scale3d(0.1, 0.1, 0.1) translate3d(0, 2000px, 0); + -webkit-transform-origin: center bottom; + -webkit-animation-timing-function: cubic-bezier(0.175, 0.885, 0.32, 1); + } +} +@keyframes zoomOutDown { + 40% { + opacity: 1; + transform: scale3d(0.475, 0.475, 0.475) translate3d(0, -60px, 0); + animation-timing-function: cubic-bezier(0.55, 0.055, 0.675, 0.19); + } + 100% { + opacity: 0; + transform: scale3d(0.1, 0.1, 0.1) translate3d(0, 2000px, 0); + transform-origin: center bottom; + animation-timing-function: cubic-bezier(0.175, 0.885, 0.32, 1); + } +} +/* line 28, ../sass/animations/zoom-exit/_zoomOutDown.scss */ +.out .zoomOutDown { + -webkit-animation-name: zoomOutDown; + animation-name: zoomOutDown; +} + +@-webkit-keyframes zoomOutLeft { + 40% { + opacity: 1; + -webkit-transform: scale3d(0.475, 0.475, 0.475) translate3d(42px, 0, 0); + } + 100% { + opacity: 0; + -webkit-transform: scale3d(0.1) translate3d(-2000px, 0, 0); + -webkit-transform-origin: left center; + } +} +@keyframes zoomOutLeft { + 40% { + opacity: 1; + transform: scale3d(0.475, 0.475, 0.475) translate3d(42px, 0, 0); + } + 100% { + opacity: 0; + transform: scale3d(0.1) translate3d(-2000px, 0, 0); + transform-origin: left center; + } +} +/* line 26, ../sass/animations/zoom-exit/_zoomOutLeft.scss */ +.out .zoomOutLeft { + -webkit-animation-name: zoomOutLeft; + animation-name: zoomOutLeft; +} + +@-webkit-keyframes zoomOutRight { + 40% { + opacity: 1; + -webkit-transform: scale3d(0.475, 0.475, 0.475) translate3d(-42px, 0, 0); + } + 100% { + opacity: 0; + -webkit-transform: scale3d(0.1) translate3d(2000px, 0, 0); + -webkit-transform-origin: right center; + } +} +@keyframes zoomOutRight { + 40% { + opacity: 1; + transform: scale3d(0.475, 0.475, 0.475) translate3d(-42px, 0, 0); + } + 100% { + opacity: 0; + transform: scale3d(0.1) translate3d(2000px, 0, 0); + transform-origin: right center; + } +} +/* line 26, ../sass/animations/zoom-exit/_zoomOutRight.scss */ +.out .zoomOutRight { + -webkit-animation-name: zoomOutRight; + animation-name: zoomOutRight; +} + +@-webkit-keyframes zoomOutUp { + 40% { + opacity: 1; + -webkit-transform: scale3d(0.475, 0.475, 0.475) translate3d(0, 60px, 0); + -webkit-animation-timing-function: cubic-bezier(0.55, 0.055, 0.675, 0.19); + } + 100% { + opacity: 0; + -webkit-transform: scale3d(0.1, 0.1, 0.1) translate3d(0, -2000px, 0); + -webkit-transform-origin: center bottom; + -webkit-animation-timing-function: cubic-bezier(0.175, 0.885, 0.32, 1); + } +} +@keyframes zoomOutUp { + 40% { + opacity: 1; + transform: scale3d(0.475, 0.475, 0.475) translate3d(0, 60px, 0); + animation-timing-function: cubic-bezier(0.55, 0.055, 0.675, 0.19); + } + 100% { + opacity: 0; + transform: scale3d(0.1, 0.1, 0.1) translate3d(0, -2000px, 0); + transform-origin: center bottom; + animation-timing-function: cubic-bezier(0.175, 0.885, 0.32, 1); + } +} +/* line 28, ../sass/animations/zoom-exit/_zoomOutUp.scss */ +.out .zoomOutUp { + -webkit-animation-name: zoomOutUp; + animation-name: zoomOutUp; +} diff --git a/src/css/jquery.bxslider.css b/src/css/jquery.bxslider.css index c18fd726..d9e3ec92 100644 --- a/src/css/jquery.bxslider.css +++ b/src/css/jquery.bxslider.css @@ -43,7 +43,7 @@ ul.bxslider { /* LOADER */ .bx-wrapper .bx-loading { min-height: 50px; - background: url('images/bx_loader.gif') center center no-repeat #ffffff; + background: url('images/bx_loader.gif') center center no-repeat #fff; height: 100%; width: 100%; position: absolute; diff --git a/src/js/.jscsrc b/src/js/.jscsrc index 53173104..ec61cfce 100644 --- a/src/js/.jscsrc +++ b/src/js/.jscsrc @@ -75,7 +75,6 @@ "typeof" ], "safeContextKeyword": "el", - "validateLineBreaks": "LF", "validateQuoteMarks": "'", "validateIndentation": 2 } \ No newline at end of file diff --git a/src/js/jquery.bxslider.js b/src/js/jquery.bxslider.js index a0a834b6..f48423eb 100644 --- a/src/js/jquery.bxslider.js +++ b/src/js/jquery.bxslider.js @@ -1,7 +1,5 @@ ;(function($) { - var defaults = { - // GENERAL mode: 'horizontal', slideSelector: '', @@ -23,21 +21,17 @@ responsive: true, slideZIndex: 50, wrapperClass: 'bx-wrapper', - // TOUCH touchEnabled: true, swipeThreshold: 50, oneToOneTouch: true, preventDefaultSwipeX: true, preventDefaultSwipeY: false, - // ACCESSIBILITY ariaLive: true, ariaHidden: true, - // KEYBOARD keyboardEnabled: false, - // PAGER pager: true, pagerType: 'full', @@ -45,7 +39,6 @@ pagerSelector: null, buildPager: null, pagerCustom: null, - // CONTROLS controls: true, nextText: 'Next', @@ -57,7 +50,8 @@ stopText: 'Stop', autoControlsCombine: false, autoControlsSelector: null, - + pauseBeforeOut: 0, + pauseAfterIn: 0, // AUTO auto: false, pause: 4000, @@ -67,29 +61,36 @@ autoHover: false, autoDelay: 0, autoSlideForOnePage: false, - // CAROUSEL minSlides: 1, maxSlides: 1, moveSlides: 0, slideWidth: 0, shrinkItems: false, - // CALLBACKS - onSliderLoad: function() { return true; }, - onSlideBefore: function() { return true; }, - onSlideAfter: function() { return true; }, - onSlideNext: function() { return true; }, - onSlidePrev: function() { return true; }, - onSliderResize: function() { return true; } + onSliderLoad: function() { + return true; + }, + onSlideBefore: function() { + return true; + }, + onSlideAfter: function() { + return true; + }, + onSlideNext: function() { + return true; + }, + onSlidePrev: function() { + return true; + }, + onSliderResize: function() { + return true; + } }; - $.fn.bxSlider = function(options) { - if (this.length === 0) { return this; } - // support multiple elements if (this.length > 1) { this.each(function() { @@ -97,30 +98,28 @@ }); return this; } - // create a namespace to be used throughout the plugin - var slider = {}, - // set a reference to our slider element - el = this, - // get the original window dimens (thanks a lot IE) - windowWidth = $(window).width(), - windowHeight = $(window).height(); - + var slider = {}, // set a reference to our slider element + el = this, // get the original window dimens (thanks a lot IE) + windowWidth = $(window).width(), + windowHeight = $(window).height(); // Return if slider is already initialized - if ($(el).data('bxSlider')) { return; } - + if ($(el).data('bxSlider')) { + return; + } /** * =================================================================================== * = PRIVATE FUNCTIONS * =================================================================================== */ - /** * Initializes namespace settings to be used throughout plugin */ var init = function() { // Return if slider is already initialized - if ($(el).data('bxSlider')) { return; } + if ($(el).data('bxSlider')) { + return; + } // merge user-supplied options with the defaults slider.settings = $.extend({}, defaults, options); // parse slideWidth setting @@ -128,16 +127,26 @@ // store the original children slider.children = el.children(slider.settings.slideSelector); // check if actual number of slides is less than minSlides / maxSlides - if (slider.children.length < slider.settings.minSlides) { slider.settings.minSlides = slider.children.length; } - if (slider.children.length < slider.settings.maxSlides) { slider.settings.maxSlides = slider.children.length; } + if (slider.children.length < slider.settings.minSlides) { + slider.settings.minSlides = slider.children.length; + } + if (slider.children.length < slider.settings.maxSlides) { + slider.settings.maxSlides = slider.children.length; + } // if random start, set the startSlide setting to random number - if (slider.settings.randomStart) { slider.settings.startSlide = Math.floor(Math.random() * slider.children.length); } + if (slider.settings.randomStart) { + slider.settings.startSlide = Math.floor(Math.random() * slider.children.length); + } // store active slide information - slider.active = { index: slider.settings.startSlide }; + slider.active = { + index: slider.settings.startSlide + }; // store if the slider is in carousel mode (displaying / moving multiple slides) slider.carousel = slider.settings.minSlides > 1 || slider.settings.maxSlides > 1 ? true : false; // if carousel, force preloadImages = 'all' - if (slider.carousel) { slider.settings.preloadImages = 'all'; } + if (slider.carousel) { + slider.settings.preloadImages = 'all'; + } // calculate the min / max width thresholds based on min / max number of slides // used to setup and update carousel slides dimensions slider.minThreshold = (slider.settings.minSlides * slider.settings.slideWidth) + ((slider.settings.minSlides - 1) * slider.settings.slideMargin); @@ -153,9 +162,8 @@ // determine if hardware acceleration can be used slider.usingCSS = slider.settings.useCSS && slider.settings.mode !== 'fade' && (function() { // create our test div element - var div = document.createElement('div'), - // css transition properties - props = ['WebkitPerspective', 'MozPerspective', 'OPerspective', 'msPerspective']; + var div = document.createElement('div'), // css transition properties + props = ['WebkitPerspective', 'MozPerspective', 'OPerspective', 'msPerspective']; // test for each property for (var i = 0; i < props.length; i++) { if (div.style[props[i]] !== undefined) { @@ -167,28 +175,26 @@ return false; }()); // if vertical mode always make maxSlides and minSlides equal - if (slider.settings.mode === 'vertical') { slider.settings.maxSlides = slider.settings.minSlides; } + if (slider.settings.mode === 'vertical') { + slider.settings.maxSlides = slider.settings.minSlides; + } // save original style data el.data('origStyle', el.attr('style')); el.children(slider.settings.slideSelector).each(function() { $(this).data('origStyle', $(this).attr('style')); }); - // perform all DOM / CSS modifications setup(); }; - /** * Performs all DOM and CSS modifications */ var setup = function() { var preloadSelector = slider.children.eq(slider.settings.startSlide); // set the default preload selector (visible) - // wrap el in a wrapper el.wrap('
    '); // store a namespace reference to .bx-viewport slider.viewport = el.parent(); - // add aria-live if the setting is enabled and ticker mode is disabled if (slider.settings.ariaLive && !slider.settings.ticker) { slider.viewport.attr('aria-live', 'polite'); @@ -205,7 +211,7 @@ // if using CSS, add the easing property if (slider.usingCSS && slider.settings.easing) { el.css('-' + slider.cssPrefix + '-transition-timing-function', slider.settings.easing); - // if not using CSS and no easing value was supplied, use the default JS animation easing (swing) + // if not using CSS and no easing value was supplied, use the default JS animation easing (swing) } else if (!slider.settings.easing) { slider.settings.easing = 'swing'; } @@ -233,8 +239,12 @@ // apply the calculated width after the float is applied to prevent scrollbar interference slider.children.css('width', getSlideWidth()); // if slideMargin is supplied, add the css - if (slider.settings.mode === 'horizontal' && slider.settings.slideMargin > 0) { slider.children.css('marginRight', slider.settings.slideMargin); } - if (slider.settings.mode === 'vertical' && slider.settings.slideMargin > 0) { slider.children.css('marginBottom', slider.settings.slideMargin); } + if (slider.settings.mode === 'horizontal' && slider.settings.slideMargin > 0) { + slider.children.css('marginRight', slider.settings.slideMargin); + } + if (slider.settings.mode === 'vertical' && slider.settings.slideMargin > 0) { + slider.children.css('marginBottom', slider.settings.slideMargin); + } // if "fade" mode, add positioning and z-index CSS if (slider.settings.mode === 'fade') { slider.children.css({ @@ -243,59 +253,81 @@ display: 'none' }); // prepare the z-index on the showing element - slider.children.eq(slider.settings.startSlide).css({zIndex: slider.settings.slideZIndex, display: 'block'}); + slider.children.eq(slider.settings.startSlide).css({ + zIndex: slider.settings.slideZIndex, + display: 'block' + }); } + // Set animation class to 'out' + slider.children.removeClass('in').addClass('out'); + // create an element to contain all slider controls (pager, start / stop, etc) slider.controls.el = $('
    '); // if captions are requested, add them - if (slider.settings.captions) { appendCaptions(); } + if (slider.settings.captions) { + appendCaptions(); + } // check if startSlide is last slide slider.active.last = slider.settings.startSlide === getPagerQty() - 1; // if video is true, set up the fitVids plugin - if (slider.settings.video) { el.fitVids(); } - if (slider.settings.preloadImages === 'all' || slider.settings.ticker) { preloadSelector = slider.children; } + if (slider.settings.video) { + el.fitVids(); + } + if (slider.settings.preloadImages === 'all' || slider.settings.ticker) { + preloadSelector = slider.children; + } // only check for control addition if not in "ticker" mode if (!slider.settings.ticker) { // if controls are requested, add them - if (slider.settings.controls) { appendControls(); } + if (slider.settings.controls) { + appendControls(); + } // if auto is true, and auto controls are requested, add them - if (slider.settings.auto && slider.settings.autoControls) { appendControlsAuto(); } + if (slider.settings.auto && slider.settings.autoControls) { + appendControlsAuto(); + } // if pager is requested, add it - if (slider.settings.pager) { appendPager(); } + if (slider.settings.pager) { + appendPager(); + } // if any control option is requested, add the controls wrapper - if (slider.settings.controls || slider.settings.autoControls || slider.settings.pager) { slider.viewport.after(slider.controls.el); } - // if ticker mode, do not allow a pager + if (slider.settings.controls || slider.settings.autoControls || slider.settings.pager) { + slider.viewport.after(slider.controls.el); + } + // if ticker mode, do not allow a pager } else { slider.settings.pager = false; } loadElements(preloadSelector, start); }; - var loadElements = function(selector, callback) { var total = selector.find('img:not([src=""]), iframe').length, - count = 0; + count = 0; if (total === 0) { callback(); return; } selector.find('img:not([src=""]), iframe').each(function() { $(this).one('load error', function() { - if (++count === total) { callback(); } + if (++count === total) { + callback(); + } }).each(function() { - if (this.complete) { $(this).load(); } + if (this.complete) { + $(this).load(); + } }); }); }; - /** * Start the slider */ var start = function() { // if infinite loop, prepare additional slides if (slider.settings.infiniteLoop && slider.settings.mode !== 'fade' && !slider.settings.ticker) { - var slice = slider.settings.mode === 'vertical' ? slider.settings.minSlides : slider.settings.maxSlides, - sliceAppend = slider.children.slice(0, slice).clone(true).addClass('bx-clone'), - slicePrepend = slider.children.slice(-slice).clone(true).addClass('bx-clone'); + var slice = slider.settings.mode === 'vertical' ? slider.settings.minSlides : slider.settings.maxSlides, + sliceAppend = slider.children.slice(0, slice).clone(true).addClass('bx-clone'), + slicePrepend = slider.children.slice(-slice).clone(true).addClass('bx-clone'); if (slider.settings.ariaHidden) { sliceAppend.attr('aria-hidden', true); slicePrepend.attr('aria-hidden', true); @@ -307,33 +339,49 @@ // set the left / top position of "el" setSlidePosition(); // if "vertical" mode, always use adaptiveHeight to prevent odd behavior - if (slider.settings.mode === 'vertical') { slider.settings.adaptiveHeight = true; } + if (slider.settings.mode === 'vertical') { + slider.settings.adaptiveHeight = true; + } // set the viewport height slider.viewport.height(getViewportHeight()); // make sure everything is positioned just right (same as a window resize) el.redrawSlider(); // onSliderLoad callback slider.settings.onSliderLoad.call(el, slider.active.index); + setTimeout(function() { + slider.children.eq(slider.active.index).removeClass('out').addClass('in'); + }, 1500); // slider has been fully initialized slider.initialized = true; // bind the resize call to the window - if (slider.settings.responsive) { $(window).bind('resize', resizeWindow); } + if (slider.settings.responsive) { + $(window).bind('resize', resizeWindow); + } // if auto is true and has more than 1 page, start the show - if (slider.settings.auto && slider.settings.autoStart && (getPagerQty() > 1 || slider.settings.autoSlideForOnePage)) { initAuto(); } + if (slider.settings.auto && slider.settings.autoStart && (getPagerQty() > 1 || slider.settings.autoSlideForOnePage)) { + initAuto(); + } // if ticker is true, start the ticker - if (slider.settings.ticker) { initTicker(); } + if (slider.settings.ticker) { + initTicker(); + } // if pager is requested, make the appropriate pager link active - if (slider.settings.pager) { updatePagerActive(slider.settings.startSlide); } + if (slider.settings.pager) { + updatePagerActive(slider.settings.startSlide); + } // check for any updates to the controls (like hideControlOnEnd updates) - if (slider.settings.controls) { updateDirectionControls(); } + if (slider.settings.controls) { + updateDirectionControls(); + } // if touchEnabled is true, setup the touch events - if (slider.settings.touchEnabled && !slider.settings.ticker) { initTouch(); } + if (slider.settings.touchEnabled && !slider.settings.ticker) { + initTouch(); + } // if keyboardEnabled is true, setup the keyboard events if (slider.settings.keyboardEnabled && !slider.settings.ticker) { $(document).keydown(keyPress); } }; - /** * Returns the calculated height of the viewport, used to determine either adaptiveHeight or the maxHeight value */ @@ -348,7 +396,7 @@ // if not carousel, return the single active child if (!slider.carousel) { children = slider.children.eq(slider.active.index); - // if carousel, return a slice of children + // if carousel, return a slice of children } else { // get the individual slide index var currentIndex = slider.settings.moveSlides === 1 ? slider.active.index : slider.active.index * getMoveBy(); @@ -374,23 +422,19 @@ if (slider.settings.slideMargin > 0) { height += slider.settings.slideMargin * (slider.settings.minSlides - 1); } - // if not "vertical" mode, calculate the max height of the children + // if not "vertical" mode, calculate the max height of the children } else { height = Math.max.apply(Math, children.map(function() { return $(this).outerHeight(false); }).get()); } - if (slider.viewport.css('box-sizing') === 'border-box') { - height += parseFloat(slider.viewport.css('padding-top')) + parseFloat(slider.viewport.css('padding-bottom')) + - parseFloat(slider.viewport.css('border-top-width')) + parseFloat(slider.viewport.css('border-bottom-width')); + height += parseFloat(slider.viewport.css('padding-top')) + parseFloat(slider.viewport.css('padding-bottom')) + parseFloat(slider.viewport.css('border-top-width')) + parseFloat(slider.viewport.css('border-bottom-width')); } else if (slider.viewport.css('box-sizing') === 'padding-box') { height += parseFloat(slider.viewport.css('padding-top')) + parseFloat(slider.viewport.css('padding-bottom')); } - return height; }; - /** * Returns the calculated width to be used for the outer wrapper / viewport */ @@ -405,19 +449,16 @@ } return width; }; - /** * Returns the calculated width to be applied to each slide */ var getSlideWidth = function() { var newElWidth = slider.settings.slideWidth, // start with any user-supplied slide width - wrapWidth = slider.viewport.width(); // get the current viewport width + wrapWidth = slider.viewport.width(); // get the current viewport width // if slide width was not supplied, or is larger than the viewport use the viewport width - if (slider.settings.slideWidth === 0 || - (slider.settings.slideWidth > wrapWidth && !slider.carousel) || - slider.settings.mode === 'vertical') { + if (slider.settings.slideWidth === 0 || (slider.settings.slideWidth > wrapWidth && !slider.carousel) || slider.settings.mode === 'vertical') { newElWidth = wrapWidth; - // if carousel, use the thresholds to determine the width + // if carousel, use the thresholds to determine the width } else if (slider.settings.maxSlides > 1 && slider.settings.mode === 'horizontal') { if (wrapWidth > slider.maxThreshold) { return newElWidth; @@ -429,40 +470,37 @@ } return newElWidth; }; - /** * Returns the number of slides currently visible in the viewport (includes partially visible slides) */ var getNumberSlidesShowing = function() { var slidesShowing = 1, - childWidth = null; + childWidth = null; if (slider.settings.mode === 'horizontal' && slider.settings.slideWidth > 0) { // if viewport is smaller than minThreshold, return minSlides if (slider.viewport.width() < slider.minThreshold) { slidesShowing = slider.settings.minSlides; - // if viewport is larger than maxThreshold, return maxSlides + // if viewport is larger than maxThreshold, return maxSlides } else if (slider.viewport.width() > slider.maxThreshold) { slidesShowing = slider.settings.maxSlides; - // if viewport is between min / max thresholds, divide viewport width by first child width + // if viewport is between min / max thresholds, divide viewport width by first child width } else { childWidth = slider.children.first().width() + slider.settings.slideMargin; - slidesShowing = Math.floor((slider.viewport.width() + - slider.settings.slideMargin) / childWidth); + slidesShowing = Math.floor((slider.viewport.width() + slider.settings.slideMargin) / childWidth); } - // if "vertical" mode, slides showing will always be minSlides + // if "vertical" mode, slides showing will always be minSlides } else if (slider.settings.mode === 'vertical') { slidesShowing = slider.settings.minSlides; } return slidesShowing; }; - /** * Returns the number of pages (one full viewport of slides is one "page") */ var getPagerQty = function() { var pagerQty = 0, - breakPoint = 0, - counter = 0; + breakPoint = 0, + counter = 0; // if moveSlides is specified by the user if (slider.settings.moveSlides > 0) { if (slider.settings.infiniteLoop) { @@ -475,13 +513,12 @@ counter += slider.settings.moveSlides <= getNumberSlidesShowing() ? slider.settings.moveSlides : getNumberSlidesShowing(); } } - // if moveSlides is 0 (auto) divide children length by sides showing, then round up + // if moveSlides is 0 (auto) divide children length by sides showing, then round up } else { pagerQty = Math.ceil(slider.children.length / getNumberSlidesShowing()); } return pagerQty; }; - /** * Returns the number of individual slides by which to shift the slider */ @@ -493,7 +530,6 @@ // if moveSlides is 0 (auto) return getNumberSlidesShowing(); }; - /** * Sets the slider's (el) left or top position */ @@ -514,20 +550,24 @@ // set the top position setPositionProperty(-position.top, 'reset', 0); } - // if not last slide + // if not last slide } else { // get the position of the first showing slide position = slider.children.eq(slider.active.index * getMoveBy()).position(); // check for last slide - if (slider.active.index === getPagerQty() - 1) { slider.active.last = true; } + if (slider.active.index === getPagerQty() - 1) { + slider.active.last = true; + } // set the respective position if (position !== undefined) { - if (slider.settings.mode === 'horizontal') { setPositionProperty(-position.left, 'reset', 0); } - else if (slider.settings.mode === 'vertical') { setPositionProperty(-position.top, 'reset', 0); } + if (slider.settings.mode === 'horizontal') { + setPositionProperty(-position.left, 'reset', 0); + } else if (slider.settings.mode === 'vertical') { + setPositionProperty(-position.top, 'reset', 0); + } } } }; - /** * Sets the el's animating property position (which in turn will sometimes animate el). * If using CSS, sets the transform property. If not using CSS, sets the top / left property. @@ -559,7 +599,9 @@ // bind a callback method - executes when CSS transition completes el.bind('transitionend webkitTransitionEnd oTransitionEnd MSTransitionEnd', function(e) { //make sure it's the correct one - if (!$(e.target).is(el)) { return; } + if (!$(e.target).is(el)) { + return; + } // unbind the callback el.unbind('transitionend webkitTransitionEnd oTransitionEnd MSTransitionEnd'); updateAfterSlideTransition(); @@ -576,7 +618,9 @@ if (duration !== 0) { el.bind('transitionend webkitTransitionEnd oTransitionEnd MSTransitionEnd', function(e) { //make sure it's the correct one - if (!$(e.target).is(el)) { return; } + if (!$(e.target).is(el)) { + return; + } // unbind the callback el.unbind('transitionend webkitTransitionEnd oTransitionEnd MSTransitionEnd'); // reset the position @@ -589,7 +633,7 @@ tickerLoop(); } } - // use JS animate + // use JS animate } else { animateObj = {}; animateObj[slider.animProp] = value; @@ -608,14 +652,13 @@ } } }; - /** * Populates the pager with proper amount of pages */ var populatePager = function() { var pagerHtml = '', - linkContent = '', - pagerQty = getPagerQty(); + linkContent = '', + pagerQty = getPagerQty(); // loop through each pager item for (var i = 0; i < pagerQty; i++) { linkContent = ''; @@ -634,7 +677,6 @@ // populate the pager element with pager links slider.pagerEl.html(pagerHtml); }; - /** * Appends the pager to the controls element */ @@ -645,7 +687,7 @@ // if a pager selector was supplied, populate it with the pager if (slider.settings.pagerSelector) { $(slider.settings.pagerSelector).html(slider.pagerEl); - // if no pager selector was supplied, add it after the wrapper + // if no pager selector was supplied, add it after the wrapper } else { slider.controls.el.addClass('bx-has-pager').append(slider.pagerEl); } @@ -657,7 +699,6 @@ // assign the pager click binding slider.pagerEl.on('click touchend', 'a', clickPagerBind); }; - /** * Appends prev / next controls to the controls element */ @@ -685,7 +726,6 @@ slider.controls.el.addClass('bx-has-controls-direction').append(slider.controls.directionEl); } }; - /** * Appends start / stop auto controls to the controls element */ @@ -700,21 +740,20 @@ // if autoControlsCombine, insert only the "start" control if (slider.settings.autoControlsCombine) { slider.controls.autoEl.append(slider.controls.start); - // if autoControlsCombine is false, insert both controls + // if autoControlsCombine is false, insert both controls } else { slider.controls.autoEl.append(slider.controls.start).append(slider.controls.stop); } // if auto controls selector was supplied, populate it with the controls if (slider.settings.autoControlsSelector) { $(slider.settings.autoControlsSelector).html(slider.controls.autoEl); - // if auto controls selector was not supplied, add it after the wrapper + // if auto controls selector was not supplied, add it after the wrapper } else { slider.controls.el.addClass('bx-has-controls-auto').append(slider.controls.autoEl); } // update the auto controls updateAutoControls(slider.settings.autoStart ? 'stop' : 'start'); }; - /** * Appends image captions to the DOM */ @@ -729,7 +768,6 @@ } }); }; - /** * Click next binding * @@ -738,12 +776,15 @@ */ var clickNextBind = function(e) { e.preventDefault(); - if (slider.controls.el.hasClass('disabled')) { return; } + if (slider.controls.el.hasClass('disabled')) { + return; + } // if auto show is running, stop it - if (slider.settings.auto && slider.settings.stopAutoOnClick) { el.stopAuto(); } + if (slider.settings.auto && slider.settings.stopAutoOnClick) { + el.stopAuto(); + } el.goToNextSlide(); }; - /** * Click prev binding * @@ -752,12 +793,15 @@ */ var clickPrevBind = function(e) { e.preventDefault(); - if (slider.controls.el.hasClass('disabled')) { return; } + if (slider.controls.el.hasClass('disabled')) { + return; + } // if auto show is running, stop it - if (slider.settings.auto && slider.settings.stopAutoOnClick) { el.stopAuto(); } + if (slider.settings.auto && slider.settings.stopAutoOnClick) { + el.stopAuto(); + } el.goToPrevSlide(); }; - /** * Click start binding * @@ -768,7 +812,6 @@ el.startAuto(); e.preventDefault(); }; - /** * Click stop binding * @@ -779,7 +822,6 @@ el.stopAuto(); e.preventDefault(); }; - /** * Click pager binding * @@ -793,15 +835,18 @@ return; } // if auto show is running, stop it - if (slider.settings.auto && slider.settings.stopAutoOnClick) { el.stopAuto(); } + if (slider.settings.auto && slider.settings.stopAutoOnClick) { + el.stopAuto(); + } pagerLink = $(e.currentTarget); if (pagerLink.attr('data-slide-index') !== undefined) { pagerIndex = parseInt(pagerLink.attr('data-slide-index')); // if clicked pager link is not active, continue with the goToSlide call - if (pagerIndex !== slider.active.index) { el.goToSlide(pagerIndex); } + if (pagerIndex !== slider.active.index) { + el.goToSlideDelayed(pagerIndex); + } } }; - /** * Updates the pager links with an active class * @@ -821,9 +866,10 @@ // remove all pager active classes slider.pagerEl.find('a').removeClass('active'); // apply the active class for all pagers - slider.pagerEl.each(function(i, el) { $(el).find('a').eq(slideIndex).addClass('active'); }); + slider.pagerEl.each(function(i, el) { + $(el).find('a').eq(slideIndex).addClass('active'); + }); }; - /** * Performs needed actions after a slide transition */ @@ -835,16 +881,19 @@ if (slider.active.index === 0) { // set the new position position = slider.children.eq(0).position(); - // carousel, last slide + // carousel, last slide } else if (slider.active.index === getPagerQty() - 1 && slider.carousel) { position = slider.children.eq((getPagerQty() - 1) * getMoveBy()).position(); - // last slide + // last slide } else if (slider.active.index === slider.children.length - 1) { position = slider.children.eq(slider.children.length - 1).position(); } if (position) { - if (slider.settings.mode === 'horizontal') { setPositionProperty(-position.left, 'reset', 0); } - else if (slider.settings.mode === 'vertical') { setPositionProperty(-position.top, 'reset', 0); } + if (slider.settings.mode === 'horizontal') { + setPositionProperty(-position.left, 'reset', 0); + } else if (slider.settings.mode === 'vertical') { + setPositionProperty(-position.top, 'reset', 0); + } } } // declare that the transition is complete @@ -852,7 +901,6 @@ // onSlideAfter callback slider.settings.onSlideAfter.call(el, slider.children.eq(slider.active.index), slider.oldIndex, slider.active.index); }; - /** * Updates the auto controls state (either active, or combined switch) * @@ -863,13 +911,12 @@ // if autoControlsCombine is true, replace the current control with the new state if (slider.settings.autoControlsCombine) { slider.controls.autoEl.html(slider.controls[state]); - // if autoControlsCombine is false, apply the "active" class to the appropriate control + // if autoControlsCombine is false, apply the "active" class to the appropriate control } else { slider.controls.autoEl.find('a').removeClass('active'); slider.controls.autoEl.find('a:not(.bx-' + state + ')').addClass('active'); } }; - /** * Updates the direction controls (checks if either should be hidden) */ @@ -882,18 +929,17 @@ if (slider.active.index === 0) { slider.controls.prev.addClass('disabled'); slider.controls.next.removeClass('disabled'); - // if last slide + // if last slide } else if (slider.active.index === getPagerQty() - 1) { slider.controls.next.addClass('disabled'); slider.controls.prev.removeClass('disabled'); - // if any slide in the middle + // if any slide in the middle } else { slider.controls.prev.removeClass('disabled'); slider.controls.next.removeClass('disabled'); } } }; - /** * Initializes the auto process */ @@ -901,10 +947,9 @@ // if autoDelay was supplied, launch the auto show using a setTimeout() call if (slider.settings.autoDelay > 0) { var timeout = setTimeout(el.startAuto, slider.settings.autoDelay); - // if autoDelay was not supplied, start the auto show normally + // if autoDelay was not supplied, start the auto show normally } else { el.startAuto(); - //add focus and blur events to ensure its running if timeout gets paused $(window).focus(function() { el.startAuto(); @@ -934,17 +979,16 @@ }); } }; - /** * Initializes the ticker process */ var initTicker = function() { var startPosition = 0, - position, transform, value, idx, ratio, property, newSpeed, totalDimens; + position, transform, value, idx, ratio, property, newSpeed, totalDimens; // if autoDirection is "next", append a clone of the entire slider if (slider.settings.autoDirection === 'next') { el.append(slider.children.clone().addClass('bx-clone')); - // if autoDirection is "prev", prepend a clone of the entire slider, and set the left position + // if autoDirection is "prev", prepend a clone of the entire slider, and set the left position } else { el.prepend(slider.children.clone().addClass('bx-clone')); position = slider.children.first().position(); @@ -999,57 +1043,58 @@ // start the ticker loop tickerLoop(); }; - /** * Runs a continuous loop, news ticker-style */ var tickerLoop = function(resumeSpeed) { var speed = resumeSpeed ? resumeSpeed : slider.settings.speed, - position = {left: 0, top: 0}, - reset = {left: 0, top: 0}, - animateProperty, resetValue, params; - + position = { + left: 0, + top: 0 + }, + reset = { + left: 0, + top: 0 + }, + animateProperty, resetValue, params; // if "next" animate left position to last child, then reset left to 0 if (slider.settings.autoDirection === 'next') { position = el.find('.bx-clone').first().position(); - // if "prev" animate left position to 0, then reset left to first non-clone child + // if "prev" animate left position to 0, then reset left to first non-clone child } else { reset = slider.children.first().position(); } animateProperty = slider.settings.mode === 'horizontal' ? -position.left : -position.top; resetValue = slider.settings.mode === 'horizontal' ? -reset.left : -reset.top; - params = {resetValue: resetValue}; + params = { + resetValue: resetValue + }; setPositionProperty(animateProperty, 'ticker', speed, params); }; - /** * Check if el is on screen */ var isOnScreen = function(el) { var win = $(window), - viewport = { - top: win.scrollTop(), - left: win.scrollLeft() - }, - bounds = el.offset(); - + viewport = { + top: win.scrollTop(), + left: win.scrollLeft() + }, + bounds = el.offset(); viewport.right = viewport.left + win.width(); viewport.bottom = viewport.top + win.height(); bounds.right = bounds.left + el.outerWidth(); bounds.bottom = bounds.top + el.outerHeight(); - return (!(viewport.right < bounds.left || viewport.left > bounds.right || viewport.bottom < bounds.top || viewport.top > bounds.bottom)); }; - /** * Initializes keyboard events */ var keyPress = function(e) { var activeElementTag = document.activeElement.tagName.toLowerCase(), - tagFilters = 'input|textarea', - p = new RegExp(activeElementTag,['i']), - result = p.exec(tagFilters); - + tagFilters = 'input|textarea', + p = new RegExp(activeElementTag, ['i']), + result = p.exec(tagFilters); if (result == null && isOnScreen(el)) { if (e.keyCode === 39) { clickNextBind(e); @@ -1060,18 +1105,22 @@ } } }; - /** * Initializes touch events */ var initTouch = function() { // initialize object to contain all touch values slider.touch = { - start: {x: 0, y: 0}, - end: {x: 0, y: 0} + start: { + x: 0, + y: 0 + }, + end: { + x: 0, + y: 0 + } }; slider.viewport.bind('touchstart MSPointerDown pointerdown', onTouchStart); - //for browsers that have implemented pointer events and fire a click after //every pointerup regardless of whether pointerup is on same screen location as pointerdown or not slider.viewport.on('click', '.bxslider a', function(e) { @@ -1081,7 +1130,6 @@ } }); }; - /** * Event handler for "touchstart" * @@ -1091,7 +1139,6 @@ var onTouchStart = function(e) { //disable slider controls while user is interacting with slides to avoid slider freeze that happens on touch devices when a slide swipe happens immediately after interacting with slider controls slider.controls.el.addClass('disabled'); - if (slider.working) { e.preventDefault(); slider.controls.el.removeClass('disabled'); @@ -1099,11 +1146,10 @@ // record the original position when touch starts slider.touch.originalPos = el.position(); var orig = e.originalEvent, - touchPoints = (typeof orig.changedTouches !== 'undefined') ? orig.changedTouches : [orig]; + touchPoints = (typeof orig.changedTouches !== 'undefined') ? orig.changedTouches : [orig]; // record the starting touch x, y coordinates slider.touch.start.x = touchPoints[0].pageX; slider.touch.start.y = touchPoints[0].pageY; - if (slider.viewport.get(0).setPointerCapture) { slider.pointerId = orig.pointerId; slider.viewport.get(0).setPointerCapture(slider.pointerId); @@ -1115,7 +1161,6 @@ slider.viewport.bind('MSPointerCancel pointercancel', onPointerCancel); } }; - /** * Cancel Pointer for Windows Phone * @@ -1126,7 +1171,6 @@ /* onPointerCancel handler is needed to deal with situations when a touchend doesn't fire after a touchstart (this happens on windows phones only) */ setPositionProperty(slider.touch.originalPos.left, 'reset', 0); - //remove handlers slider.controls.el.removeClass('disabled'); slider.viewport.unbind('MSPointerCancel pointercancel', onPointerCancel); @@ -1136,7 +1180,6 @@ slider.viewport.get(0).releasePointerCapture(slider.pointerId); } }; - /** * Event handler for "touchmove" * @@ -1145,17 +1188,15 @@ */ var onTouchMove = function(e) { var orig = e.originalEvent, - touchPoints = (typeof orig.changedTouches !== 'undefined') ? orig.changedTouches : [orig], - // if scrolling on y axis, do not prevent default - xMovement = Math.abs(touchPoints[0].pageX - slider.touch.start.x), - yMovement = Math.abs(touchPoints[0].pageY - slider.touch.start.y), - value = 0, - change = 0; - + touchPoints = (typeof orig.changedTouches !== 'undefined') ? orig.changedTouches : [orig], // if scrolling on y axis, do not prevent default + xMovement = Math.abs(touchPoints[0].pageX - slider.touch.start.x), + yMovement = Math.abs(touchPoints[0].pageY - slider.touch.start.y), + value = 0, + change = 0; // x axis swipe if ((xMovement * 3) > yMovement && slider.settings.preventDefaultSwipeX) { e.preventDefault(); - // y axis swipe + // y axis swipe } else if ((yMovement * 3) > xMovement && slider.settings.preventDefaultSwipeY) { e.preventDefault(); } @@ -1164,7 +1205,7 @@ if (slider.settings.mode === 'horizontal') { change = touchPoints[0].pageX - slider.touch.start.x; value = slider.touch.originalPos.left + change; - // if vertical, drag along y axis + // if vertical, drag along y axis } else { change = touchPoints[0].pageY - slider.touch.start.y; value = slider.touch.originalPos.top + change; @@ -1172,7 +1213,6 @@ setPositionProperty(value, 'reset', 0); } }; - /** * Event handler for "touchend" * @@ -1183,10 +1223,10 @@ slider.viewport.unbind('touchmove MSPointerMove pointermove', onTouchMove); //enable slider controls as soon as user stops interacing with slides slider.controls.el.removeClass('disabled'); - var orig = e.originalEvent, - touchPoints = (typeof orig.changedTouches !== 'undefined') ? orig.changedTouches : [orig], - value = 0, - distance = 0; + var orig = e.originalEvent, + touchPoints = (typeof orig.changedTouches !== 'undefined') ? orig.changedTouches : [orig], + value = 0, + distance = 0; // record end x, y positions slider.touch.end.x = touchPoints[0].pageX; slider.touch.end.y = touchPoints[0].pageY; @@ -1201,7 +1241,7 @@ } el.stopAuto(); } - // not fade mode + // not fade mode } else { // calculate distance and el's animate property if (slider.settings.mode === 'horizontal') { @@ -1234,20 +1274,21 @@ slider.viewport.get(0).releasePointerCapture(slider.pointerId); } }; - /** * Window resize event callback */ var resizeWindow = function(e) { // don't do anything if slider isn't initialized. - if (!slider.initialized) { return; } + if (!slider.initialized) { + return; + } // Delay if slider working. if (slider.working) { window.setTimeout(resizeWindow, 10); } else { // get the new window dimens (again, thank you IE) var windowWidthNew = $(window).width(), - windowHeightNew = $(window).height(); + windowHeightNew = $(window).height(); // make sure that it is a true window resize // *we must check this because our dinosaur friend IE fires a window resize event when certain DOM elements // are resized. Can you just die already?* @@ -1262,7 +1303,6 @@ } } }; - /** * Adds an aria-hidden=true attribute to each element * @@ -1279,7 +1319,6 @@ slider.children.slice(startVisibleIndex, startVisibleIndex + numberOfSlidesShowing).attr('aria-hidden', 'false'); } }; - /** * Returns index according to present page range * @@ -1290,11 +1329,11 @@ if (slideIndex < 0) { if (slider.settings.infiniteLoop) { return getPagerQty() - 1; - }else { + } else { //we don't go to undefined slides return slider.active.index; } - // if slideIndex is greater than children length, set active index to 0 (this happens during infinite loop) + // if slideIndex is greater than children length, set active index to 0 (this happens during infinite loop) } else if (slideIndex >= getPagerQty()) { if (slider.settings.infiniteLoop) { return 0; @@ -1302,18 +1341,16 @@ //we don't move to undefined pages return slider.active.index; } - // set active index to requested slide + // set active index to requested slide } else { return slideIndex; } }; - /** * =================================================================================== * = PUBLIC FUNCTIONS * =================================================================================== */ - /** * Performs slide transition to the specified slide * @@ -1327,29 +1364,30 @@ // onSlideBefore, onSlideNext, onSlidePrev callbacks // Allow transition canceling based on returned value var performTransition = true, - moveBy = 0, - position = {left: 0, top: 0}, - lastChild = null, - lastShowingIndex, eq, value, requestEl; + moveBy = 0, + position = { + left: 0, + top: 0 + }, + lastChild = null, + lastShowingIndex, eq, value, requestEl; // store the old index slider.oldIndex = slider.active.index; //set new index slider.active.index = setSlideIndex(slideIndex); - // if plugin is currently in motion, ignore request - if (slider.working || slider.active.index === slider.oldIndex) { return; } + if (slider.working || slider.active.index === slider.oldIndex) { + return; + } // declare that plugin is in motion slider.working = true; - performTransition = slider.settings.onSlideBefore.call(el, slider.children.eq(slider.active.index), slider.oldIndex, slider.active.index); - // If transitions canceled, reset and return if (typeof (performTransition) !== 'undefined' && !performTransition) { slider.active.index = slider.oldIndex; // restore old index slider.working = false; // is not in motion return; } - if (direction === 'next') { // Prevent canceling in future functions or lack there-of from negating previous commands to cancel if (!slider.settings.onSlideNext.call(el, slider.children.eq(slider.active.index), slider.oldIndex, slider.active.index)) { @@ -1361,31 +1399,40 @@ performTransition = false; } } - // check if last slide slider.active.last = slider.active.index >= getPagerQty() - 1; // update the pager with active class - if (slider.settings.pager || slider.settings.pagerCustom) { updatePagerActive(slider.active.index); } + if (slider.settings.pager || slider.settings.pagerCustom) { + updatePagerActive(slider.active.index); + } // // check for direction control update - if (slider.settings.controls) { updateDirectionControls(); } + if (slider.settings.controls) { + updateDirectionControls(); + } // if slider is set to mode: "fade" if (slider.settings.mode === 'fade') { // if adaptiveHeight is true and next height is different from current height, animate to the new height if (slider.settings.adaptiveHeight && slider.viewport.height() !== getViewportHeight()) { - slider.viewport.animate({height: getViewportHeight()}, slider.settings.adaptiveHeightSpeed); + slider.viewport.animate({ + height: getViewportHeight() + }, slider.settings.adaptiveHeightSpeed); } // fade out the visible child and reset its z-index value - slider.children.filter(':visible').fadeOut(slider.settings.speed).css({zIndex: 0}); + slider.children.filter(':visible').fadeOut(slider.settings.speed).css({ + zIndex: 0 + }); // fade in the newly requested slide slider.children.eq(slider.active.index).css('zIndex', slider.settings.slideZIndex + 1).fadeIn(slider.settings.speed, function() { $(this).css('zIndex', slider.settings.slideZIndex); updateAfterSlideTransition(); }); - // slider mode is not "fade" + // slider mode is not "fade" } else { // if adaptiveHeight is true and next height is different from current height, animate to the new height if (slider.settings.adaptiveHeight && slider.viewport.height() !== getViewportHeight()) { - slider.viewport.animate({height: getViewportHeight()}, slider.settings.adaptiveHeightSpeed); + slider.viewport.animate({ + height: getViewportHeight() + }, slider.settings.adaptiveHeightSpeed); } // if carousel and not infinite loop if (!slider.settings.infiniteLoop && slider.carousel && slider.active.last) { @@ -1406,18 +1453,17 @@ eq = slider.settings.moveSlides === 1 ? slider.settings.maxSlides - getMoveBy() : ((getPagerQty() - 1) * getMoveBy()) - (slider.children.length - slider.settings.maxSlides); lastChild = el.children('.bx-clone').eq(eq); position = lastChild.position(); - // if infinite loop and "Next" is clicked on the last slide + // if infinite loop and "Next" is clicked on the last slide } else if (direction === 'next' && slider.active.index === 0) { // get the last clone position position = el.find('> .bx-clone').eq(slider.settings.maxSlides).position(); slider.active.last = false; - // normal non-zero requests + // normal non-zero requests } else if (slideIndex >= 0) { //parseInt is applied to allow floats for slides/page requestEl = slideIndex * parseInt(getMoveBy()); position = slider.children.eq(requestEl).position(); } - /* If the position doesn't exist * (e.g. if you destroy the slider on a next click), * it doesn't throw an error. @@ -1430,29 +1476,57 @@ slider.working = false; } } - if (slider.settings.ariaHidden) { applyAriaHiddenAttributes(slider.active.index * getMoveBy()); } + if (slider.settings.ariaHidden) { + applyAriaHiddenAttributes(slider.active.index * getMoveBy()); + } + setTimeout(function() { + slider.children.eq(slider.active.index).removeClass('out').addClass('in'); + }, 200); + }; + /** + * Performs slide transition to the specified slide with delay + + to allow perform single elements out animation + * + * @param slideIndex (int) + * - the destination slide's index (zero-based) + * + * @param direction (string) + * - INTERNAL USE ONLY - the direction of travel ("prev" / "next") + **/ + el.goToSlideDelayed = function(slideIndex, direction) { + var theSlide = slider.children.eq(slideIndex); + var customDelay = parseInt(theSlide.attr('data-pauseBeforeOut')) || slider.settings.pauseBeforeOut; + slider.children.eq(slider.active.index).removeClass('in').addClass('out'); + if (!customDelay) { + el.goToSlide(slideIndex, direction); + } else { + setTimeout(function() { + el.goToSlide(slideIndex, direction); + }, customDelay); + } }; - /** * Transitions to the next slide in the show */ el.goToNextSlide = function() { // if infiniteLoop is false and last page is showing, disregard call - if (!slider.settings.infiniteLoop && slider.active.last) { return; } + if (!slider.settings.infiniteLoop && slider.active.last) { + return; + } var pagerIndex = parseInt(slider.active.index) + 1; - el.goToSlide(pagerIndex, 'next'); + el.goToSlideDelayed(pagerIndex, 'next'); }; - /** * Transitions to the prev slide in the show */ el.goToPrevSlide = function() { // if infiniteLoop is false and last page is showing, disregard call - if (!slider.settings.infiniteLoop && slider.active.index === 0) { return; } + if (!slider.settings.infiniteLoop && slider.active.index === 0) { + return; + } var pagerIndex = parseInt(slider.active.index) - 1; - el.goToSlide(pagerIndex, 'prev'); + el.goToSlideDelayed(pagerIndex, 'prev'); }; - /** * Starts the auto show * @@ -1461,19 +1535,30 @@ */ el.startAuto = function(preventControlUpdate) { // if an interval already exists, disregard call - if (slider.interval) { return; } + var theSlide = slider.children.eq(slider.active.index); + // Checking if current slide defines a custom delay + // delay is the sum of pauseAfterIn and pause. This allow to define a global pause (for reading) + // and a customized pause for completition of single elements animations + var customDelay = parseInt(theSlide.attr('data-pauseAfterInt')) || slider.settings.pauseAfterIn || 0; + customDelay += parseInt(theSlide.attr('data-pause')) || slider.settings.pause || 0; + if (slider.interval || (!customDelay)) { + return; + } // create an interval - slider.interval = setInterval(function() { + slider.interval = setTimeout(function() { if (slider.settings.autoDirection === 'next') { el.goToNextSlide(); } else { el.goToPrevSlide(); } - }, slider.settings.pause); + slider.interval = 0; + el.startAuto(preventControlUpdate); + }, customDelay); // if auto controls are displayed and preventControlUpdate is not true - if (slider.settings.autoControls && preventControlUpdate !== true) { updateAutoControls('stop'); } + if (slider.settings.autoControls && preventControlUpdate !== true) { + updateAutoControls('stop'); + } }; - /** * Stops the auto show * @@ -1482,28 +1567,29 @@ */ el.stopAuto = function(preventControlUpdate) { // if no interval exists, disregard call - if (!slider.interval) { return; } + if (!slider.interval) { + return; + } // clear the interval clearInterval(slider.interval); slider.interval = null; // if auto controls are displayed and preventControlUpdate is not true - if (slider.settings.autoControls && preventControlUpdate !== true) { updateAutoControls('start'); } + if (slider.settings.autoControls && preventControlUpdate !== true) { + updateAutoControls('start'); + } }; - /** * Returns current slide index (zero-based) */ el.getCurrentSlide = function() { return slider.active.index; }; - /** * Returns current slide element */ el.getCurrentSlideElement = function() { return slider.children.eq(slider.active.index); }; - /** * Returns a slide element * @param index (int) @@ -1512,21 +1598,18 @@ el.getSlideElement = function(index) { return slider.children.eq(index); }; - /** * Returns number of slides in show */ el.getSlideCount = function() { return slider.children.length; }; - /** * Return slider.working variable */ el.isWorking = function() { return slider.working; }; - /** * Update all dynamic slider elements */ @@ -1536,26 +1619,35 @@ // adjust the height slider.viewport.css('height', getViewportHeight()); // update the slide position - if (!slider.settings.ticker) { setSlidePosition(); } + if (!slider.settings.ticker) { + setSlidePosition(); + } // if active.last was true before the screen resize, we want // to keep it last no matter what screen size we end on - if (slider.active.last) { slider.active.index = getPagerQty() - 1; } + if (slider.active.last) { + slider.active.index = getPagerQty() - 1; + } // if the active index (page) no longer exists due to the resize, simply set the index as last - if (slider.active.index >= getPagerQty()) { slider.active.last = true; } + if (slider.active.index >= getPagerQty()) { + slider.active.last = true; + } // if a pager is being displayed and a custom pager is not being used, update it if (slider.settings.pager && !slider.settings.pagerCustom) { populatePager(); updatePagerActive(slider.active.index); } - if (slider.settings.ariaHidden) { applyAriaHiddenAttributes(slider.active.index * getMoveBy()); } + if (slider.settings.ariaHidden) { + applyAriaHiddenAttributes(slider.active.index * getMoveBy()); + } }; - /** * Destroy the current instance of the slider (revert everything back to original state) */ el.destroySlider = function() { // don't do anything if slider has already been destroyed - if (!slider.initialized) { return; } + if (!slider.initialized) { + return; + } slider.initialized = false; $('.bx-clone', this).remove(); slider.children.each(function() { @@ -1571,36 +1663,47 @@ $(this).removeAttr('style'); } $(this).unwrap().unwrap(); - if (slider.controls.el) { slider.controls.el.remove(); } - if (slider.controls.next) { slider.controls.next.remove(); } - if (slider.controls.prev) { slider.controls.prev.remove(); } - if (slider.pagerEl && slider.settings.controls && !slider.settings.pagerCustom) { slider.pagerEl.remove(); } + if (slider.controls.el) { + slider.controls.el.remove(); + } + if (slider.controls.next) { + slider.controls.next.remove(); + } + if (slider.controls.prev) { + slider.controls.prev.remove(); + } + if (slider.pagerEl && slider.settings.controls && !slider.settings.pagerCustom) { + slider.pagerEl.remove(); + } $('.bx-caption', this).remove(); - if (slider.controls.autoEl) { slider.controls.autoEl.remove(); } + if (slider.controls.autoEl) { + slider.controls.autoEl.remove(); + } clearInterval(slider.interval); - if (slider.settings.responsive) { $(window).unbind('resize', resizeWindow); } - if (slider.settings.keyboardEnabled) { $(document).unbind('keydown', keyPress); } + if (slider.settings.responsive) { + $(window).unbind('resize', resizeWindow); + } + if (slider.settings.keyboardEnabled) { + $(document).unbind('keydown', keyPress); + } //remove self reference in data $(this).removeData('bxSlider'); }; - /** * Reload the slider (revert all DOM changes, and re-initialize) */ el.reloadSlider = function(settings) { - if (settings !== undefined) { options = settings; } + if (settings !== undefined) { + options = settings; + } el.destroySlider(); init(); //store reference to self in order to access public functions later $(el).data('bxSlider', this); }; - init(); - $(el).data('bxSlider', this); - // returns the current jQuery object return this; }; - })(jQuery); diff --git a/src/sass/_animate.scss b/src/sass/_animate.scss new file mode 100644 index 00000000..76cbab6d --- /dev/null +++ b/src/sass/_animate.scss @@ -0,0 +1,98 @@ +//////////////////////////////////////////////////////////// +// Import everything to generate your animate sass module // +//////////////////////////////////////////////////////////// +@import "helpers/mixins", + "helpers/settings", + "helpers/base"; + +// ATTENTION +@import "animations/attention-seekers/bounce", + "animations/attention-seekers/flash", + "animations/attention-seekers/pulse", + "animations/attention-seekers/shake", + "animations/attention-seekers/swing", + "animations/attention-seekers/wiggle", + "animations/attention-seekers/wobble", + "animations/attention-seekers/tada"; + +// BOUNCE +@import "animations/bounce-enter/bounceIn", + "animations/bounce-enter/bounceInDown", + "animations/bounce-enter/bounceInLeft", + "animations/bounce-enter/bounceInRight", + "animations/bounce-enter/bounceInUp", + "animations/bounce-exit/bounceOut", + "animations/bounce-exit/bounceOutDown", + "animations/bounce-exit/bounceOutLeft", + "animations/bounce-exit/bounceOutRight", + "animations/bounce-exit/bounceOutUp"; + +// FADE +@import "animations/fade-enter/fadeIn", + "animations/fade-enter/fadeInDown", + "animations/fade-enter/fadeInDownBig", + "animations/fade-enter/fadeInLeft", + "animations/fade-enter/fadeInLeftBig", + "animations/fade-enter/fadeInRight", + "animations/fade-enter/fadeInRightBig", + "animations/fade-enter/fadeInUp", + "animations/fade-enter/fadeInUpBig", + "animations/fade-exit/fadeOut", + "animations/fade-exit/fadeOutDown", + "animations/fade-exit/fadeOutDownBig", + "animations/fade-exit/fadeOutLeft", + "animations/fade-exit/fadeOutLeftBig", + "animations/fade-exit/fadeOutRight", + "animations/fade-exit/fadeOutRightBig", + "animations/fade-exit/fadeOutUp", + "animations/fade-exit/fadeOutUpBig"; + +// FLIP +@import "animations/flippers/flip", + "animations/flippers/flipInX", + "animations/flippers/flipInY", + "animations/flippers/flipOutX", + "animations/flippers/flipOutY"; + +// LIGHTSPEED +@import "animations/lightspeed/lightSpeedIn", + "animations/lightspeed/lightSpeedOut"; + +// ROTATE +@import "animations/rotate-enter/rotateIn", + "animations/rotate-enter/rotateInDownLeft", + "animations/rotate-enter/rotateInDownRight", + "animations/rotate-enter/rotateInUpLeft", + "animations/rotate-enter/rotateInUpRight", + "animations/rotate-exit/rotateOut", + "animations/rotate-exit/rotateOutDownLeft", + "animations/rotate-exit/rotateOutDownRight", + "animations/rotate-exit/rotateOutUpLeft", + "animations/rotate-exit/rotateOutUpRight"; + +// SLIDE +@import "animations/slide-enter/slideInDown", + "animations/slide-enter/slideInLeft", + "animations/slide-enter/slideInRight", + "animations/slide-enter/slideInUp", + "animations/slide-exit/slideOutDown", + "animations/slide-exit/slideOutLeft", + "animations/slide-exit/slideOutRight", + "animations/slide-exit/slideOutUp"; + +// SPECIAL +@import "animations/special/hinge", + "animations/special/rollIn", + "animations/special/rollOut"; + +// ZOOM +@import "animations/zoom-enter/zoomIn", + "animations/zoom-enter/zoomInDown", + "animations/zoom-enter/zoomInLeft", + "animations/zoom-enter/zoomInRight", + "animations/zoom-enter/zoomInUp", + "animations/zoom-exit/zoomOut", + "animations/zoom-exit/zoomOutDown", + "animations/zoom-exit/zoomOutLeft", + "animations/zoom-exit/zoomOutRight", + "animations/zoom-exit/zoomOutUp"; diff --git a/src/sass/animate_custom.scss b/src/sass/animate_custom.scss new file mode 100644 index 00000000..669e0af8 --- /dev/null +++ b/src/sass/animate_custom.scss @@ -0,0 +1,112 @@ +$use-all : false !default; // all animations status +$use-fade : true !default; // all fades +$use-bounce : true !default; // all bounces +$use-rotate : true !default; // all rotates +$use-slide : true !default; // all slide animations +$use-flipers : true !default; // all flip animations +$use-light-speed : true !default; // all light speed animations +$use-attention-seekers : false !default; // all attention seeker animations +$use-special : true !default; // all special animations +$use-zoom : true !default; // all zoom animations +$use-flip : false !default; + +//////////////////////////////////////////////////////////// +// Import everything to generate your animate sass module // +//////////////////////////////////////////////////////////// +@import "helpers/mixins", + "helpers/settings", + "helpers/base", + "helpers/delay"; + + +// ATTENTION +@import "animations/attention-seekers/bounce", + "animations/attention-seekers/flash", + "animations/attention-seekers/pulse", + "animations/attention-seekers/shake", + "animations/attention-seekers/swing", + "animations/attention-seekers/wiggle", + "animations/attention-seekers/wobble", + "animations/attention-seekers/tada"; + +// BOUNCE +@import "animations/bounce-enter/bounceIn", + "animations/bounce-enter/bounceInDown", + "animations/bounce-enter/bounceInLeft", + "animations/bounce-enter/bounceInRight", + "animations/bounce-enter/bounceInUp", + "animations/bounce-exit/bounceOut", + "animations/bounce-exit/bounceOutDown", + "animations/bounce-exit/bounceOutLeft", + "animations/bounce-exit/bounceOutRight", + "animations/bounce-exit/bounceOutUp"; + +// FADE +@import "animations/fade-enter/fadeIn", + "animations/fade-enter/fadeInDown", + "animations/fade-enter/fadeInDownBig", + "animations/fade-enter/fadeInLeft", + "animations/fade-enter/fadeInLeftBig", + "animations/fade-enter/fadeInRight", + "animations/fade-enter/fadeInRightBig", + "animations/fade-enter/fadeInUp", + "animations/fade-enter/fadeInUpBig", + "animations/fade-exit/fadeOut", + "animations/fade-exit/fadeOutDown", + "animations/fade-exit/fadeOutDownBig", + "animations/fade-exit/fadeOutLeft", + "animations/fade-exit/fadeOutLeftBig", + "animations/fade-exit/fadeOutRight", + "animations/fade-exit/fadeOutRightBig", + "animations/fade-exit/fadeOutUp", + "animations/fade-exit/fadeOutUpBig"; + +// FLIP +@import "animations/flippers/flip", + "animations/flippers/flipInX", + "animations/flippers/flipInY", + "animations/flippers/flipOutX", + "animations/flippers/flipOutY"; + +// LIGHTSPEED +@import "animations/lightspeed/lightSpeedIn", + "animations/lightspeed/lightSpeedOut"; + +// ROTATE +@import "animations/rotate-enter/rotateIn", + "animations/rotate-enter/rotateInDownLeft", + "animations/rotate-enter/rotateInDownRight", + "animations/rotate-enter/rotateInUpLeft", + "animations/rotate-enter/rotateInUpRight", + "animations/rotate-exit/rotateOut", + "animations/rotate-exit/rotateOutDownLeft", + "animations/rotate-exit/rotateOutDownRight", + "animations/rotate-exit/rotateOutUpLeft", + "animations/rotate-exit/rotateOutUpRight"; + +// SLIDE +@import "animations/slide-enter/slideInDown", + "animations/slide-enter/slideInLeft", + "animations/slide-enter/slideInRight", + "animations/slide-enter/slideInUp", + "animations/slide-exit/slideOutDown", + "animations/slide-exit/slideOutLeft", + "animations/slide-exit/slideOutRight", + "animations/slide-exit/slideOutUp"; + +// SPECIAL +@import "animations/special/hinge", + "animations/special/rollIn", + "animations/special/rollOut"; + +// ZOOM +@import "animations/zoom-enter/zoomIn", + "animations/zoom-enter/zoomInDown", + "animations/zoom-enter/zoomInLeft", + "animations/zoom-enter/zoomInRight", + "animations/zoom-enter/zoomInUp", + "animations/zoom-exit/zoomOut", + "animations/zoom-exit/zoomOutDown", + "animations/zoom-exit/zoomOutLeft", + "animations/zoom-exit/zoomOutRight", + "animations/zoom-exit/zoomOutUp"; diff --git a/src/sass/animations/attention-seekers/_bounce.scss b/src/sass/animations/attention-seekers/_bounce.scss new file mode 100644 index 00000000..e28dbc54 --- /dev/null +++ b/src/sass/animations/attention-seekers/_bounce.scss @@ -0,0 +1,19 @@ +@if $use-bounce == true { + + @-webkit-keyframes bounce { + 0%, 20%, 50%, 80%, 100% {-webkit-transform: translateY(0);} + 40% {-webkit-transform: translateY(-$base-distance * 3);} + 60% {-webkit-transform: translateY(-$base-distance * 1.5);} + } + + @keyframes bounce { + 0%, 20%, 50%, 80%, 100% {transform: translateY(0);} + 40% {transform: translateY(-$base-distance * 3);} + 60% {transform: translateY(-$base-distance * 1.5);} + } + + .bounce { + @include animate-prefixer(animation-name, bounce); + } + +} diff --git a/src/sass/animations/attention-seekers/_flash.scss b/src/sass/animations/attention-seekers/_flash.scss new file mode 100644 index 00000000..282e3b3f --- /dev/null +++ b/src/sass/animations/attention-seekers/_flash.scss @@ -0,0 +1,12 @@ +@if $use-flash == true { + + @include animate-keyframe(flash) { + 0%, 50%, 100% {opacity: 1;} + 25%, 75% {opacity: 0;} + } + + .flash { + @include animate-prefixer(animation-name, flash); + } + +} diff --git a/src/sass/animations/attention-seekers/_pulse.scss b/src/sass/animations/attention-seekers/_pulse.scss new file mode 100644 index 00000000..1cf5b564 --- /dev/null +++ b/src/sass/animations/attention-seekers/_pulse.scss @@ -0,0 +1,21 @@ +@if $use-pulse == true { + + // originally authored by Nick Pettit - https://github.com/nickpettit/glide + + @-webkit-keyframes pulse { + 0% { -webkit-transform: scale(1); } + 50% { -webkit-transform: scale(1.1); } + 100% { -webkit-transform: scale(1); } + } + + @keyframes pulse { + 0% { transform: scale(1); } + 50% { transform: scale(1.1); } + 100% { transform: scale(1); } + } + + .pulse { + @include animate-prefixer(animation-name, pulse); + } + +} diff --git a/src/sass/animations/attention-seekers/_shake.scss b/src/sass/animations/attention-seekers/_shake.scss new file mode 100644 index 00000000..663ac66e --- /dev/null +++ b/src/sass/animations/attention-seekers/_shake.scss @@ -0,0 +1,18 @@ +@if $use-shake == true { + + @-webkit-keyframes shake { + 0%, 100% {-webkit-transform: translateX(0);} + 10%, 30%, 50%, 70%, 90% {-webkit-transform: translateX(-$base-distance);} + 20%, 40%, 60%, 80% {-webkit-transform: translateX($base-distance);} + } + + @keyframes shake { + 0%, 100% {transform: translateX(0);} + 10%, 30%, 50%, 70%, 90% {transform: translateX(-$base-distance);} + 20%, 40%, 60%, 80% {transform: translateX($base-distance);} + } + + .shake { + @include animate-prefixer(animation-name, shake); + } +} diff --git a/src/sass/animations/attention-seekers/_swing.scss b/src/sass/animations/attention-seekers/_swing.scss new file mode 100644 index 00000000..ab568b6e --- /dev/null +++ b/src/sass/animations/attention-seekers/_swing.scss @@ -0,0 +1,25 @@ +@if $use-swing == true { + + @-webkit-keyframes swing { + 20%, 40%, 60%, 80%, 100% { -webkit-transform-origin: $base-origin; } + 20% { -webkit-transform: rotate(15deg); } + 40% { -webkit-transform: rotate(-10deg); } + 60% { -webkit-transform: rotate(5deg); } + 80% { -webkit-transform: rotate(-5deg); } + 100% { -webkit-transform: rotate(0deg); } + } + + @keyframes swing { + 20% { transform: rotate(15deg); } + 40% { transform: rotate(-10deg); } + 60% { transform: rotate(5deg); } + 80% { transform: rotate(-5deg); } + 100% { transform: rotate(0deg); } + } + + .swing { + @include animate-prefixer(transform-origin, $base-origin); + @include animate-prefixer(animation-name, swing); + } + +} diff --git a/src/sass/animations/attention-seekers/_tada.scss b/src/sass/animations/attention-seekers/_tada.scss new file mode 100644 index 00000000..26dda745 --- /dev/null +++ b/src/sass/animations/attention-seekers/_tada.scss @@ -0,0 +1,23 @@ +@if $use-tada == true { + + @-webkit-keyframes tada { + 0% {-webkit-transform: scale(1);} + 10%, 20% {-webkit-transform: scale(0.9) rotate(-3deg);} + 30%, 50%, 70%, 90% {-webkit-transform: scale(1.1) rotate(3deg);} + 40%, 60%, 80% {-webkit-transform: scale(1.1) rotate(-3deg);} + 100% {-webkit-transform: scale(1) rotate(0);} + } + + @keyframes tada { + 0% {transform: scale(1);} + 10%, 20% {transform: scale(0.9) rotate(-3deg);} + 30%, 50%, 70%, 90% {transform: scale(1.1) rotate(3deg);} + 40%, 60%, 80% {transform: scale(1.1) rotate(-3deg);} + 100% {transform: scale(1) rotate(0);} + } + + .tada { + @include animate-prefixer(animation-name, tada); + } + +} diff --git a/src/sass/animations/attention-seekers/_wiggle.scss b/src/sass/animations/attention-seekers/_wiggle.scss new file mode 100644 index 00000000..0c27245d --- /dev/null +++ b/src/sass/animations/attention-seekers/_wiggle.scss @@ -0,0 +1,36 @@ +@if $use-wiggle == true { + + @-webkit-keyframes wiggle { + 0% { -webkit-transform: skewX(9deg); } + 10% { -webkit-transform: skewX(-8deg); } + 20% { -webkit-transform: skewX(7deg); } + 30% { -webkit-transform: skewX(-6deg); } + 40% { -webkit-transform: skewX(5deg); } + 50% { -webkit-transform: skewX(-4deg); } + 60% { -webkit-transform: skewX(3deg); } + 70% { -webkit-transform: skewX(-2deg); } + 80% { -webkit-transform: skewX(1deg); } + 90% { -webkit-transform: skewX(0deg); } + 100% { -webkit-transform: skewX(0deg); } + } + + @keyframes wiggle { + 0% { transform: skewX(9deg); } + 10% { transform: skewX(-8deg); } + 20% { transform: skewX(7deg); } + 30% { transform: skewX(-6deg); } + 40% { transform: skewX(5deg); } + 50% { transform: skewX(-4deg); } + 60% { transform: skewX(3deg); } + 70% { transform: skewX(-2deg); } + 80% { transform: skewX(1deg); } + 90% { transform: skewX(0deg); } + 100% { transform: skewX(0deg); } + } + + .wiggle { + @include animate-prefixer(animation-name, wiggle); + @include animate-prefixer(animation-timing-function, $base-timing-function-in); + } + +} diff --git a/src/sass/animations/attention-seekers/_wobble.scss b/src/sass/animations/attention-seekers/_wobble.scss new file mode 100644 index 00000000..5a170011 --- /dev/null +++ b/src/sass/animations/attention-seekers/_wobble.scss @@ -0,0 +1,29 @@ +@if $use-wobble == true { + + // originally authored by Nick Pettit - https://github.com/nickpettit/glide + + @-webkit-keyframes wobble { + 0% { -webkit-transform: translateX(0%); } + 15% { -webkit-transform: translateX(-25%) rotate(-5deg); } + 30% { -webkit-transform: translateX(20%) rotate(3deg); } + 45% { -webkit-transform: translateX(-15%) rotate(-3deg); } + 60% { -webkit-transform: translateX(10%) rotate(2deg); } + 75% { -webkit-transform: translateX(-5%) rotate(-1deg); } + 100% { -webkit-transform: translateX(0%); } + } + + @keyframes wobble { + 0% { transform: translateX(0%); } + 15% { transform: translateX(-25%) rotate(-5deg); } + 30% { transform: translateX(20%) rotate(3deg); } + 45% { transform: translateX(-15%) rotate(-3deg); } + 60% { transform: translateX(10%) rotate(2deg); } + 75% { transform: translateX(-5%) rotate(-1deg); } + 100% { transform: translateX(0%); } + } + + .wobble { + @include animate-prefixer(animation-name, wobble); + } + +} diff --git a/src/sass/animations/bounce-enter/_bounceIn.scss b/src/sass/animations/bounce-enter/_bounceIn.scss new file mode 100644 index 00000000..260c677c --- /dev/null +++ b/src/sass/animations/bounce-enter/_bounceIn.scss @@ -0,0 +1,47 @@ +@if $use-bounceIn == true { + + @-webkit-keyframes bounceIn { + 0% { + opacity: 0; + -webkit-transform: scale(0.3); + } + + 50% { + opacity: 1; + -webkit-transform: scale(1.05); + } + + 70% { + -webkit-transform: scale(0.9); + } + + 100% { + -webkit-transform: scale(1); + } + } + + @keyframes bounceIn { + 0% { + opacity: 0; + transform: scale(0.3); + } + + 50% { + opacity: 1; + transform: scale(1.05); + } + + 70% { + transform: scale(0.9); + } + + 100% { + transform: scale(1); + } + } + + .in .bounceIn { + @include animate-prefixer(animation-name, bounceIn); + } + +} diff --git a/src/sass/animations/bounce-enter/_bounceInDown.scss b/src/sass/animations/bounce-enter/_bounceInDown.scss new file mode 100644 index 00000000..eadb999d --- /dev/null +++ b/src/sass/animations/bounce-enter/_bounceInDown.scss @@ -0,0 +1,47 @@ +@if $use-bounceInDown == true { + + @-webkit-keyframes bounceInDown { + 0% { + opacity: 0; + -webkit-transform: translateY(-$base-distance-big * 2); + } + + 60% { + opacity: 1; + -webkit-transform: translateY($base-distance * 3); + } + + 80% { + -webkit-transform: translateY(-$base-distance); + } + + 100% { + -webkit-transform: translateY(0); + } + } + + @keyframes bounceInDown { + 0% { + opacity: 0; + transform: translateY(-$base-distance-big * 2); + } + + 60% { + opacity: 1; + transform: translateY($base-distance * 3); + } + + 80% { + transform: translateY(-$base-distance); + } + + 100% { + transform: translateY(0); + } + } + + .in .bounceInDown { + @include animate-prefixer(animation-name, bounceInDown); + } + +} diff --git a/src/sass/animations/bounce-enter/_bounceInLeft.scss b/src/sass/animations/bounce-enter/_bounceInLeft.scss new file mode 100644 index 00000000..0dcd160e --- /dev/null +++ b/src/sass/animations/bounce-enter/_bounceInLeft.scss @@ -0,0 +1,47 @@ +@if $use-bounceInLeft == true { + + @-webkit-keyframes bounceInLeft { + 0% { + opacity: 0; + -webkit-transform: translateX(-$base-distance-big * 2); + } + + 60% { + opacity: 1; + -webkit-transform: translateX($base-distance * 3); + } + + 80% { + -webkit-transform: translateX(-$base-distance); + } + + 100% { + -webkit-transform: translateX(0); + } + } + + @keyframes bounceInLeft { + 0% { + opacity: 0; + transform: translateX(-$base-distance-big * 2); + } + + 60% { + opacity: 1; + transform: translateX($base-distance * 3); + } + + 80% { + transform: translateX(-$base-distance); + } + + 100% { + transform: translateX(0); + } + } + + .in .bounceInLeft { + @include animate-prefixer(animation-name, bounceInLeft); + } + +} diff --git a/src/sass/animations/bounce-enter/_bounceInRight.scss b/src/sass/animations/bounce-enter/_bounceInRight.scss new file mode 100644 index 00000000..bc1a9abf --- /dev/null +++ b/src/sass/animations/bounce-enter/_bounceInRight.scss @@ -0,0 +1,47 @@ +@if $use-bounceInRight == true { + + @-webkit-keyframes bounceInRight { + 0% { + opacity: 0; + -webkit-transform: translateX($base-distance-big * 2); + } + + 60% { + opacity: 1; + -webkit-transform: translateX(-$base-distance * 3); + } + + 80% { + -webkit-transform: translateX($base-distance); + } + + 100% { + -webkit-transform: translateX(0); + } + } + + @keyframes bounceInRight { + 0% { + opacity: 0; + transform: translateX($base-distance-big * 2); + } + + 60% { + opacity: 1; + transform: translateX(-$base-distance * 3); + } + + 80% { + transform: translateX($base-distance); + } + + 100% { + transform: translateX(0); + } + } + + .in .bounceInRight { + @include animate-prefixer(animation-name, bounceInRight); + } + +} diff --git a/src/sass/animations/bounce-enter/_bounceInUp.scss b/src/sass/animations/bounce-enter/_bounceInUp.scss new file mode 100644 index 00000000..812cb2cb --- /dev/null +++ b/src/sass/animations/bounce-enter/_bounceInUp.scss @@ -0,0 +1,47 @@ +@if $use-bounceInUp == true { + + @-webkit-keyframes bounceInUp { + 0% { + opacity: 0; + -webkit-transform: translateY($base-distance-big * 2); + } + + 60% { + opacity: 1; + -webkit-transform: translateY(-$base-distance * 3); + } + + 80% { + -webkit-transform: translateY($base-distance); + } + + 100% { + -webkit-transform: translateY(0); + } + } + + @keyframes bounceInUp { + 0% { + opacity: 0; + transform: translateY($base-distance-big * 2); + } + + 60% { + opacity: 1; + transform: translateY(-$base-distance * 3); + } + + 80% { + transform: translateY($base-distance); + } + + 100% { + transform: translateY(0); + } + } + + .in .bounceInUp { + @include animate-prefixer(animation-name, bounceInUp); + } + +} diff --git a/src/sass/animations/bounce-exit/_bounceOut.scss b/src/sass/animations/bounce-exit/_bounceOut.scss new file mode 100644 index 00000000..df74ee1b --- /dev/null +++ b/src/sass/animations/bounce-exit/_bounceOut.scss @@ -0,0 +1,47 @@ +@if $use-bounceOut == true { + + @-webkit-keyframes bounceOut { + 0% { + -webkit-transform: scale(1); + } + + 25% { + -webkit-transform: scale(0.95); + } + + 50% { + opacity: 1; + -webkit-transform: scale(1.1); + } + + 100% { + opacity: 0; + -webkit-transform: scale(0.3); + } + } + + @keyframes bounceOut { + 0% { + transform: scale(1); + } + + 25% { + transform: scale(0.95); + } + + 50% { + opacity: 1; + transform: scale(1.1); + } + + 100% { + opacity: 0; + transform: scale(0.3); + } + } + + .out .bounceOut { + @include animate-prefixer(animation-name, bounceOut); + } + +} diff --git a/src/sass/animations/bounce-exit/_bounceOutDown.scss b/src/sass/animations/bounce-exit/_bounceOutDown.scss new file mode 100644 index 00000000..1bf1bfe8 --- /dev/null +++ b/src/sass/animations/bounce-exit/_bounceOutDown.scss @@ -0,0 +1,39 @@ +@if $use-bounceOutDown == true { + + @-webkit-keyframes bounceOutDown { + 0% { + -webkit-transform: translateY(0); + } + + 20% { + opacity: 1; + -webkit-transform: translateY(-$base-distance * 2); + } + + 100% { + opacity: 0; + -webkit-transform: translateY($base-distance-big * 2); + } + } + + @keyframes bounceOutDown { + 0% { + transform: translateY(0); + } + + 20% { + opacity: 1; + transform: translateY(-$base-distance * 2); + } + + 100% { + opacity: 0; + transform: translateY($base-distance-big * 2); + } + } + + .out .bounceOutDown { + @include animate-prefixer(animation-name, bounceOutDown); + } + +} diff --git a/src/sass/animations/bounce-exit/_bounceOutLeft.scss b/src/sass/animations/bounce-exit/_bounceOutLeft.scss new file mode 100644 index 00000000..f53c6730 --- /dev/null +++ b/src/sass/animations/bounce-exit/_bounceOutLeft.scss @@ -0,0 +1,39 @@ +@if $use-bounceOutLeft == true { + + @-webkit-keyframes bounceOutLeft { + 0% { + -webkit-transform: translateX(0); + } + + 20% { + opacity: 1; + -webkit-transform: translateX($base-distance * 2); + } + + 100% { + opacity: 0; + -webkit-transform: translateX(-$base-distance-big * 2); + } + } + + @keyframes bounceOutLeft { + 0% { + transform: translateX(0); + } + + 20% { + opacity: 1; + transform: translateX($base-distance * 2); + } + + 100% { + opacity: 0; + transform: translateX(-$base-distance-big * 2); + } + } + + .out .bounceOutLeft { + @include animate-prefixer(animation-name, bounceOutLeft); + } + +} diff --git a/src/sass/animations/bounce-exit/_bounceOutRight.scss b/src/sass/animations/bounce-exit/_bounceOutRight.scss new file mode 100644 index 00000000..e5c7554e --- /dev/null +++ b/src/sass/animations/bounce-exit/_bounceOutRight.scss @@ -0,0 +1,39 @@ +@if $use-bounceOutRight == true { + + @-webkit-keyframes bounceOutRight { + 0% { + -webkit-transform: translateX(0); + } + + 20% { + opacity: 1; + -webkit-transform: translateX(-$base-distance * 2); + } + + 100% { + opacity: 0; + -webkit-transform: translateX($base-distance-big * 2); + } + } + + @keyframes bounceOutRight { + 0% { + transform: translateX(0); + } + + 20% { + opacity: 1; + transform: translateX(-$base-distance * 2); + } + + 100% { + opacity: 0; + transform: translateX($base-distance-big * 2); + } + } + + .out .bounceOutRight { + @include animate-prefixer(animation-name, bounceOutRight); + } + +} diff --git a/src/sass/animations/bounce-exit/_bounceOutUp.scss b/src/sass/animations/bounce-exit/_bounceOutUp.scss new file mode 100644 index 00000000..fced582b --- /dev/null +++ b/src/sass/animations/bounce-exit/_bounceOutUp.scss @@ -0,0 +1,39 @@ +@if $use-bounceOutUp == true { + + @-webkit-keyframes bounceOutUp { + 0% { + -webkit-transform: translateY(0); + } + + 20% { + opacity: 1; + -webkit-transform: translateY($base-distance * 2); + } + + 100% { + opacity: 0; + -webkit-transform: translateY(-$base-distance-big * 2); + } + } + + @keyframes bounceOutUp { + 0% { + transform: translateY(0); + } + + 20% { + opacity: 1; + transform: translateY($base-distance * 2); + } + + 100% { + opacity: 0; + transform: translateY(-$base-distance-big * 2); + } + } + + .out .bounceOutUp { + @include animate-prefixer(animation-name, bounceOutUp); + } + +} diff --git a/src/sass/animations/fade-enter/_fadeIn.scss b/src/sass/animations/fade-enter/_fadeIn.scss new file mode 100644 index 00000000..89b3e302 --- /dev/null +++ b/src/sass/animations/fade-enter/_fadeIn.scss @@ -0,0 +1,12 @@ +@if $use-fadeIn == true { + + @include animate-keyframe(fadeIn) { + 0% {opacity: 0;} + 100% {opacity: 1;} + } + + .in .fadeIn { + @include animate-prefixer(animation-name, fadeIn); + } + +} diff --git a/src/sass/animations/fade-enter/_fadeInDown.scss b/src/sass/animations/fade-enter/_fadeInDown.scss new file mode 100644 index 00000000..25146c9b --- /dev/null +++ b/src/sass/animations/fade-enter/_fadeInDown.scss @@ -0,0 +1,31 @@ +@if $use-fadeInDown == true { + + @-webkit-keyframes fadeInDown { + 0% { + opacity: 0; + -webkit-transform: translateY(-$base-distance * 2); + } + + 100% { + opacity: 1; + -webkit-transform: translateY(0); + } + } + + @keyframes fadeInDown { + 0% { + opacity: 0; + transform: translateY(-$base-distance * 2); + } + + 100% { + opacity: 1; + transform: translateY(0); + } + } + + .in .fadeInDown { + @include animate-prefixer(animation-name, fadeInDown); + } + +} diff --git a/src/sass/animations/fade-enter/_fadeInDownBig.scss b/src/sass/animations/fade-enter/_fadeInDownBig.scss new file mode 100644 index 00000000..62bd4c07 --- /dev/null +++ b/src/sass/animations/fade-enter/_fadeInDownBig.scss @@ -0,0 +1,30 @@ +@if $use-fadeInDownBig == true { + + @-webkit-keyframes fadeInDownBig { + 0% { + opacity: 0; + -webkit-transform: translateY(-$base-distance-big * 2); + } + + 100% { + opacity: 1; + -webkit-transform: translateY(0); + } + } + + @keyframes fadeInDownBig { + 0% { + opacity: 0; + transform: translateY(-$base-distance-big * 2); + } + + 100% { + opacity: 1; + transform: translateY(0); + } + } + + .in .fadeInDownBig { + @include animate-prefixer(animation-name, fadeInDownBig); + } +} diff --git a/src/sass/animations/fade-enter/_fadeInLeft.scss b/src/sass/animations/fade-enter/_fadeInLeft.scss new file mode 100644 index 00000000..1e3aad38 --- /dev/null +++ b/src/sass/animations/fade-enter/_fadeInLeft.scss @@ -0,0 +1,31 @@ +@if $use-fadeInLeft == true { + + @-webkit-keyframes fadeInLeft { + 0% { + opacity: 0; + -webkit-transform: translateX(-$base-distance * 2); + } + + 100% { + opacity: 1; + -webkit-transform: translateX(0); + } + } + + @keyframes fadeInLeft { + 0% { + opacity: 0; + transform: translateX(-$base-distance * 2); + } + + 100% { + opacity: 1; + transform: translateX(0); + } + } + + .in .fadeInLeft { + @include animate-prefixer(animation-name, fadeInLeft); + } + +} diff --git a/src/sass/animations/fade-enter/_fadeInLeftBig.scss b/src/sass/animations/fade-enter/_fadeInLeftBig.scss new file mode 100644 index 00000000..64033d79 --- /dev/null +++ b/src/sass/animations/fade-enter/_fadeInLeftBig.scss @@ -0,0 +1,31 @@ +@if $use-fadeInLeftBig == true { + + @-webkit-keyframes fadeInLeftBig { + 0% { + opacity: 0; + -webkit-transform: translateX(-$base-distance-big * 2); + } + + 100% { + opacity: 1; + -webkit-transform: translateX(0); + } + } + + @keyframes fadeInLeftBig { + 0% { + opacity: 0; + transform: translateX(-$base-distance-big * 2); + } + + 100% { + opacity: 1; + transform: translateX(0); + } + } + + .in .fadeInLeftBig { + @include animate-prefixer(animation-name, fadeInLeftBig); + } + +} diff --git a/src/sass/animations/fade-enter/_fadeInRight.scss b/src/sass/animations/fade-enter/_fadeInRight.scss new file mode 100644 index 00000000..176acb7d --- /dev/null +++ b/src/sass/animations/fade-enter/_fadeInRight.scss @@ -0,0 +1,30 @@ +@if $use-fadeInRight == true { + + @-webkit-keyframes fadeInRight { + 0% { + opacity: 0; + -webkit-transform: translateX($base-distance * 2); + } + + 100% { + opacity: 1; + -webkit-transform: translateX(0); + } + } + + @keyframes fadeInRight { + 0% { + opacity: 0; + transform: translateX($base-distance * 2); + } + + 100% { + opacity: 1; + transform: translateX(0); + } + } + + .in .fadeInRight { + @include animate-prefixer(animation-name, fadeInRight); + } +} diff --git a/src/sass/animations/fade-enter/_fadeInRightBig.scss b/src/sass/animations/fade-enter/_fadeInRightBig.scss new file mode 100644 index 00000000..c7bc9b25 --- /dev/null +++ b/src/sass/animations/fade-enter/_fadeInRightBig.scss @@ -0,0 +1,30 @@ +@if $use-fadeInRightBig == true { + + @-webkit-keyframes fadeInRightBig { + 0% { + opacity: 0; + -webkit-transform: translateX($base-distance-big * 2); + } + + 100% { + opacity: 1; + -webkit-transform: translateX(0); + } + } + + @keyframes fadeInRightBig { + 0% { + opacity: 0; + transform: translateX($base-distance-big * 2); + } + + 100% { + opacity: 1; + transform: translateX(0); + } + } + + .in .fadeInRightBig { + @include animate-prefixer(animation-name, fadeInRightBig); + } +} diff --git a/src/sass/animations/fade-enter/_fadeInUp.scss b/src/sass/animations/fade-enter/_fadeInUp.scss new file mode 100644 index 00000000..c19e9e9a --- /dev/null +++ b/src/sass/animations/fade-enter/_fadeInUp.scss @@ -0,0 +1,31 @@ +@if $use-fadeInUp == true { + + @-webkit-keyframes fadeInUp { + 0% { + opacity: 0; + -webkit-transform: translateY($base-distance * 2); + } + + 100% { + opacity: 1; + -webkit-transform: translateY(0); + } + } + + @keyframes fadeInUp { + 0% { + opacity: 0; + transform: translateY($base-distance * 2); + } + + 100% { + opacity: 1; + transform: translateY(0); + } + } + + .in .fadeInUp { + @include animate-prefixer(animation-name, fadeInUp); + } + +} diff --git a/src/sass/animations/fade-enter/_fadeInUpBig.scss b/src/sass/animations/fade-enter/_fadeInUpBig.scss new file mode 100644 index 00000000..eb770496 --- /dev/null +++ b/src/sass/animations/fade-enter/_fadeInUpBig.scss @@ -0,0 +1,31 @@ +@if $use-fadeInUpBig == true { + + @-webkit-keyframes fadeInUpBig { + 0% { + opacity: 0; + -webkit-transform: translateY($base-distance-big * 2); + } + + 100% { + opacity: 1; + -webkit-transform: translateY(0); + } + } + + @keyframes fadeInUpBig { + 0% { + opacity: 0; + transform: translateY($base-distance-big * 2); + } + + 100% { + opacity: 1; + transform: translateY(0); + } + } + + .in .fadeInUpBig { + @include animate-prefixer(animation-name, fadeInUpBig); + } + +} diff --git a/src/sass/animations/fade-exit/_fadeOut.scss b/src/sass/animations/fade-exit/_fadeOut.scss new file mode 100644 index 00000000..a577b6c4 --- /dev/null +++ b/src/sass/animations/fade-exit/_fadeOut.scss @@ -0,0 +1,12 @@ +@if $use-fadeOut == true { + + @include animate-keyframe(fadeOut) { + 0% {opacity: 1;} + 100% {opacity: 0;} + } + + .out .fadeOut { + @include animate-prefixer(animation-name, fadeOut); + } + +} diff --git a/src/sass/animations/fade-exit/_fadeOutDown.scss b/src/sass/animations/fade-exit/_fadeOutDown.scss new file mode 100644 index 00000000..50fe12b1 --- /dev/null +++ b/src/sass/animations/fade-exit/_fadeOutDown.scss @@ -0,0 +1,30 @@ +@if $use-fadeOutDown == true { + + @-webkit-keyframes fadeOutDown { + 0% { + opacity: 1; + -webkit-transform: translateY(0); + } + + 100% { + opacity: 0; + -webkit-transform: translateY($base-distance * 2); + } + } + + @keyframes fadeOutDown { + 0% { + opacity: 1; + transform: translateY(0); + } + + 100% { + opacity: 0; + transform: translateY($base-distance * 2); + } + } + + .out .fadeOutDown { + @include animate-prefixer(animation-name, fadeOutDown); + } +} diff --git a/src/sass/animations/fade-exit/_fadeOutDownBig.scss b/src/sass/animations/fade-exit/_fadeOutDownBig.scss new file mode 100644 index 00000000..36cec206 --- /dev/null +++ b/src/sass/animations/fade-exit/_fadeOutDownBig.scss @@ -0,0 +1,30 @@ +@if $use-fadeOutDownBig == true { + + @-webkit-keyframes fadeOutDownBig { + 0% { + opacity: 1; + -webkit-transform: translateY(0); + } + + 100% { + opacity: 0; + -webkit-transform: translateY($base-distance-big * 2); + } + } + + @keyframes fadeOutDownBig { + 0% { + opacity: 1; + transform: translateY(0); + } + + 100% { + opacity: 0; + transform: translateY($base-distance-big * 2); + } + } + + .out .fadeOutDownBig { + @include animate-prefixer(animation-name, fadeOutDownBig); + } +} diff --git a/src/sass/animations/fade-exit/_fadeOutLeft.scss b/src/sass/animations/fade-exit/_fadeOutLeft.scss new file mode 100644 index 00000000..74e3c8d5 --- /dev/null +++ b/src/sass/animations/fade-exit/_fadeOutLeft.scss @@ -0,0 +1,31 @@ +@if $use-fadeOutLeft == true { + + @-webkit-keyframes fadeOutLeft { + 0% { + opacity: 1; + -webkit-transform: translateX(0); + } + + 100% { + opacity: 0; + -webkit-transform: translateX(-$base-distance * 2); + } + } + + @keyframes fadeOutLeft { + 0% { + opacity: 1; + transform: translateX(0); + } + + 100% { + opacity: 0; + transform: translateX(-$base-distance * 2); + } + } + + .out .fadeOutLeft { + @include animate-prefixer(animation-name, fadeOutLeft); + } + +} diff --git a/src/sass/animations/fade-exit/_fadeOutLeftBig.scss b/src/sass/animations/fade-exit/_fadeOutLeftBig.scss new file mode 100644 index 00000000..6035035e --- /dev/null +++ b/src/sass/animations/fade-exit/_fadeOutLeftBig.scss @@ -0,0 +1,31 @@ +@if $use-fadeOutLeftBig == true { + + @-webkit-keyframes fadeOutLeftBig { + 0% { + opacity: 1; + -webkit-transform: translateX(0); + } + + 100% { + opacity: 0; + -webkit-transform: translateX(-$base-distance-big * 2); + } + } + + @keyframes fadeOutLeftBig { + 0% { + opacity: 1; + transform: translateX(0); + } + + 100% { + opacity: 0; + transform: translateX(-$base-distance-big * 2); + } + } + + .out .fadeOutLeftBig { + @include animate-prefixer(animation-name, fadeOutLeftBig); + } + +} diff --git a/src/sass/animations/fade-exit/_fadeOutRight.scss b/src/sass/animations/fade-exit/_fadeOutRight.scss new file mode 100644 index 00000000..40321551 --- /dev/null +++ b/src/sass/animations/fade-exit/_fadeOutRight.scss @@ -0,0 +1,30 @@ +@if $use-fadeOutRight == true { + + @-webkit-keyframes fadeOutRight { + 0% { + opacity: 1; + -webkit-transform: translateX(0); + } + + 100% { + opacity: 0; + -webkit-transform: translateX($base-distance * 2); + } + } + + @keyframes fadeOutRight { + 0% { + opacity: 1; + transform: translateX(0); + } + + 100% { + opacity: 0; + transform: translateX($base-distance * 2); + } + } + + .out .fadeOutRight { + @include animate-prefixer(animation-name, fadeOutRight); + } +} diff --git a/src/sass/animations/fade-exit/_fadeOutRightBig.scss b/src/sass/animations/fade-exit/_fadeOutRightBig.scss new file mode 100644 index 00000000..a7776fbb --- /dev/null +++ b/src/sass/animations/fade-exit/_fadeOutRightBig.scss @@ -0,0 +1,30 @@ +@if $use-fadeOutRightBig == true { + + @-webkit-keyframes fadeOutRightBig { + 0% { + opacity: 1; + -webkit-transform: translateX(0); + } + + 100% { + opacity: 0; + -webkit-transform: translateX($base-distance-big * 2); + } + } + + @keyframes fadeOutRightBig { + 0% { + opacity: 1; + transform: translateX(0); + } + + 100% { + opacity: 0; + transform: translateX($base-distance-big * 2); + } + } + + .out .fadeOutRightBig { + @include animate-prefixer(animation-name, fadeOutRightBig); + } +} diff --git a/src/sass/animations/fade-exit/_fadeOutUp.scss b/src/sass/animations/fade-exit/_fadeOutUp.scss new file mode 100644 index 00000000..3e481d68 --- /dev/null +++ b/src/sass/animations/fade-exit/_fadeOutUp.scss @@ -0,0 +1,31 @@ +@if $use-fadeOutUp == true { + + @-webkit-keyframes fadeOutUp { + 0% { + opacity: 1; + -webkit-transform: translateY(0); + } + + 100% { + opacity: 0; + -webkit-transform: translateY(-$base-distance * 2); + } + } + + @keyframes fadeOutUp { + 0% { + opacity: 1; + transform: translateY(0); + } + + 100% { + opacity: 0; + transform: translateY(-$base-distance * 2); + } + } + + .out .fadeOutUp { + @include animate-prefixer(animation-name, fadeOutUp); + } + +} diff --git a/src/sass/animations/fade-exit/_fadeOutUpBig.scss b/src/sass/animations/fade-exit/_fadeOutUpBig.scss new file mode 100644 index 00000000..c482b8c3 --- /dev/null +++ b/src/sass/animations/fade-exit/_fadeOutUpBig.scss @@ -0,0 +1,31 @@ +@if $use-fadeOutUpBig == true { + + @-webkit-keyframes fadeOutUpBig { + 0% { + opacity: 1; + -webkit-transform: translateY(0); + } + + 100% { + opacity: 0; + -webkit-transform: translateY(-$base-distance-big * 2); + } + } + + @keyframes fadeOutUpBig { + 0% { + opacity: 1; + transform: translateY(0); + } + + 100% { + opacity: 0; + transform: translateY(-$base-distance-big * 2); + } + } + + .out .fadeOutUpBig { + @include animate-prefixer(animation-name, fadeOutUpBig); + } + +} diff --git a/src/sass/animations/flippers/_flip.scss b/src/sass/animations/flippers/_flip.scss new file mode 100644 index 00000000..544b72af --- /dev/null +++ b/src/sass/animations/flippers/_flip.scss @@ -0,0 +1,55 @@ +@if $use-flip == true { + + @-webkit-keyframes flip { + 0% { + -webkit-transform: perspective($flipper-perspective) rotateY(0); + -webkit-animation-timing-function: ease-out; + } + 40% { + -webkit-transform: perspective($flipper-perspective) translateZ($flipper-translate) rotateY(170deg); + -webkit-animation-timing-function: ease-out; + } + 50% { + -webkit-transform: perspective($flipper-perspective) translateZ($flipper-translate) rotateY(190deg) scale(1); + -webkit-animation-timing-function: ease-in; + } + 80% { + -webkit-transform: perspective($flipper-perspective) rotateY($flipper-degrees-max * 4) scale(0.95); + -webkit-animation-timing-function: ease-in; + } + 100% { + -webkit-transform: perspective($flipper-perspective) scale(1); + -webkit-animation-timing-function: ease-in; + } + } + + @keyframes flip { + 0% { + transform: perspective($flipper-perspective) rotateY(0); + animation-timing-function: ease-out; + } + 40% { + transform: perspective($flipper-perspective) translateZ($flipper-translate) rotateY(170deg); + animation-timing-function: ease-out; + } + 50% { + transform: perspective($flipper-perspective) translateZ($flipper-translate) rotateY(190deg) scale(1); + animation-timing-function: ease-in; + } + 80% { + transform: perspective($flipper-perspective) rotateY($flipper-degrees-max * 4) scale(0.95); + animation-timing-function: ease-in; + } + 100% { + transform: perspective($flipper-perspective) scale(1); + animation-timing-function: ease-in; + } + } + + .flip { + @include animate-prefixer(transform-style, preserve-3d); + @include animate-prefixer(backface-visibility, visible !important); + @include animate-prefixer(animation-name, flip) + } + +} diff --git a/src/sass/animations/flippers/_flipInX.scss b/src/sass/animations/flippers/_flipInX.scss new file mode 100644 index 00000000..8317d2f8 --- /dev/null +++ b/src/sass/animations/flippers/_flipInX.scss @@ -0,0 +1,48 @@ +@if $use-flipInX == true { + + @-webkit-keyframes flipInX { + 0% { + -webkit-transform: perspective($flipper-perspective) rotateX($flipper-degrees-max); + opacity: 0; + } + + 40% { + -webkit-transform: perspective($flipper-perspective) rotateX(-$flipper-degrees); + } + + 70% { + -webkit-transform: perspective($flipper-perspective) rotateX($flipper-degrees); + } + + 100% { + -webkit-transform: perspective($flipper-perspective) rotateX(0deg); + opacity: 1; + } + } + + @keyframes flipInX { + 0% { + transform: perspective($flipper-perspective) rotateX($flipper-degrees-max); + opacity: 0; + } + + 40% { + transform: perspective($flipper-perspective) rotateX(-$flipper-degrees); + } + + 70% { + transform: perspective($flipper-perspective) rotateX($flipper-degrees); + } + + 100% { + transform: perspective($flipper-perspective) rotateX(0deg); + opacity: 1; + } + } + + .in .flipInX { + @include animate-prefixer(backface-visibility, visible !important); + @include animate-prefixer(animation-name, flipInX); + } + +} diff --git a/src/sass/animations/flippers/_flipInY.scss b/src/sass/animations/flippers/_flipInY.scss new file mode 100644 index 00000000..d5f06cfd --- /dev/null +++ b/src/sass/animations/flippers/_flipInY.scss @@ -0,0 +1,48 @@ +@if $use-flipInY == true { + + @-webkit-keyframes flipInY { + 0% { + -webkit-transform: perspective($flipper-perspective) rotateY($flipper-degrees-max); + opacity: 0; + } + + 40% { + -webkit-transform: perspective($flipper-perspective) rotateY(-$flipper-degrees); + } + + 70% { + -webkit-transform: perspective($flipper-perspective) rotateY($flipper-degrees); + } + + 100% { + -webkit-transform: perspective($flipper-perspective) rotateY(0deg); + opacity: 1; + } + } + + @keyframes flipInY { + 0% { + transform: perspective($flipper-perspective) rotateY($flipper-degrees-max); + opacity: 0; + } + + 40% { + transform: perspective($flipper-perspective) rotateY(-$flipper-degrees); + } + + 70% { + transform: perspective($flipper-perspective) rotateY($flipper-degrees); + } + + 100% { + transform: perspective($flipper-perspective) rotateY(0deg); + opacity: 1; + } + } + + .in .flipInY { + @include animate-prefixer(backface-visibility, visible !important); + @include animate-prefixer(animation-name, flipInY); + } + +} diff --git a/src/sass/animations/flippers/_flipOutX.scss b/src/sass/animations/flippers/_flipOutX.scss new file mode 100644 index 00000000..5b96219a --- /dev/null +++ b/src/sass/animations/flippers/_flipOutX.scss @@ -0,0 +1,30 @@ +@if $use-flipOutX == true { + + @-webkit-keyframes flipOutX { + 0% { + -webkit-transform: perspective($flipper-perspective) rotateX(0deg); + opacity: 1; + } + 100% { + -webkit-transform: perspective($flipper-perspective) rotateX($flipper-degrees-max); + opacity: 0; + } + } + + @keyframes flipOutX { + 0% { + transform: perspective($flipper-perspective) rotateX(0deg); + opacity: 1; + } + 100% { + transform: perspective($flipper-perspective) rotateX($flipper-degrees-max); + opacity: 0; + } + } + + .out .flipOutX { + @include animate-prefixer(animation-name, flipOutX); + @include animate-prefixer(backface-visibility, visible !important); + } + +} diff --git a/src/sass/animations/flippers/_flipOutY.scss b/src/sass/animations/flippers/_flipOutY.scss new file mode 100644 index 00000000..8be14ae2 --- /dev/null +++ b/src/sass/animations/flippers/_flipOutY.scss @@ -0,0 +1,29 @@ +@if $use-flipOutY == true { + + @-webkit-keyframes flipOutY { + 0% { + -webkit-transform: perspective($flipper-perspective) rotateY(0deg); + opacity: 1; + } + 100% { + -webkit-transform: perspective($flipper-perspective) rotateY($flipper-degrees-max); + opacity: 0; + } + } + + @keyframes flipOutY { + 0% { + transform: perspective($flipper-perspective) rotateY(0deg); + opacity: 1; + } + 100% { + transform: perspective($flipper-perspective) rotateY($flipper-degrees-max); + opacity: 0; + } + } + + .out .flipOutY { + @include animate-prefixer(backface-visibility, visible !important); + @include animate-prefixer(animation-name, flipOutY); + } +} diff --git a/src/sass/animations/lightspeed/_lightSpeedIn.scss b/src/sass/animations/lightspeed/_lightSpeedIn.scss new file mode 100644 index 00000000..542047cd --- /dev/null +++ b/src/sass/animations/lightspeed/_lightSpeedIn.scss @@ -0,0 +1,22 @@ +@if $use-lightSpeedIn == true { + + @-webkit-keyframes lightSpeedIn { + 0% { -webkit-transform: translateX(100%) skewX(-$base-degrees); opacity: 0; } + 60% { -webkit-transform: translateX(-20%) skewX($base-degrees); opacity: 1; } + 80% { -webkit-transform: translateX(0%) skewX(-$base-degrees / 2); opacity: 1; } + 100% { -webkit-transform: translateX(0%) skewX(0deg); opacity: 1; } + } + + @keyframes lightSpeedIn { + 0% { transform: translateX(100%) skewX(-$base-degrees); opacity: 0; } + 60% { transform: translateX(-20%) skewX($base-degrees); opacity: 1; } + 80% { transform: translateX(0%) skewX(-$base-degrees / 2); opacity: 1; } + 100% { transform: translateX(0%) skewX(0deg); opacity: 1; } + } + + .in .lightSpeedIn { + @include animate-prefixer(animation-name, lightSpeedIn); + @include animate-prefixer(animation-timing-function, $base-timing-function-out); + } + +} diff --git a/src/sass/animations/lightspeed/_lightSpeedOut.scss b/src/sass/animations/lightspeed/_lightSpeedOut.scss new file mode 100644 index 00000000..44c4e1d3 --- /dev/null +++ b/src/sass/animations/lightspeed/_lightSpeedOut.scss @@ -0,0 +1,17 @@ +@if $use-lightSpeedOut == true { + + @-webkit-keyframes lightSpeedOut { + 0% { -webkit-transform: translateX(0%) skewX(0deg); opacity: 1; } + 100% { -webkit-transform: translateX(100%) skewX(-$base-degrees); opacity: 0; } + } + + @keyframes lightSpeedOut { + 0% { transform: translateX(0%) skewX(0deg); opacity: 1; } + 100% { transform: translateX(100%) skewX(-$base-degrees); opacity: 0; } + } + + .out .lightSpeedOut { + @include animate-prefixer(animation-name, lightSpeedOut); + @include animate-prefixer(animation-timing-function, $base-timing-function-in); + } +} diff --git a/src/sass/animations/rotate-enter/_rotateIn.scss b/src/sass/animations/rotate-enter/_rotateIn.scss new file mode 100644 index 00000000..70fddb8d --- /dev/null +++ b/src/sass/animations/rotate-enter/_rotateIn.scss @@ -0,0 +1,35 @@ +@if $use-rotateIn == true { + + @-webkit-keyframes rotateIn { + 0% { + -webkit-transform-origin: $rotate-origin; + -webkit-transform: rotate(-$rotate-degrees-max); + opacity: 0; + } + + 100% { + -webkit-transform-origin: $rotate-origin; + -webkit-transform: rotate(0); + opacity: 1; + } + } + + @keyframes rotateIn { + 0% { + transform-origin: $rotate-origin; + transform: rotate(-$rotate-degrees-max); + opacity: 0; + } + + 100% { + transform-origin: $rotate-origin; + transform: rotate(0); + opacity: 1; + } + } + + .in .rotateIn { + @include animate-prefixer(animation-name, rotateIn); + } + +} diff --git a/src/sass/animations/rotate-enter/_rotateInDownLeft.scss b/src/sass/animations/rotate-enter/_rotateInDownLeft.scss new file mode 100644 index 00000000..142303a1 --- /dev/null +++ b/src/sass/animations/rotate-enter/_rotateInDownLeft.scss @@ -0,0 +1,35 @@ +@if $use-rotateInDownLeft == true { + + @-webkit-keyframes rotateInDownLeft { + 0% { + -webkit-transform-origin: left bottom; + -webkit-transform: rotate(-$rotate-degrees); + opacity: 0; + } + + 100% { + -webkit-transform-origin: left bottom; + -webkit-transform: rotate(0); + opacity: 1; + } + } + + @keyframes rotateInDownLeft { + 0% { + transform-origin: left bottom; + transform: rotate(-$rotate-degrees); + opacity: 0; + } + + 100% { + transform-origin: left bottom; + transform: rotate(0); + opacity: 1; + } + } + + .in .rotateInDownLeft { + @include animate-prefixer(animation-name, rotateInDownLeft); + } + +} diff --git a/src/sass/animations/rotate-enter/_rotateInDownRight.scss b/src/sass/animations/rotate-enter/_rotateInDownRight.scss new file mode 100644 index 00000000..f16f2680 --- /dev/null +++ b/src/sass/animations/rotate-enter/_rotateInDownRight.scss @@ -0,0 +1,35 @@ +@if $use-rotateInDownRight == true { + + @-webkit-keyframes rotateInDownRight { + 0% { + -webkit-transform-origin: right bottom; + -webkit-transform: rotate($rotate-degrees); + opacity: 0; + } + + 100% { + -webkit-transform-origin: right bottom; + -webkit-transform: rotate(0); + opacity: 1; + } + } + + @keyframes rotateInDownRight { + 0% { + transform-origin: right bottom; + transform: rotate($rotate-degrees); + opacity: 0; + } + + 100% { + transform-origin: right bottom; + transform: rotate(0); + opacity: 1; + } + } + + .in .rotateInDownRight { + @include animate-prefixer(animation-name, rotateInDownRight); + } + +} diff --git a/src/sass/animations/rotate-enter/_rotateInUpLeft.scss b/src/sass/animations/rotate-enter/_rotateInUpLeft.scss new file mode 100644 index 00000000..5d7fca75 --- /dev/null +++ b/src/sass/animations/rotate-enter/_rotateInUpLeft.scss @@ -0,0 +1,35 @@ +@if $use-rotateInUpLeft == true { + + @-webkit-keyframes rotateInUpLeft { + 0% { + -webkit-transform-origin: left bottom; + -webkit-transform: rotate($rotate-degrees); + opacity: 0; + } + + 100% { + -webkit-transform-origin: left bottom; + -webkit-transform: rotate(0); + opacity: 1; + } + } + + @keyframes rotateInUpLeft { + 0% { + transform-origin: left bottom; + transform: rotate($rotate-degrees); + opacity: 0; + } + + 100% { + transform-origin: left bottom; + transform: rotate(0); + opacity: 1; + } + } + + .in .rotateInUpLeft { + @include animate-prefixer(animation-name, rotateInUpLeft); + } + +} diff --git a/src/sass/animations/rotate-enter/_rotateInUpRight.scss b/src/sass/animations/rotate-enter/_rotateInUpRight.scss new file mode 100644 index 00000000..4c3f712f --- /dev/null +++ b/src/sass/animations/rotate-enter/_rotateInUpRight.scss @@ -0,0 +1,35 @@ +@if $use-rotateInUpRight == true { + + @-webkit-keyframes rotateInUpRight { + 0% { + -webkit-transform-origin: right bottom; + -webkit-transform: rotate(-$rotate-degrees); + opacity: 0; + } + + 100% { + -webkit-transform-origin: right bottom; + -webkit-transform: rotate(0); + opacity: 1; + } + } + + @keyframes rotateInUpRight { + 0% { + transform-origin: right bottom; + transform: rotate(-$rotate-degrees); + opacity: 0; + } + + 100% { + transform-origin: right bottom; + transform: rotate(0); + opacity: 1; + } + } + + .in .rotateInUpRight { + @include animate-prefixer(animation-name, rotateInUpRight); + } + +} diff --git a/src/sass/animations/rotate-exit/_rotateOut.scss b/src/sass/animations/rotate-exit/_rotateOut.scss new file mode 100644 index 00000000..d297ae74 --- /dev/null +++ b/src/sass/animations/rotate-exit/_rotateOut.scss @@ -0,0 +1,35 @@ +@if $use-rotateOut == true { + + @-webkit-keyframes rotateOut { + 0% { + -webkit-transform-origin: $rotate-origin; + -webkit-transform: rotate(0); + opacity: 1; + } + + 100% { + -webkit-transform-origin: $rotate-origin; + -webkit-transform: rotate($rotate-degrees-max); + opacity: 0; + } + } + + @keyframes rotateOut { + 0% { + transform-origin: $rotate-origin; + transform: rotate(0); + opacity: 1; + } + + 100% { + transform-origin: $rotate-origin; + transform: rotate($rotate-degrees-max); + opacity: 0; + } + } + + .out .rotateOut { + @include animate-prefixer(animation-name, rotateOut); + } + +} diff --git a/src/sass/animations/rotate-exit/_rotateOutDownLeft.scss b/src/sass/animations/rotate-exit/_rotateOutDownLeft.scss new file mode 100644 index 00000000..05d8e68e --- /dev/null +++ b/src/sass/animations/rotate-exit/_rotateOutDownLeft.scss @@ -0,0 +1,34 @@ +@if $use-rotateOutDownLeft == true { + + @-webkit-keyframes rotateOutDownLeft { + 0% { + -webkit-transform-origin: left bottom; + -webkit-transform: rotate(0); + opacity: 1; + } + + 100% { + -webkit-transform-origin: left bottom; + -webkit-transform: rotate($rotate-degrees); + opacity: 0; + } + } + + @keyframes rotateOutDownLeft { + 0% { + transform-origin: left bottom; + transform: rotate(0); + opacity: 1; + } + + 100% { + transform-origin: left bottom; + transform: rotate($rotate-degrees); + opacity: 0; + } + } + + .out .rotateOutDownLeft { + @include animate-prefixer(animation-name, rotateOutDownLeft); + } +} diff --git a/src/sass/animations/rotate-exit/_rotateOutDownRight.scss b/src/sass/animations/rotate-exit/_rotateOutDownRight.scss new file mode 100644 index 00000000..9ba77e13 --- /dev/null +++ b/src/sass/animations/rotate-exit/_rotateOutDownRight.scss @@ -0,0 +1,34 @@ +@if $use-rotateOutDownRight == true { + + @-webkit-keyframes rotateOutDownRight { + 0% { + -webkit-transform-origin: right bottom; + -webkit-transform: rotate(0); + opacity: 1; + } + + 100% { + -webkit-transform-origin: right bottom; + -webkit-transform: rotate(-$rotate-degrees); + opacity: 0; + } + } + + @keyframes rotateOutDownRight { + 0% { + transform-origin: right bottom; + transform: rotate(0); + opacity: 1; + } + + 100% { + transform-origin: right bottom; + transform: rotate(-$rotate-degrees); + opacity: 0; + } + } + + .out .rotateOutDownRight { + @include animate-prefixer(animation-name, rotateOutDownRight); + } +} diff --git a/src/sass/animations/rotate-exit/_rotateOutUpLeft.scss b/src/sass/animations/rotate-exit/_rotateOutUpLeft.scss new file mode 100644 index 00000000..3958df54 --- /dev/null +++ b/src/sass/animations/rotate-exit/_rotateOutUpLeft.scss @@ -0,0 +1,35 @@ +@if $use-rotateOutDownRight == true { + + @-webkit-keyframes rotateOutUpLeft { + 0% { + -webkit-transform-origin: left bottom; + -webkit-transform: rotate(0); + opacity: 1; + } + + 100% { + -webkit-transform-origin: left bottom; + -webkit-transform: rotate(-$rotate-degrees); + opacity: 0; + } + } + + @keyframes rotateOutUpLeft { + 0% { + transform-origin: left bottom; + transform: rotate(0); + opacity: 1; + } + + 100% { + -transform-origin: left bottom; + -transform: rotate(-$rotate-degrees); + opacity: 0; + } + } + + .out .rotateOutUpLeft { + @include animate-prefixer(animation-name, rotateOutUpLeft); + } + +} diff --git a/src/sass/animations/rotate-exit/_rotateOutUpRight.scss b/src/sass/animations/rotate-exit/_rotateOutUpRight.scss new file mode 100644 index 00000000..600a38a8 --- /dev/null +++ b/src/sass/animations/rotate-exit/_rotateOutUpRight.scss @@ -0,0 +1,34 @@ +@if $use-rotateOutUpRight == true { + @-webkit-keyframes rotateOutUpRight { + 0% { + -webkit-transform-origin: right bottom; + -webkit-transform: rotate(0); + opacity: 1; + } + + 100% { + -webkit-transform-origin: right bottom; + -webkit-transform: rotate($rotate-degrees); + opacity: 0; + } + } + + @keyframes rotateOutUpRight { + 0% { + transform-origin: right bottom; + transform: rotate(0); + opacity: 1; + } + + 100% { + transform-origin: right bottom; + transform: rotate($rotate-degrees); + opacity: 0; + } + } + + .out .rotateOutUpRight { + @include animate-prefixer(animation-name, rotateOutUpRight); + } + +} diff --git a/src/sass/animations/slide-enter/_slideInDown.scss b/src/sass/animations/slide-enter/_slideInDown.scss new file mode 100644 index 00000000..fcb77b53 --- /dev/null +++ b/src/sass/animations/slide-enter/_slideInDown.scss @@ -0,0 +1,29 @@ +@if $use-slideInDown == true { + + @-webkit-keyframes slideInDown { + 0% { + -webkit-transform: translate3d(0, -100%, 0); + visibility: visible; + } + + 100% { + -webkit-transform: translate3d(0, 0, 0); + } + } + + @keyframes slideInDown { + 0% { + transform: translate3d(0, -100%, 0); + visibility: visible; + } + + 100% { + transform: translate3d(0, 0, 0); + } + } + + .in .slideInDown { + @include animate-prefixer(animation-name, slideInDown); + } + +} diff --git a/src/sass/animations/slide-enter/_slideInLeft.scss b/src/sass/animations/slide-enter/_slideInLeft.scss new file mode 100644 index 00000000..7f8235bf --- /dev/null +++ b/src/sass/animations/slide-enter/_slideInLeft.scss @@ -0,0 +1,29 @@ +@if $use-slideInLeft == true { + + @-webkit-keyframes slideInLeft { + 0% { + -webkit-transform: translate3d(-100%, 0, 0); + visibility: visible; + } + + 100% { + -webkit-transform: translate3d(0, 0, 0); + } + } + + @keyframes slideInLeft { + 0% { + transform: translate3d(-100%, 0, 0); + visibility: visible; + } + + 100% { + transform: translate3d(0, 0, 0); + } + } + + .in .slideInLeft { + @include animate-prefixer(animation-name, slideInLeft); + } + +} diff --git a/src/sass/animations/slide-enter/_slideInRight.scss b/src/sass/animations/slide-enter/_slideInRight.scss new file mode 100644 index 00000000..1649dac4 --- /dev/null +++ b/src/sass/animations/slide-enter/_slideInRight.scss @@ -0,0 +1,29 @@ +@if $use-slideInRight == true { + + @-webkit-keyframes slideInRight { + 0% { + -webkit-transform: translate3d(100%, 0, 0); + visibility: visible; + } + + 100% { + -webkit-transform: translate3d(0, 0, 0); + } + } + + @keyframes slideInRight { + 0% { + transform: translate3d(100%, 0, 0); + visibility: visible; + } + + 100% { + transform: translate3d(0, 0, 0); + } + } + + .in .slideInRight { + @include animate-prefixer(animation-name, slideInRight); + } + +} diff --git a/src/sass/animations/slide-enter/_slideInUp.scss b/src/sass/animations/slide-enter/_slideInUp.scss new file mode 100644 index 00000000..b6588b30 --- /dev/null +++ b/src/sass/animations/slide-enter/_slideInUp.scss @@ -0,0 +1,29 @@ +@if $use-slideInUp == true { + + @-webkit-keyframes slideInUp { + 0% { + -webkit-transform: translate3d(0, 100%, 0); + visibility: visible; + } + + 100% { + -webkit-transform: translate3d(0, 0, 0); + } + } + + @keyframes slideInUp { + 0% { + transform: translate3d(0, 100%, 0); + visibility: visible; + } + + 100% { + transform: translate3d(0, 0, 0); + } + } + + .in .slideInUp { + @include animate-prefixer(animation-name, slideInUp); + } + +} diff --git a/src/sass/animations/slide-exit/_slideOutDown.scss b/src/sass/animations/slide-exit/_slideOutDown.scss new file mode 100644 index 00000000..36677651 --- /dev/null +++ b/src/sass/animations/slide-exit/_slideOutDown.scss @@ -0,0 +1,29 @@ +@if $use-slideOutDown == true { + + @-webkit-keyframes slideOutDown { + 0% { + -webkit-transform: translate3d(0, 0, 0); + visibility: visible; + } + + 100% { + -webkit-transform: translate3d(0, 100%, 0); + } + } + + @keyframes slideOutDown { + 0% { + transform: translate3d(0, 0, 0); + visibility: visible; + } + + 100% { + transform: translate3d(0, 100%, 0); + } + } + + .out .slideOutDown { + @include animate-prefixer(animation-name, slideOutDown); + } + +} diff --git a/src/sass/animations/slide-exit/_slideOutLeft.scss b/src/sass/animations/slide-exit/_slideOutLeft.scss new file mode 100644 index 00000000..a6741cf0 --- /dev/null +++ b/src/sass/animations/slide-exit/_slideOutLeft.scss @@ -0,0 +1,29 @@ +@if $use-slideOutLeft == true { + + @-webkit-keyframes slideOutLeft { + 0% { + -webkit-transform: translate3d(0, 0, 0); + visibility: visible; + } + + 100% { + -webkit-transform: translate3d(-100%, 0, 0); + } + } + + @keyframes slideOutLeft { + 0% { + transform: translate3d(0, 0, 0); + visibility: visible; + } + + 100% { + transform: translate3d(-100%, 0, 0); + } + } + + .out .slideOutLeft { + @include animate-prefixer(animation-name, slideOutLeft); + } + +} diff --git a/src/sass/animations/slide-exit/_slideOutRight.scss b/src/sass/animations/slide-exit/_slideOutRight.scss new file mode 100644 index 00000000..87c13ac4 --- /dev/null +++ b/src/sass/animations/slide-exit/_slideOutRight.scss @@ -0,0 +1,29 @@ +@if $use-slideOutRight == true { + + @-webkit-keyframes slideOutRight { + 0% { + -webkit-transform: translate3d(0, 0, 0); + visibility: visible; + } + + 100% { + -webkit-transform: translate3d(100%, 0, 0); + } + } + + @keyframes slideOutRight { + 0% { + transform: translate3d(0, 0, 0); + visibility: visible; + } + + 100% { + transform: translate3d(100%, 0, 0); + } + } + + .out .slideOutRight { + @include animate-prefixer(animation-name, slideOutRight); + } + +} diff --git a/src/sass/animations/slide-exit/_slideOutUp.scss b/src/sass/animations/slide-exit/_slideOutUp.scss new file mode 100644 index 00000000..aa41a517 --- /dev/null +++ b/src/sass/animations/slide-exit/_slideOutUp.scss @@ -0,0 +1,29 @@ +@if $use-slideOutUp == true { + + @-webkit-keyframes slideOutUp { + 0% { + -webkit-transform: translate3d(0, 0, 0); + visibility: visible; + } + + 100% { + -webkit-transform: translate3d(0, -100%, 0); + } + } + + @keyframes slideOutUp { + 0% { + transform: translate3d(0, 0, 0); + visibility: visible; + } + + 100% { + transform: translate3d(0, -100%, 0); + } + } + + .out .slideOutUp { + @include animate-prefixer(animation-name, slideOutUp); + } + +} diff --git a/src/sass/animations/special/_hinge.scss b/src/sass/animations/special/_hinge.scss new file mode 100644 index 00000000..820875b5 --- /dev/null +++ b/src/sass/animations/special/_hinge.scss @@ -0,0 +1,22 @@ + @if $use-hinge == true { + + @-webkit-keyframes hinge { + 0% { -webkit-transform: rotate(0); -webkit-transform-origin: $hinge-origin; -webkit-animation-timing-function: $base-timing-function-in-out; } + 20%, 60% { -webkit-transform: rotate($hinge-degrees-max); -webkit-transform-origin: $hinge-origin; -webkit-animation-timing-function: $base-timing-function-in-out; } + 40% { -webkit-transform: rotate($base-degrees * 2); -webkit-transform-origin: $hinge-origin; -webkit-animation-timing-function: $base-timing-function-in-out; } + 80% { -webkit-transform: rotate($base-degrees * 2) translateY(0); opacity: 1; -webkit-transform-origin: $hinge-origin; -webkit-animation-timing-function: $base-timing-function-in-out; } + 100% { -webkit-transform: translateY($hinge-translate); opacity: 0; } + } + + @keyframes hinge { + 0% { transform: rotate(0); transform-origin: $hinge-origin; animation-timing-function: $base-timing-function-in-out; } + 20%, 60% { transform: rotate($hinge-degrees-max); transform-origin: $hinge-origin; animation-timing-function: $base-timing-function-in-out; } + 40% { transform: rotate($base-degrees * 2); transform-origin: $hinge-origin; animation-timing-function: $base-timing-function-in-out; } + 80% { transform: rotate($base-degrees * 2) translateY(0); opacity: 1; transform-origin: $hinge-origin; animation-timing-function: $base-timing-function-in-out; } + 100% { transform: translateY($hinge-translate); opacity: 0; } + } + + .out .hingeOut { + @include animate-prefixer(animation-name, hinge); + } +} diff --git a/src/sass/animations/special/_rollIn.scss b/src/sass/animations/special/_rollIn.scss new file mode 100644 index 00000000..43a0daeb --- /dev/null +++ b/src/sass/animations/special/_rollIn.scss @@ -0,0 +1,19 @@ +@if $use-rollIn == true { + + // originally authored by Nick Pettit - https://github.com/nickpettit/glide + + @-webkit-keyframes rollIn { + 0% { opacity: 0; -webkit-transform: translateX(-100%) rotate(-$base-degrees * 4); } + 100% { opacity: 1; -webkit-transform: translateX(0px) rotate(0deg); } + } + + @keyframes rollIn { + 0% { opacity: 0; transform: translateX(-100%) rotate(-$base-degrees * 4); } + 100% { opacity: 1; transform: translateX(0px) rotate(0deg); } + } + + .in .rollIn { + @include animate-prefixer(animation-name, rollIn); + } + +} diff --git a/src/sass/animations/special/_rollOut.scss b/src/sass/animations/special/_rollOut.scss new file mode 100644 index 00000000..590af626 --- /dev/null +++ b/src/sass/animations/special/_rollOut.scss @@ -0,0 +1,33 @@ +@if $use-rollOut == true { + + // originally authored by Nick Pettit - https://github.com/nickpettit/glide + + @-webkit-keyframes rollOut { + 0% { + opacity: 1; + -webkit-transform: translateX(0px) rotate(0deg); + } + + 100% { + opacity: 0; + -webkit-transform: translateX(100%) rotate($base-degrees * 4); + } + } + + @keyframes rollOut { + 0% { + opacity: 1; + transform: translateX(0px) rotate(0deg); + } + + 100% { + opacity: 0; + transform: translateX(100%) rotate($base-degrees * 4); + } + } + + .out .rollOut { + @include animate-prefixer(animation-name, rollOut); + } + +} diff --git a/src/sass/animations/zoom-enter/_zoomIn.scss b/src/sass/animations/zoom-enter/_zoomIn.scss new file mode 100644 index 00000000..79d07d1f --- /dev/null +++ b/src/sass/animations/zoom-enter/_zoomIn.scss @@ -0,0 +1,28 @@ +$animate-name: 'zoomIn'; + +@mixin zoomIn($prefix: '') { + 0% { + opacity: 0; + #{$prefix}transform: scale3d(.3, .3, .3); + } + + 50% { + opacity: 1; + } +} + +@if $use-zoomIn == true { + + @-webkit-keyframes #{$animate-name} { + @include zoomIn('-webkit-'); + } + + @keyframes #{$animate-name} { + @include zoomIn(); + } + + .in .#{$animate-name} { + @include animate-prefixer(animation-name, $animate-name); + } + +} diff --git a/src/sass/animations/zoom-enter/_zoomInDown.scss b/src/sass/animations/zoom-enter/_zoomInDown.scss new file mode 100644 index 00000000..94403c9a --- /dev/null +++ b/src/sass/animations/zoom-enter/_zoomInDown.scss @@ -0,0 +1,31 @@ +$animate-name: 'zoomInDown'; + +@mixin zoomInDown($prefix: '') { + 0% { + opacity: 0; + #{$prefix}transform: scale3d(.1, .1, .1) translate3d(0, -1000px, 0); + #{$prefix}animation-timing-function: cubic-bezier(0.550, 0.055, 0.675, 0.190); + } + + 60% { + opacity: 1; + #{$prefix}transform: scale3d(.475, .475, .475) translate3d(0, 60px, 0); + #{$prefix}animation-timing-function: cubic-bezier(0.175, 0.885, 0.320, 1); + } +} + +@if $use-zoomInDown == true { + + @-webkit-keyframes #{$animate-name} { + @include zoomInDown('-webkit-'); + } + + @keyframes #{$animate-name} { + @include zoomInDown(); + } + + .in .#{$animate-name} { + @include animate-prefixer(animation-name, $animate-name); + } + +} diff --git a/src/sass/animations/zoom-enter/_zoomInLeft.scss b/src/sass/animations/zoom-enter/_zoomInLeft.scss new file mode 100644 index 00000000..8c93ef8d --- /dev/null +++ b/src/sass/animations/zoom-enter/_zoomInLeft.scss @@ -0,0 +1,31 @@ +$animate-name: 'zoomInLeft'; + +@mixin zoomInLeft($prefix: '') { + 0% { + opacity: 0; + #{$prefix}transform: scale3d(.1, .1, .1) translate3d(-1000px, 0, 0); + #{$prefix}animation-timing-function: cubic-bezier(0.550, 0.055, 0.675, 0.190); + } + + 60% { + opacity: 1; + #{$prefix}transform: scale3d(.475, .475, .475) translate3d(10px, 0, 0); + #{$prefix}animation-timing-function: cubic-bezier(0.175, 0.885, 0.320, 1); + } +} + +@if $use-zoomInLeft == true { + + @-webkit-keyframes #{$animate-name} { + @include zoomInLeft('-webkit-'); + } + + @keyframes #{$animate-name} { + @include zoomInLeft(); + } + + .in .#{$animate-name} { + @include animate-prefixer(animation-name, $animate-name); + } + +} diff --git a/src/sass/animations/zoom-enter/_zoomInRight.scss b/src/sass/animations/zoom-enter/_zoomInRight.scss new file mode 100644 index 00000000..a61b56ff --- /dev/null +++ b/src/sass/animations/zoom-enter/_zoomInRight.scss @@ -0,0 +1,31 @@ +$animate-name: 'zoomInRight'; + +@mixin zoomInRight($prefix: '') { + 0% { + opacity: 0; + #{$prefix}transform: scale3d(.1, .1, .1) translate3d(1000px, 0, 0); + #{$prefix}animation-timing-function: cubic-bezier(0.550, 0.055, 0.675, 0.190); + } + + 60% { + opacity: 1; + #{$prefix}transform: scale3d(.475, .475, .475) translate3d(-10px, 0, 0); + #{$prefix}animation-timing-function: cubic-bezier(0.175, 0.885, 0.320, 1); + } +} + +@if $use-zoomInRight == true { + + @-webkit-keyframes #{$animate-name} { + @include zoomInRight('-webkit-'); + } + + @keyframes #{$animate-name} { + @include zoomInRight(); + } + + .in .#{$animate-name} { + @include animate-prefixer(animation-name, $animate-name); + } + +} diff --git a/src/sass/animations/zoom-enter/_zoomInUp.scss b/src/sass/animations/zoom-enter/_zoomInUp.scss new file mode 100644 index 00000000..95418045 --- /dev/null +++ b/src/sass/animations/zoom-enter/_zoomInUp.scss @@ -0,0 +1,31 @@ +$animate-name: 'zoomInUp'; + +@mixin zoomInUp($prefix: '') { + 0% { + opacity: 0; + #{$prefix}transform: scale3d(.1, .1, .1) translate3d(0, 1000px, 0); + #{$prefix}animation-timing-function: cubic-bezier(0.550, 0.055, 0.675, 0.190); + } + + 60% { + opacity: 1; + #{$prefix}transform: scale3d(.475, .475, .475) translate3d(0, -60px, 0); + #{$prefix}animation-timing-function: cubic-bezier(0.175, 0.885, 0.320, 1); + } +} + +@if $use-zoomInUp == true { + + @-webkit-keyframes #{$animate-name} { + @include zoomInUp('-webkit-'); + } + + @keyframes #{$animate-name} { + @include zoomInUp(); + } + + .in .#{$animate-name} { + @include animate-prefixer(animation-name, $animate-name); + } + +} diff --git a/src/sass/animations/zoom-exit/_zoomOut.scss b/src/sass/animations/zoom-exit/_zoomOut.scss new file mode 100644 index 00000000..b809a47a --- /dev/null +++ b/src/sass/animations/zoom-exit/_zoomOut.scss @@ -0,0 +1,32 @@ +$animate-name: 'zoomOut'; + +@mixin zoomOut($prefix: '') { + 0% { + opacity: 1; + } + + 50% { + opacity: 0; + #{$prefix}transform: scale3d(.3, .3, .3); + } + + 100% { + opacity: 0; + } +} + +@if $use-zoomOut == true { + + @-webkit-keyframes #{$animate-name} { + @include zoomOut('-webkit-'); + } + + @keyframes #{$animate-name} { + @include zoomOut(); + } + + .out .#{$animate-name} { + @include animate-prefixer(animation-name, $animate-name); + } + +} diff --git a/src/sass/animations/zoom-exit/_zoomOutDown.scss b/src/sass/animations/zoom-exit/_zoomOutDown.scss new file mode 100644 index 00000000..8ed429de --- /dev/null +++ b/src/sass/animations/zoom-exit/_zoomOutDown.scss @@ -0,0 +1,32 @@ +$animate-name: 'zoomOutDown'; + +@mixin zoomOutDown($prefix: '') { + 40% { + opacity: 1; + #{$prefix}transform: scale3d(.475, .475, .475) translate3d(0, -60px, 0); + #{$prefix}animation-timing-function: cubic-bezier(0.550, 0.055, 0.675, 0.190); + } + + 100% { + opacity: 0; + #{$prefix}transform: scale3d(.1, .1, .1) translate3d(0, 2000px, 0); + #{$prefix}transform-origin: center bottom; + #{$prefix}animation-timing-function: cubic-bezier(0.175, 0.885, 0.320, 1); + } +} + +@if $use-zoomOutDown == true { + + @-webkit-keyframes #{$animate-name} { + @include zoomOutDown('-webkit-'); + } + + @keyframes #{$animate-name} { + @include zoomOutDown(); + } + + .out .#{$animate-name} { + @include animate-prefixer(animation-name, $animate-name); + } + +} diff --git a/src/sass/animations/zoom-exit/_zoomOutLeft.scss b/src/sass/animations/zoom-exit/_zoomOutLeft.scss new file mode 100644 index 00000000..589a5cd0 --- /dev/null +++ b/src/sass/animations/zoom-exit/_zoomOutLeft.scss @@ -0,0 +1,30 @@ +$animate-name: 'zoomOutLeft'; + +@mixin zoomOutLeft($prefix: '') { + 40% { + opacity: 1; + #{$prefix}transform: scale3d(.475, .475, .475) translate3d(42px, 0, 0); + } + + 100% { + opacity: 0; + #{$prefix}transform: scale3d(.1) translate3d(-2000px, 0, 0); + #{$prefix}transform-origin: left center; + } +} + +@if $use-zoomOutLeft == true { + + @-webkit-keyframes #{$animate-name} { + @include zoomOutLeft('-webkit-'); + } + + @keyframes #{$animate-name} { + @include zoomOutLeft(); + } + + .out .#{$animate-name} { + @include animate-prefixer(animation-name, $animate-name); + } + +} diff --git a/src/sass/animations/zoom-exit/_zoomOutRight.scss b/src/sass/animations/zoom-exit/_zoomOutRight.scss new file mode 100644 index 00000000..82caa1a0 --- /dev/null +++ b/src/sass/animations/zoom-exit/_zoomOutRight.scss @@ -0,0 +1,30 @@ +$animate-name: 'zoomOutRight'; + +@mixin zoomOutRight($prefix: '') { + 40% { + opacity: 1; + #{$prefix}transform: scale3d(.475, .475, .475) translate3d(-42px, 0, 0); + } + + 100% { + opacity: 0; + #{$prefix}transform: scale3d(.1) translate3d(2000px, 0, 0); + #{$prefix}transform-origin: right center; + } +} + +@if $use-zoomOutRight == true { + + @-webkit-keyframes #{$animate-name} { + @include zoomOutRight('-webkit-'); + } + + @keyframes #{$animate-name} { + @include zoomOutRight(); + } + + .out .#{$animate-name} { + @include animate-prefixer(animation-name, $animate-name); + } + +} diff --git a/src/sass/animations/zoom-exit/_zoomOutUp.scss b/src/sass/animations/zoom-exit/_zoomOutUp.scss new file mode 100644 index 00000000..85d5bb75 --- /dev/null +++ b/src/sass/animations/zoom-exit/_zoomOutUp.scss @@ -0,0 +1,32 @@ +$animate-name: 'zoomOutUp'; + +@mixin zoomOutUp($prefix: '') { + 40% { + opacity: 1; + #{$prefix}transform: scale3d(.475, .475, .475) translate3d(0, 60px, 0); + #{$prefix}animation-timing-function: cubic-bezier(0.550, 0.055, 0.675, 0.190); + } + + 100% { + opacity: 0; + #{$prefix}transform: scale3d(.1, .1, .1) translate3d(0, -2000px, 0); + #{$prefix}transform-origin: center bottom; + #{$prefix}animation-timing-function: cubic-bezier(0.175, 0.885, 0.320, 1); + } +} + +@if $use-zoomOutUp == true { + + @-webkit-keyframes #{$animate-name} { + @include zoomOutUp('-webkit-'); + } + + @keyframes #{$animate-name} { + @include zoomOutUp(); + } + + .out .#{$animate-name} { + @include animate-prefixer(animation-name, $animate-name); + } + +} diff --git a/src/sass/helpers/_base.scss b/src/sass/helpers/_base.scss new file mode 100644 index 00000000..f1400abf --- /dev/null +++ b/src/sass/helpers/_base.scss @@ -0,0 +1,79 @@ +@charset "UTF-8"; + +/*! +Animate.css - http://daneden.me/animate +Licensed under the MIT license - http://opensource.org/licenses/MIT +Copyright (c) 2015 Daniel Eden +*/ + +body { + -webkit-backface-visibility: hidden; // Addresses a small issue in webkit: https://css-tricks.com/almanac/properties/b/backface-visibility/ +} + +.animated { + @include animate-prefixer(animation-duration, $base-duration); + @include animate-prefixer(animation-fill-mode, $base-fill-mode); + &.infinite { + animation-iteration-count: $base-iteration-count; + } + &.hinge { + @include animate-prefixer(animation-duration, $base-duration * 2); + } + &.bounceIn, + &.bounceOut { + @include animate-prefixer(animation-duration, $base-duration * 0.75); + } + &.flipOutX, + &.flipOutY { + @include animate-prefixer(animation-duration, $base-duration * 0.75); + } +} + +.in { + .animated { + &.fast, + &.fastIn { + @include animate-prefixer(animation-duration, $base-duration * 0.5); + } + &.slow, + &.slowIn { + @include animate-prefixer(animation-duration, $base-duration * 1.5); + } + &.xslow, + &.xslowIn { + @include animate-prefixer(animation-duration, $base-duration * 2.5); + } + &.hinge { + &.fast, + &.fastIn { + @include animate-prefixer(animation-duration, $base-duration); + } + &.slow, + &.slowIn { + @include animate-prefixer(animation-duration, $base-duration * 3); + } + } + } +} + +.out { + .animated { + &.fastOut { + @include animate-prefixer(animation-duration, $base-duration * 0.5); + } + &.slowOut { + @include animate-prefixer(animation-duration, $base-duration * 1.5); + } + &.xslowOut { + @include animate-prefixer(animation-duration, $base-duration * 2.5); + } + &.hinge { + &.fastOut { + @include animate-prefixer(animation-duration, $base-duration); + } + &.slowOut { + @include animate-prefixer(animation-duration, $base-duration * 3); + } + } + } +} diff --git a/src/sass/helpers/_delay.scss b/src/sass/helpers/_delay.scss new file mode 100644 index 00000000..63e9e4a3 --- /dev/null +++ b/src/sass/helpers/_delay.scss @@ -0,0 +1,67 @@ +.in .animated { + @include animate-prefixer (animation-delay, 0.5s); + &.delay500, &.delayIn500 { + @include animate-prefixer (animation-delay, 1s); + } + &.delay1, &.delay1000, &.delayIn1000 { + @include animate-prefixer (animation-delay, 1.5s); + } + &.delay1500, &.delayIn1500 { + @include animate-prefixer (animation-delay, 2s); + } + &.delay2,&.delay2000, &.delayIn2000 { + @include animate-prefixer (animation-delay, 2.5s); + } + &.delay2500, &.delayIn2500 { + @include animate-prefixer (animation-delay, 3s); + } + &.delay3,&.delay3000, &.delayIn3000 { + @include animate-prefixer (animation-delay, 3.5s); + } + &.delay3500, &.delayIn3500 { + @include animate-prefixer (animation-delay, 4s); + } + &.delay4, &.delay4000, &.delayIn4000 { + @include animate-prefixer (animation-delay, 4.5s); + } + &.delay4500, &.delayIn4500 { + @include animate-prefixer (animation-delay, 5s); + } + &.delay5, &delay5000, &delayIn5000 { + @include animate-prefixer (animation-delay, 5.5s); + } +} + +.out .animated { + //@include animate-prefixer (animation-delay, 0.5s); + &.delayOut500 { + @include animate-prefixer (animation-delay, 1s); + } + &.delayOut1000 { + @include animate-prefixer (animation-delay, 1.5s); + } + &.delayOut1500 { + @include animate-prefixer (animation-delay, 2s); + } + &.delayOut2000 { + @include animate-prefixer (animation-delay, 2.5s); + } + &.delayOut2500 { + @include animate-prefixer (animation-delay, 3s); + } + &.delayOut3000 { + @include animate-prefixer (animation-delay, 3.5s); + } + &.delayOut3500 { + @include animate-prefixer (animation-delay, 4s); + } + &.delayOut4000 { + @include animate-prefixer (animation-delay, 4.5s); + } + &.delayOut4500 { + @include animate-prefixer (animation-delay, 5s); + } + &delayOut5000 { + @include animate-prefixer (animation-delay, 5.5s); + } +} diff --git a/src/sass/helpers/_mixins.scss b/src/sass/helpers/_mixins.scss new file mode 100644 index 00000000..185c798a --- /dev/null +++ b/src/sass/helpers/_mixins.scss @@ -0,0 +1,40 @@ +/////////////////////////////////////////////////////////////////// +// Sass Mixins which will be used by the modules // +/////////////////////////////////////////////////////////////////// + +//===============================================================// +// Automatically add vendor prefixes in one hit // +//===============================================================// +// .fadeIn { // +// @include animate-prefixer(animation, 'fadeIn'); // +// } // +//===============================================================// +// // +//===============================================================// +@mixin animate-prefixer($property, $value...) { + -webkit-#{$property}: unquote('#{$value}'); + #{$property}: unquote('#{$value}'); +} +//===============================================================// +// Generate keyframes animations with vendor prefixes in one hit // +//===============================================================// +// .fadeIn { // +// @include animate-prefixer(animation, fadeIn); // +// } // +// @include animate-keyframe(fadeIn) { // +// 0% {opacity: 0;} // +// 100% {opacity: 1;} // +// } // +//===============================================================// +// Courtesy of @integralist: (twitter.com) // +//===============================================================// + +@mixin animate-keyframe($animation-name) { + @-webkit-keyframes #{$animation-name} { + @content; + } + + @keyframes #{$animation-name} { + @content; + } +} diff --git a/src/sass/helpers/_settings.scss b/src/sass/helpers/_settings.scss new file mode 100644 index 00000000..b643fa93 --- /dev/null +++ b/src/sass/helpers/_settings.scss @@ -0,0 +1,184 @@ +///////////////////////////////////////////////////////// +// Animation Default Settings // +///////////////////////////////////////////////////////// + + +// Base module settings +$base-duration : 1s !default; // used in 1-base module +$base-origin : top center !default; +$base-degrees : 30deg !default; // used in lightspeed & special modules +$base-fill-mode : both !default; +$base-iteration-count : infinite !default; + +$base-timing-function-in : ease-in !default; +$base-timing-function-out : ease-out !default; +$base-timing-function-in-out : ease-in-out !default; + +$base-distance : 10px !default; // used in fade, shake and bounce modules +$base-distance-big : 1000px !default; // used in fadeBig and bounce modules + + +// Rotate module settings +$rotate-degrees : 90deg !default; +$rotate-degrees-max : 200deg !default; +$rotate-origin : center center !default; + +// Flipper module settings +$flipper-perspective : 400px !default; +$flipper-translate : 150px !default; +$flipper-degrees : 10deg !default; +$flipper-degrees-max : 90deg !default; + + +// Hinge module settings +$hinge-origin : top left !default; +$hinge-degrees-max : 80deg !default; +$hinge-translate : 700px !default; + + +//==================================================================================================// +// Module loading // +//==================================================================================================// +// To include an animation module in the compiled css file, simply set it's attribute below to true // +// (all modules set to false will not be included) // +// The idea here is to only load the animations you want to use on a per project basis // +// This helps keep the compiled css file at its leanest // +//==================================================================================================// +// Hugely influenced and inspired by @csswizardry's inuit.css _vars.scss file // +//==================================================================================================// + +$use-all : false !default; // all animations status +$use-fade : $use-all !default; // all fades +$use-bounce : $use-all !default; // all bounces +$use-rotate : $use-all !default; // all rotates +$use-slide : $use-all !default; // all slide animations +$use-flipers : $use-all !default; // all flip animations +$use-light-speed : $use-all !default; // all light speed animations +$use-attention-seekers : $use-all !default; // all attention seeker animations +$use-special : $use-all !default; // all special animations +$use-zoom : $use-all !default; // all zoom animations +// Fade Enter +$use-fade-in : $use-fade !default; +$use-fadeIn : $use-fade-in !default; +$use-fadeInUp : $use-fade-in !default; +$use-fadeInUpBig : $use-fade-in !default; +$use-fadeInDown : $use-fade-in !default; +$use-fadeInDownBig : $use-fade-in !default; +$use-fadeInLeft : $use-fade-in !default; +$use-fadeInLeftBig : $use-fade-in !default; +$use-fadeInRight : $use-fade-in !default; +$use-fadeInRightBig : $use-fade-in !default; + + +// Fade Exit +$use-fade-out : $use-fade !default; +$use-fadeOut : $use-fade-out !default; +$use-fadeOutUp : $use-fade-out !default; +$use-fadeOutUpBig : $use-fade-out !default; +$use-fadeOutDown : $use-fade-out !default; +$use-fadeOutDownBig : $use-fade-out !default; +$use-fadeOutLeft : $use-fade-out !default; +$use-fadeOutLeftBig : $use-fade-out !default; +$use-fadeOutRight : $use-fade-out !default; +$use-fadeOutRightBig : $use-fade-out !default; + + +// Bounce Enter +$use-bounce-in : $use-bounce !default; +$use-bounceIn : $use-bounce-in !default; +$use-bounceInUp : $use-bounce-in !default; +$use-bounceInDown : $use-bounce-in !default; +$use-bounceInLeft : $use-bounce-in !default; +$use-bounceInRight : $use-bounce-in !default; + + +// Bounce Exit +$use-bounce-out : $use-bounce !default; +$use-bounceOut : $use-bounce-out !default; +$use-bounceOutUp : $use-bounce-out !default; +$use-bounceOutDown : $use-bounce-out !default; +$use-bounceOutLeft : $use-bounce-out !default; +$use-bounceOutRight : $use-bounce-out !default; + + + +// Rotate Enter +$use-rotate-in : $use-rotate !default; +$use-rotateIn : $use-rotate-in !default; +$use-rotateInUpLeft : $use-rotate-in !default; +$use-rotateInUpRight : $use-rotate-in !default; +$use-rotateInDownLeft : $use-rotate-in !default; +$use-rotateInDownRight : $use-rotate-in !default; + + +// Rotate Exit +$use-rotate-out : $use-rotate !default; +$use-rotateOut : $use-rotate-out !default; +$use-rotateOutUpLeft : $use-rotate-out !default; +$use-rotateOutUpRight : $use-rotate-out !default; +$use-rotateOutDownLeft : $use-rotate-out !default; +$use-rotateOutDownRight : $use-rotate-out !default; + + +// Slide Enter +$use-slide-in : $use-slide !default; +$use-slideIn : $use-slide-in !default; +$use-slideInUp : $use-slide-in !default; +$use-slideInDown : $use-slide-in !default; +$use-slideInLeft : $use-slide-in !default; +$use-slideInRight : $use-slide-in !default; + +// Slide Exit +$use-slide-out : $use-slide !default; +$use-slideOut : $use-slide-out !default; +$use-slideOutUp : $use-slide-out !default; +$use-slideOutDown : $use-slide-out !default; +$use-slideOutLeft : $use-slide-out !default; +$use-slideOutRight : $use-slide-out !default; + +// Flippers +$use-flip : $use-flipers !default; +$use-flipInX : $use-flipers !default; +$use-flipInY : $use-flipers !default; +$use-flipOutX : $use-flipers !default; +$use-flipOutY : $use-flipers !default; + + +// Lightspeed +$use-lightSpeedIn : $use-light-speed !default; +$use-lightSpeedOut : $use-light-speed !default; + + +// Attention Seekers +$use-bounce : $use-attention-seekers !default; +$use-flash : $use-attention-seekers !default; +$use-pulse : $use-attention-seekers !default; +$use-wiggle : $use-attention-seekers !default; +$use-swing : $use-attention-seekers !default; +$use-shake : $use-attention-seekers !default; +$use-tada : $use-attention-seekers !default; +$use-wobble : $use-attention-seekers !default; + + +// Special +$use-hinge : $use-special !default; +$use-rollIn : $use-special !default; +$use-rollOut : $use-special !default; + + +// Zoom In +$use-zoom-in : $use-zoom !default; +$use-zoomIn : $use-zoom-in !default; +$use-zoomInDown : $use-zoom-in !default; +$use-zoomInLeft : $use-zoom-in !default; +$use-zoomInRight : $use-zoom-in !default; +$use-zoomInUp : $use-zoom-in !default; + + +// Zoom Out +$use-zoom-out : $use-zoom !default; +$use-zoomOut : $use-zoom-out !default; +$use-zoomOutDown : $use-zoom-out !default; +$use-zoomOutLeft : $use-zoom-out !default; +$use-zoomOutRight : $use-zoom-out !default; +$use-zoomOutUp : $use-zoom-out !default; From 2ac3dde46c6bc249b2e91e7e5f5971dfed5ad554 Mon Sep 17 00:00:00 2001 From: magicbruno Date: Tue, 24 Jan 2017 12:46:53 +0100 Subject: [PATCH 3/6] Grunt file restored to original --- Gruntfile.js | 24 ++++++++++++------------ 1 file changed, 12 insertions(+), 12 deletions(-) diff --git a/Gruntfile.js b/Gruntfile.js index 6a20ef00..8c7acb37 100644 --- a/Gruntfile.js +++ b/Gruntfile.js @@ -30,7 +30,7 @@ module.exports = function(grunt) { production: false, assets: '<%= app.docs.dest %>/assets', postprocess: require('pretty'), - // mybaseDir: path.resolve('<%= app.docs.dest %>'), + mybaseDir: path.resolve('<%= app.docs.dest %>'), mybaseDir: '/<%= app.docs.dest %>', // metadata @@ -175,16 +175,16 @@ module.exports = function(grunt) { }, //jscs -// jscs: { -// options: { -// config: 'src/js/.jscsrc', -// reporter: 'text.js', -// reporterOutput: 'jscs.report.txt' -// }, -// dist: { -// src: ['<%= app.src.scripts %>', 'Gruntfile.js'] -// } -// }, + jscs: { + options: { + config: 'src/js/.jscsrc', + reporter: 'text.js', + reporterOutput: 'jscs.report.txt' + }, + dist: { + src: ['<%= app.src.scripts %>', 'Gruntfile.js'] + } + }, // uglify uglify: { @@ -320,7 +320,7 @@ module.exports = function(grunt) { grunt.loadNpmTasks('assemble'); // tasks - grunt.registerTask('dist', ['clean:dist', 'less:dist', 'jshint:dist', 'concat:dist', 'cssmin:dist', 'copy:distImages', 'copy:distVendor', /*'jscs:dist',*/ 'uglify:dist', 'copy:readme']); + grunt.registerTask('dist', ['clean:dist', 'less:dist', 'jshint:dist', 'concat:dist', 'cssmin:dist', 'copy:distImages', 'copy:distVendor', 'jscs:dist', 'uglify:dist', 'copy:readme']); grunt.registerTask('docs', ['clean:docs', 'assemble', 'less:docs', 'concat:docs', 'copy:docsAssets', 'copy:docsHighlightAssets', 'copy:distToDocs']); From cb56520b8d6394afbbb7f8d57c718d65db9315d6 Mon Sep 17 00:00:00 2001 From: magicbruno Date: Tue, 24 Jan 2017 13:02:38 +0100 Subject: [PATCH 4/6] Resolving conflicts --- dist/jquery.bxslider.js | 460 ++++------------------------------------ 1 file changed, 46 insertions(+), 414 deletions(-) diff --git a/dist/jquery.bxslider.js b/dist/jquery.bxslider.js index 99122711..89bafda8 100644 --- a/dist/jquery.bxslider.js +++ b/dist/jquery.bxslider.js @@ -6,98 +6,6 @@ * Licensed under MIT (http://opensource.org/licenses/MIT) */ -<<<<<<< HEAD -;(function($) { - var defaults = { - // GENERAL - mode: 'horizontal', - slideSelector: '', - infiniteLoop: true, - hideControlOnEnd: false, - speed: 500, - easing: null, - slideMargin: 0, - startSlide: 0, - randomStart: false, - captions: false, - ticker: false, - tickerHover: false, - adaptiveHeight: false, - adaptiveHeightSpeed: 500, - video: false, - useCSS: true, - preloadImages: 'visible', - responsive: true, - slideZIndex: 50, - wrapperClass: 'bx-wrapper', - // TOUCH - touchEnabled: true, - swipeThreshold: 50, - oneToOneTouch: true, - preventDefaultSwipeX: true, - preventDefaultSwipeY: false, - // ACCESSIBILITY - ariaLive: true, - ariaHidden: true, - // KEYBOARD - keyboardEnabled: false, - // PAGER - pager: true, - pagerType: 'full', - pagerShortSeparator: ' / ', - pagerSelector: null, - buildPager: null, - pagerCustom: null, - // CONTROLS - controls: true, - nextText: 'Next', - prevText: 'Prev', - nextSelector: null, - prevSelector: null, - autoControls: false, - startText: 'Start', - stopText: 'Stop', - autoControlsCombine: false, - autoControlsSelector: null, - pauseBeforeOut: 0, - pauseAfterIn: 0, - // AUTO - auto: false, - pause: 4000, - autoStart: true, - autoDirection: 'next', - stopAutoOnClick: false, - autoHover: false, - autoDelay: 0, - autoSlideForOnePage: false, - // CAROUSEL - minSlides: 1, - maxSlides: 1, - moveSlides: 0, - slideWidth: 0, - shrinkItems: false, - // CALLBACKS - onSliderLoad: function() { - return true; - }, - onSlideBefore: function() { - return true; - }, - onSlideAfter: function() { - return true; - }, - onSlideNext: function() { - return true; - }, - onSlidePrev: function() { - return true; - }, - onSliderResize: function() { - return true; - } - }; - $.fn.bxSlider = function(options) { -======= ;(function ($) { var defaults = { // GENERAL @@ -180,7 +88,7 @@ } }; $.fn.bxSlider = function (options) { ->>>>>>> origin/mb_master + if (this.length === 0) { return this; } @@ -194,13 +102,8 @@ // create a namespace to be used throughout the plugin var slider = {}, // set a reference to our slider element el = this, // get the original window dimens (thanks a lot IE) -<<<<<<< HEAD - windowWidth = $(window).width(), - windowHeight = $(window).height(); -======= windowWidth = $(window).width() , windowHeight = $(window).height(); ->>>>>>> origin/mb_master // Return if slider is already initialized if ($(el).data('bxSlider')) { return; @@ -310,12 +213,8 @@ if (slider.usingCSS && slider.settings.easing) { el.css('-' + slider.cssPrefix + '-transition-timing-function', slider.settings.easing); // if not using CSS and no easing value was supplied, use the default JS animation easing (swing) -<<<<<<< HEAD - } else if (!slider.settings.easing) { -======= } else if (!slider.settings.easing) { ->>>>>>> origin/mb_master slider.settings.easing = 'swing'; } // make modifications to the viewport (.bx-viewport) @@ -357,13 +256,8 @@ }); // prepare the z-index on the showing element slider.children.eq(slider.settings.startSlide).css({ -<<<<<<< HEAD - zIndex: slider.settings.slideZIndex, - display: 'block' -======= zIndex: slider.settings.slideZIndex , display: 'block' ->>>>>>> origin/mb_master }); } // Set animation class to 'out' @@ -403,44 +297,26 @@ slider.viewport.after(slider.controls.el); } // if ticker mode, do not allow a pager -<<<<<<< HEAD - } else { -======= } else { ->>>>>>> origin/mb_master slider.settings.pager = false; } loadElements(preloadSelector, start); }; -<<<<<<< HEAD - var loadElements = function(selector, callback) { - var total = selector.find('img:not([src=""]), iframe').length, - count = 0; -======= + var loadElements = function (selector, callback) { var total = selector.find('img:not([src=""]), iframe').length , count = 0; ->>>>>>> origin/mb_master if (total === 0) { callback(); return; } -<<<<<<< HEAD - selector.find('img:not([src=""]), iframe').each(function() { - $(this).one('load error', function() { - if (++count === total) { - callback(); - } - }).each(function() { -======= selector.find('img:not([src=""]), iframe').each(function () { $(this).one('load error', function () { if (++count === total) { callback(); } }).each(function () { ->>>>>>> origin/mb_master if (this.complete) { $(this).load(); } @@ -453,15 +329,9 @@ var start = function () { // if infinite loop, prepare additional slides if (slider.settings.infiniteLoop && slider.settings.mode !== 'fade' && !slider.settings.ticker) { -<<<<<<< HEAD - var slice = slider.settings.mode === 'vertical' ? slider.settings.minSlides : slider.settings.maxSlides, - sliceAppend = slider.children.slice(0, slice).clone(true).addClass('bx-clone'), - slicePrepend = slider.children.slice(-slice).clone(true).addClass('bx-clone'); -======= var slice = slider.settings.mode === 'vertical' ? slider.settings.minSlides : slider.settings.maxSlides , sliceAppend = slider.children.slice(0, slice).clone(true).addClass('bx-clone') , slicePrepend = slider.children.slice(-slice).clone(true).addClass('bx-clone'); ->>>>>>> origin/mb_master if (slider.settings.ariaHidden) { sliceAppend.attr('aria-hidden', true); slicePrepend.attr('aria-hidden', true); @@ -532,12 +402,8 @@ if (!slider.carousel) { children = slider.children.eq(slider.active.index); // if carousel, return a slice of children -<<<<<<< HEAD - } else { -======= } else { ->>>>>>> origin/mb_master // get the individual slide index var currentIndex = slider.settings.moveSlides === 1 ? slider.active.index : slider.active.index * getMoveBy(); // add the current slide to the children @@ -564,25 +430,16 @@ height += slider.settings.slideMargin * (slider.settings.minSlides - 1); } // if not "vertical" mode, calculate the max height of the children -<<<<<<< HEAD - } else { - height = Math.max.apply(Math, children.map(function() { -======= } else { height = Math.max.apply(Math, children.map(function () { ->>>>>>> origin/mb_master return $(this).outerHeight(false); }).get()); } if (slider.viewport.css('box-sizing') === 'border-box') { height += parseFloat(slider.viewport.css('padding-top')) + parseFloat(slider.viewport.css('padding-bottom')) + parseFloat(slider.viewport.css('border-top-width')) + parseFloat(slider.viewport.css('border-bottom-width')); -<<<<<<< HEAD - } else if (slider.viewport.css('box-sizing') === 'padding-box') { -======= } else if (slider.viewport.css('box-sizing') === 'padding-box') { ->>>>>>> origin/mb_master height += parseFloat(slider.viewport.css('padding-top')) + parseFloat(slider.viewport.css('padding-bottom')); } return height; @@ -612,12 +469,8 @@ if (slider.settings.slideWidth === 0 || (slider.settings.slideWidth > wrapWidth && !slider.carousel) || slider.settings.mode === 'vertical') { newElWidth = wrapWidth; // if carousel, use the thresholds to determine the width -<<<<<<< HEAD - } else if (slider.settings.maxSlides > 1 && slider.settings.mode === 'horizontal') { -======= } else if (slider.settings.maxSlides > 1 && slider.settings.mode === 'horizontal') { ->>>>>>> origin/mb_master if (wrapWidth > slider.maxThreshold) { return newElWidth; } @@ -633,43 +486,29 @@ /** * Returns the number of slides currently visible in the viewport (includes partially visible slides) */ -<<<<<<< HEAD - var getNumberSlidesShowing = function() { - var slidesShowing = 1, - childWidth = null; -======= + var getNumberSlidesShowing = function () { var slidesShowing = 1 , childWidth = null; ->>>>>>> origin/mb_master if (slider.settings.mode === 'horizontal' && slider.settings.slideWidth > 0) { // if viewport is smaller than minThreshold, return minSlides if (slider.viewport.width() < slider.minThreshold) { slidesShowing = slider.settings.minSlides; // if viewport is larger than maxThreshold, return maxSlides -<<<<<<< HEAD - } else if (slider.viewport.width() > slider.maxThreshold) { - slidesShowing = slider.settings.maxSlides; - // if viewport is between min / max thresholds, divide viewport width by first child width - } else { -======= + } else if (slider.viewport.width() > slider.maxThreshold) { slidesShowing = slider.settings.maxSlides; // if viewport is between min / max thresholds, divide viewport width by first child width } else { ->>>>>>> origin/mb_master childWidth = slider.children.first().width() + slider.settings.slideMargin; slidesShowing = Math.floor((slider.viewport.width() + slider.settings.slideMargin) / childWidth); } // if "vertical" mode, slides showing will always be minSlides -<<<<<<< HEAD - } else if (slider.settings.mode === 'vertical') { -======= + } else if (slider.settings.mode === 'vertical') { ->>>>>>> origin/mb_master slidesShowing = slider.settings.minSlides; } return slidesShowing; @@ -677,17 +516,11 @@ /** * Returns the number of pages (one full viewport of slides is one "page") */ -<<<<<<< HEAD - var getPagerQty = function() { - var pagerQty = 0, - breakPoint = 0, - counter = 0; -======= + var getPagerQty = function () { var pagerQty = 0 , breakPoint = 0 , counter = 0; ->>>>>>> origin/mb_master // if moveSlides is specified by the user if (slider.settings.moveSlides > 0) { if (slider.settings.infiniteLoop) { @@ -702,12 +535,9 @@ } } // if moveSlides is 0 (auto) divide children length by sides showing, then round up -<<<<<<< HEAD - } else { -======= + } - else { ->>>>>>> origin/mb_master + else {r pagerQty = Math.ceil(slider.children.length / getNumberSlidesShowing()); } return pagerQty; @@ -745,12 +575,9 @@ setPositionProperty(-position.top, 'reset', 0); } // if not last slide -<<<<<<< HEAD - } else { -======= + } else { ->>>>>>> origin/mb_master // get the position of the first showing slide position = slider.children.eq(slider.active.index * getMoveBy()).position(); // check for last slide @@ -761,12 +588,8 @@ if (position !== undefined) { if (slider.settings.mode === 'horizontal') { setPositionProperty(-position.left, 'reset', 0); -<<<<<<< HEAD - } else if (slider.settings.mode === 'vertical') { -======= } else if (slider.settings.mode === 'vertical') { ->>>>>>> origin/mb_master setPositionProperty(-position.top, 'reset', 0); } } @@ -842,12 +665,9 @@ } } // use JS animate -<<<<<<< HEAD - } else { -======= + } else { ->>>>>>> origin/mb_master animateObj = {}; animateObj[slider.animProp] = value; if (type === 'slide') { @@ -870,17 +690,11 @@ /** * Populates the pager with proper amount of pages */ -<<<<<<< HEAD - var populatePager = function() { - var pagerHtml = '', - linkContent = '', - pagerQty = getPagerQty(); -======= + var populatePager = function () { var pagerHtml = '' , linkContent = '' - , pagerQty = getPagerQty(); ->>>>>>> origin/mb_master + , pagerQty = getPagerQty();r // loop through each pager item for (var i = 0; i < pagerQty; i++) { linkContent = ''; @@ -911,12 +725,9 @@ if (slider.settings.pagerSelector) { $(slider.settings.pagerSelector).html(slider.pagerEl); // if no pager selector was supplied, add it after the wrapper -<<<<<<< HEAD - } else { -======= + } else { ->>>>>>> origin/mb_master slider.controls.el.addClass('bx-has-pager').append(slider.pagerEl); } // populate the pager @@ -970,24 +781,18 @@ if (slider.settings.autoControlsCombine) { slider.controls.autoEl.append(slider.controls.start); // if autoControlsCombine is false, insert both controls -<<<<<<< HEAD - } else { -======= + } else { ->>>>>>> origin/mb_master slider.controls.autoEl.append(slider.controls.start).append(slider.controls.stop); } // if auto controls selector was supplied, populate it with the controls if (slider.settings.autoControlsSelector) { $(slider.settings.autoControlsSelector).html(slider.controls.autoEl); // if auto controls selector was not supplied, add it after the wrapper -<<<<<<< HEAD - } else { -======= + } else { ->>>>>>> origin/mb_master slider.controls.el.addClass('bx-has-controls-auto').append(slider.controls.autoEl); } // update the auto controls @@ -1105,11 +910,8 @@ // remove all pager active classes slider.pagerEl.find('a').removeClass('active'); // apply the active class for all pagers -<<<<<<< HEAD - slider.pagerEl.each(function(i, el) { -======= - slider.pagerEl.each(function (i, el) { ->>>>>>> origin/mb_master + + slider.pagerEl.each(function (i, el) {r $(el).find('a').eq(slideIndex).addClass('active'); }); }; @@ -1125,30 +927,22 @@ // set the new position position = slider.children.eq(0).position(); // carousel, last slide -<<<<<<< HEAD - } else if (slider.active.index === getPagerQty() - 1 && slider.carousel) { - position = slider.children.eq((getPagerQty() - 1) * getMoveBy()).position(); - // last slide - } else if (slider.active.index === slider.children.length - 1) { -======= + } else if (slider.active.index === getPagerQty() - 1 && slider.carousel) { position = slider.children.eq((getPagerQty() - 1) * getMoveBy()).position(); // last slide } else if (slider.active.index === slider.children.length - 1) { ->>>>>>> origin/mb_master +r position = slider.children.eq(slider.children.length - 1).position(); } if (position) { if (slider.settings.mode === 'horizontal') { setPositionProperty(-position.left, 'reset', 0); -<<<<<<< HEAD - } else if (slider.settings.mode === 'vertical') { -======= + } else if (slider.settings.mode === 'vertical') { ->>>>>>> origin/mb_master setPositionProperty(-position.top, 'reset', 0); } } @@ -1169,12 +963,9 @@ if (slider.settings.autoControlsCombine) { slider.controls.autoEl.html(slider.controls[state]); // if autoControlsCombine is false, apply the "active" class to the appropriate control -<<<<<<< HEAD - } else { -======= + } else { ->>>>>>> origin/mb_master slider.controls.autoEl.find('a').removeClass('active'); slider.controls.autoEl.find('a:not(.bx-' + state + ')').addClass('active'); } @@ -1193,13 +984,7 @@ slider.controls.prev.addClass('disabled'); slider.controls.next.removeClass('disabled'); // if last slide -<<<<<<< HEAD - } else if (slider.active.index === getPagerQty() - 1) { - slider.controls.next.addClass('disabled'); - slider.controls.prev.removeClass('disabled'); - // if any slide in the middle - } else { -======= + } else if (slider.active.index === getPagerQty() - 1) { slider.controls.next.addClass('disabled'); @@ -1207,7 +992,6 @@ // if any slide in the middle } else { ->>>>>>> origin/mb_master slider.controls.prev.removeClass('disabled'); slider.controls.next.removeClass('disabled'); } @@ -1221,12 +1005,9 @@ if (slider.settings.autoDelay > 0) { var timeout = setTimeout(el.startAuto, slider.settings.autoDelay); // if autoDelay was not supplied, start the auto show normally -<<<<<<< HEAD - } else { -======= + } else { ->>>>>>> origin/mb_master el.startAuto(); //add focus and blur events to ensure its running if timeout gets paused $(window).focus(function () { @@ -1260,25 +1041,17 @@ /** * Initializes the ticker process */ -<<<<<<< HEAD - var initTicker = function() { - var startPosition = 0, - position, transform, value, idx, ratio, property, newSpeed, totalDimens; -======= + var initTicker = function () { var startPosition = 0 , position, transform, value, idx, ratio, property, newSpeed, totalDimens; ->>>>>>> origin/mb_master // if autoDirection is "next", append a clone of the entire slider if (slider.settings.autoDirection === 'next') { el.append(slider.children.clone().addClass('bx-clone')); // if autoDirection is "prev", prepend a clone of the entire slider, and set the left position -<<<<<<< HEAD - } else { -======= + } else { ->>>>>>> origin/mb_master el.prepend(slider.children.clone().addClass('bx-clone')); position = slider.children.first().position(); startPosition = slider.settings.mode === 'horizontal' ? -position.left : -position.top; @@ -1336,19 +1109,7 @@ /** * Runs a continuous loop, news ticker-style */ -<<<<<<< HEAD - var tickerLoop = function(resumeSpeed) { - var speed = resumeSpeed ? resumeSpeed : slider.settings.speed, - position = { - left: 0, - top: 0 - }, - reset = { - left: 0, - top: 0 - }, - animateProperty, resetValue, params; -======= + var tickerLoop = function (resumeSpeed) { var speed = resumeSpeed ? resumeSpeed : slider.settings.speed , position = { @@ -1360,17 +1121,13 @@ , top: 0 } , animateProperty, resetValue, params; ->>>>>>> origin/mb_master // if "next" animate left position to last child, then reset left to 0 if (slider.settings.autoDirection === 'next') { position = el.find('.bx-clone').first().position(); // if "prev" animate left position to 0, then reset left to first non-clone child -<<<<<<< HEAD - } else { -======= + } else { ->>>>>>> origin/mb_master reset = slider.children.first().position(); } animateProperty = slider.settings.mode === 'horizontal' ? -position.left : -position.top; @@ -1383,15 +1140,7 @@ /** * Check if el is on screen */ -<<<<<<< HEAD - var isOnScreen = function(el) { - var win = $(window), - viewport = { - top: win.scrollTop(), - left: win.scrollLeft() - }, - bounds = el.offset(); -======= + var isOnScreen = function (el) { var win = $(window) , viewport = { @@ -1399,7 +1148,6 @@ , left: win.scrollLeft() } , bounds = el.offset(); ->>>>>>> origin/mb_master viewport.right = viewport.left + win.width(); viewport.bottom = viewport.top + win.height(); bounds.right = bounds.left + el.outerWidth(); @@ -1409,19 +1157,12 @@ /** * Initializes keyboard events */ -<<<<<<< HEAD - var keyPress = function(e) { - var activeElementTag = document.activeElement.tagName.toLowerCase(), - tagFilters = 'input|textarea', - p = new RegExp(activeElementTag, ['i']), - result = p.exec(tagFilters); -======= + var keyPress = function (e) { var activeElementTag = document.activeElement.tagName.toLowerCase() , tagFilters = 'input|textarea' , p = new RegExp(activeElementTag, ['i']) , result = p.exec(tagFilters); ->>>>>>> origin/mb_master if (result == null && isOnScreen(el)) { if (e.keyCode === 39) { clickNextBind(e); @@ -1440,21 +1181,13 @@ // initialize object to contain all touch values slider.touch = { start: { -<<<<<<< HEAD - x: 0, - y: 0 - }, - end: { - x: 0, - y: 0 -======= + x: 0 , y: 0 } , end: { x: 0 , y: 0 ->>>>>>> origin/mb_master } }; slider.viewport.bind('touchstart MSPointerDown pointerdown', onTouchStart); @@ -1483,13 +1216,9 @@ else { // record the original position when touch starts slider.touch.originalPos = el.position(); -<<<<<<< HEAD - var orig = e.originalEvent, - touchPoints = (typeof orig.changedTouches !== 'undefined') ? orig.changedTouches : [orig]; -======= + var orig = e.originalEvent , touchPoints = (typeof orig.changedTouches !== 'undefined') ? orig.changedTouches : [orig]; ->>>>>>> origin/mb_master // record the starting touch x, y coordinates slider.touch.start.x = touchPoints[0].pageX; slider.touch.start.y = touchPoints[0].pageY; @@ -1529,15 +1258,7 @@ * @param e (event) * - DOM event object */ -<<<<<<< HEAD - var onTouchMove = function(e) { - var orig = e.originalEvent, - touchPoints = (typeof orig.changedTouches !== 'undefined') ? orig.changedTouches : [orig], // if scrolling on y axis, do not prevent default - xMovement = Math.abs(touchPoints[0].pageX - slider.touch.start.x), - yMovement = Math.abs(touchPoints[0].pageY - slider.touch.start.y), - value = 0, - change = 0; -======= + var onTouchMove = function (e) { var orig = e.originalEvent , touchPoints = (typeof orig.changedTouches !== 'undefined') ? orig.changedTouches : [orig], // if scrolling on y axis, do not prevent default @@ -1545,17 +1266,12 @@ , yMovement = Math.abs(touchPoints[0].pageY - slider.touch.start.y) , value = 0 , change = 0; ->>>>>>> origin/mb_master // x axis swipe if ((xMovement * 3) > yMovement && slider.settings.preventDefaultSwipeX) { e.preventDefault(); // y axis swipe -<<<<<<< HEAD - } else if ((yMovement * 3) > xMovement && slider.settings.preventDefaultSwipeY) { -======= } else if ((yMovement * 3) > xMovement && slider.settings.preventDefaultSwipeY) { ->>>>>>> origin/mb_master e.preventDefault(); } if (slider.settings.mode !== 'fade' && slider.settings.oneToOneTouch) { @@ -1564,12 +1280,9 @@ change = touchPoints[0].pageX - slider.touch.start.x; value = slider.touch.originalPos.left + change; // if vertical, drag along y axis -<<<<<<< HEAD - } else { -======= + } else { ->>>>>>> origin/mb_master change = touchPoints[0].pageY - slider.touch.start.y; value = slider.touch.originalPos.top + change; } @@ -1586,17 +1299,11 @@ slider.viewport.unbind('touchmove MSPointerMove pointermove', onTouchMove); //enable slider controls as soon as user stops interacing with slides slider.controls.el.removeClass('disabled'); -<<<<<<< HEAD - var orig = e.originalEvent, - touchPoints = (typeof orig.changedTouches !== 'undefined') ? orig.changedTouches : [orig], - value = 0, - distance = 0; -======= + var orig = e.originalEvent , touchPoints = (typeof orig.changedTouches !== 'undefined') ? orig.changedTouches : [orig] , value = 0 , distance = 0; ->>>>>>> origin/mb_master // record end x, y positions slider.touch.end.x = touchPoints[0].pageX; slider.touch.end.y = touchPoints[0].pageY; @@ -1613,12 +1320,9 @@ el.stopAuto(); } // not fade mode -<<<<<<< HEAD - } else { -======= + } else { ->>>>>>> origin/mb_master // calculate distance and el's animate property if (slider.settings.mode === 'horizontal') { distance = slider.touch.end.x - slider.touch.start.x; @@ -1668,13 +1372,9 @@ } else { // get the new window dimens (again, thank you IE) -<<<<<<< HEAD - var windowWidthNew = $(window).width(), - windowHeightNew = $(window).height(); -======= + var windowWidthNew = $(window).width() , windowHeightNew = $(window).height(); ->>>>>>> origin/mb_master // make sure that it is a true window resize // *we must check this because our dinosaur friend IE fires a window resize event when certain DOM elements // are resized. Can you just die already?* @@ -1715,22 +1415,16 @@ if (slideIndex < 0) { if (slider.settings.infiniteLoop) { return getPagerQty() - 1; -<<<<<<< HEAD - } else { -======= + } else { ->>>>>>> origin/mb_master //we don't go to undefined slides return slider.active.index; } // if slideIndex is greater than children length, set active index to 0 (this happens during infinite loop) -<<<<<<< HEAD - } else if (slideIndex >= getPagerQty()) { -======= + } else if (slideIndex >= getPagerQty()) { ->>>>>>> origin/mb_master if (slider.settings.infiniteLoop) { return 0; } @@ -1739,12 +1433,9 @@ return slider.active.index; } // set active index to requested slide -<<<<<<< HEAD - } else { -======= + } else { ->>>>>>> origin/mb_master return slideIndex; } }; @@ -1765,16 +1456,7 @@ el.goToSlide = function (slideIndex, direction) { // onSlideBefore, onSlideNext, onSlidePrev callbacks // Allow transition canceling based on returned value -<<<<<<< HEAD - var performTransition = true, - moveBy = 0, - position = { - left: 0, - top: 0 - }, - lastChild = null, - lastShowingIndex, eq, value, requestEl; -======= + var performTransition = true , moveBy = 0 , position = { @@ -1783,7 +1465,6 @@ } , lastChild = null , lastShowingIndex, eq, value, requestEl; ->>>>>>> origin/mb_master // store the old index slider.oldIndex = slider.active.index; //set new index @@ -1841,12 +1522,9 @@ updateAfterSlideTransition(); }); // slider mode is not "fade" -<<<<<<< HEAD - } else { -======= + } else { ->>>>>>> origin/mb_master // if adaptiveHeight is true and next height is different from current height, animate to the new height if (slider.settings.adaptiveHeight && slider.viewport.height() !== getViewportHeight()) { slider.viewport.animate({ @@ -1875,22 +1553,16 @@ lastChild = el.children('.bx-clone').eq(eq); position = lastChild.position(); // if infinite loop and "Next" is clicked on the last slide -<<<<<<< HEAD - } else if (direction === 'next' && slider.active.index === 0) { -======= + } else if (direction === 'next' && slider.active.index === 0) { ->>>>>>> origin/mb_master // get the last clone position position = el.find('> .bx-clone').eq(slider.settings.maxSlides).position(); slider.active.last = false; // normal non-zero requests -<<<<<<< HEAD - } else if (slideIndex >= 0) { -======= + } else if (slideIndex >= 0) { ->>>>>>> origin/mb_master //parseInt is applied to allow floats for slides/page requestEl = slideIndex * parseInt(getMoveBy()); position = slider.children.eq(requestEl).position(); @@ -1911,37 +1583,10 @@ if (slider.settings.ariaHidden) { applyAriaHiddenAttributes(slider.active.index * getMoveBy()); } -<<<<<<< HEAD - setTimeout(function() { - slider.children.eq(slider.active.index).removeClass('out').addClass('in'); - }, 200); - }; - /** - * Performs slide transition to the specified slide with delay - + to allow perform single elements out animation - * - * @param slideIndex (int) - * - the destination slide's index (zero-based) - * - * @param direction (string) - * - INTERNAL USE ONLY - the direction of travel ("prev" / "next") - **/ - el.goToSlideDelayed = function(slideIndex, direction) { - var theSlide = slider.children.eq(slideIndex); - var customDelay = parseInt(theSlide.attr('data-pauseBeforeOut')) || slider.settings.pauseBeforeOut; - slider.children.eq(slider.active.index).removeClass('in').addClass('out'); - if (!customDelay) { - el.goToSlide(slideIndex, direction); - } else { - setTimeout(function() { - el.goToSlide(slideIndex, direction); - }, customDelay); - } -======= + setTimeout(function () { slider.children.eq(slider.active.index).removeClass('out').addClass('in'); }, 200); ->>>>>>> origin/mb_master }; /** * Performs slide transition to the specified slide with dela @@ -1997,24 +1642,14 @@ el.startAuto = function (preventControlUpdate) { // if an interval already exists, disregard call var theSlide = slider.children.eq(slider.active.index); -<<<<<<< HEAD - // Checking if current slide defines a custom delay - // delay is the sum of pauseAfterIn and pause. This allow to define a global pause (for reading) - // and a customized pause for completition of single elements animations - var customDelay = parseInt(theSlide.attr('data-pauseAfterInt')) || slider.settings.pauseAfterIn || 0; -======= var customDelay = parseInt(theSlide.attr('data-pauseAfterInt')) || slider.settings.pauseAfterInt || 0; ->>>>>>> origin/mb_master customDelay += parseInt(theSlide.attr('data-pause')) || slider.settings.pause || 0; if (slider.interval || (!customDelay)) { return; } // create an interval -<<<<<<< HEAD - slider.interval = setTimeout(function() { -======= + slider.interval = setTimeout(function () { ->>>>>>> origin/mb_master if (slider.settings.autoDirection === 'next') { el.goToNextSlide(); } @@ -2164,11 +1799,8 @@ /** * Reload the slider (revert all DOM changes, and re-initialize) */ -<<<<<<< HEAD - el.reloadSlider = function(settings) { -======= + el.reloadSlider = function (settings) { ->>>>>>> origin/mb_master if (settings !== undefined) { options = settings; } From 83bb9cc183fb4fe6932e9a1eb30504341b54ea73 Mon Sep 17 00:00:00 2001 From: magicbruno Date: Tue, 24 Jan 2017 13:24:14 +0100 Subject: [PATCH 5/6] Solving conflicts --- Gruntfile.js | 6 +- dist/README.md | 132 +++++- dist/jquery.bxslider.js | 698 +++++++++++++++---------------- dist/jquery.bxslider.min.css | 4 - dist/jquery.bxslider.min.js | 4 - npm-debug.log | 110 ----- src/js/jquery.bxslider.js | 770 ++++++++--------------------------- 7 files changed, 619 insertions(+), 1105 deletions(-) delete mode 100644 npm-debug.log diff --git a/Gruntfile.js b/Gruntfile.js index 8c7acb37..336c1e19 100644 --- a/Gruntfile.js +++ b/Gruntfile.js @@ -31,7 +31,7 @@ module.exports = function(grunt) { assets: '<%= app.docs.dest %>/assets', postprocess: require('pretty'), mybaseDir: path.resolve('<%= app.docs.dest %>'), - mybaseDir: '/<%= app.docs.dest %>', + //mybaseDir: '/<%= app.docs.dest %>', // metadata pkg: '<%= pkg %>', @@ -163,11 +163,7 @@ module.exports = function(grunt) { jshint: { options: { jshintrc: 'src/js/.jshintrc', -<<<<<<< HEAD reporterOutput: '' -======= - reporterOutput: "" ->>>>>>> origin/mb_master }, dist: { src: ['<%= app.src.scripts %>', 'Gruntfile.js'] diff --git a/dist/README.md b/dist/README.md index c88f4dd0..f155de3e 100644 --- a/dist/README.md +++ b/dist/README.md @@ -1,5 +1,133 @@ -#bxSlider 4.2.5 -##The fully-loaded, responsive jQuery content slider +#This is a fork of bxSlider 4.2.5 +####This fork adds some new features aimed to create animated presentations. + +* You can define timing for every slide via data- attributes +* You can define in (entering) and out (exiting) animations for every HTML element in the slide +* Finally you can add your custom animations using included sass project + +##New configuration options +**pauseBeforeOut** + +Pause before slide change in milliseconds. It allows out animation completion before the next slide enter. It works both in auto mode and in manual mode. +``` +default: 0 +options: integer +``` + +**pauseAfterIn** + +Pause added to slide pause in milliseconds. For every slide you may define a pause for in animation completion an a pause for slide reading. It works both in auto mode and in manual mode. +``` +default: 0 +options: integer +``` +###data-... attributes +**data-pauseBeforeOut** + +Pause before slide change. It allows out animation completion before the next slide enter. It works both in auto mode and in manual mode. It overrides pauseBeforeOut option setting. +``` +
  • +..... +
  • +``` + +**data-pauseAfterIn** + +Pause added to slide pause in milliseconds. For every slide you may define a pause for in animation completion an a pause for slide reading. It works both in auto mode and in manual mode. It overrides pauseAfterIn option setting. +``` +
  • +..... +
  • +``` +**data-pause** +The amount of time (in ms) between the end of pauseAfterIn time and the beginning of pauseBeforeOut time in auto transition mode. It overrides pause option setting. +``` +
  • +..... +
  • +``` +##Installation +Animation css stuff is integrated in jquery.bxslider.css. So you don't need to do any special installation. Simply follow bxSlider installation instruction. +If you want to modify provided animations or create new once you must install compass-sass (http://compass-style.org/install/): +* All scss files are in the /src/sass folder +* Generated css files are located in src/css folder +* Compass settings are defined is /src/config.rb +* `$ grunt ` or `$ grunt dist` commands will assemble all generated css into /dist/jquery.bxslider.css + +After editing you may +1. Compile compass project launching compass (`$ compass compile`) +2. Run grunt to assemble and copy files (`$ grunt`) + +or +1. Install proper grunt compass component +2. Automate compiling changing Gruntfile.js + +##Use +To animate every HTML element in a slide you must assign to it some classes. +###General class +To every animated element you must assign the class `animated`.This class assign general bhaviors to animated elements. +###Animation classes +Then you must: +* Assign a class for enter animation that have the "In" suffix or infix (`fadeIn, flipInX, rotateIn, slideInUp`, etc.) +* Assign a class for exit animation that have the "Out" suffix or infix (`fadeOut, flipInX, rotateIn, slideInUp`, etc.) + +**Available enter animation classes**: `fadeIn, fadeInUp, fadeInUpBig, fadeInDown, fadeInDownBig, fadeInLeft, fadeInLeftBig, fadeInRight, fadeInRightBig, bounceIn, bounceInUp, bounceInDown, bounceInLeft, bounceInRight, rotateIn, rotateInUpLeft, rotateInUpRight, rotateInDownLeft, rotateInDownRight, slideIn, slideInUp, slideInDown, slideInLeft, slideInRight, flipInX, flipOutX, lightSpeedIn, rollIn, zoomIn, zoomInDown, zoomInLeft, zoomInRight, zoomInUp` + +**Available exit animation classes**: `fadeOut, fadeOutUp, fadeOutUpBig, fadeOutDown, fadeOutDownBig, fadeOutLeft, fadeOutLeftBig, fadeOutRight, fadeOutRightBig, bounceOut, bounceOutUp, bounceOutDown, bounceOutLeft, bounceOutRight, rotateOut, rotateOutUpLeft, rotateOutUpRight, rotateOutDownLeft, rotateOutDownRight, slideOut, slideOutUp, slideOutDown, slideOutLeft, slideOutRight, flipOutX, flipOutX, lightSpeedOut, hingeOut, rollOut, zoomOut, zoomOutDown, zoomOutLeft, zoomOutRight, zoomOutUp` + +###Modifier classes +* **Delay**: Animations has a base delay of 0.5 seconds (500 ms). You can use delayInXXXX and delayOutXXXX classes (where XXXX is 500, 1000, 1500, 2000, 2500, 3000, 3500, 4000, 4500, 5000) to delay in and/or out animation and create temporized animation sequences. +* **Speed**: Animations has a base speed of 1 second. You can modify animation speed using `slowIn, slowOut, fastIn, fastOut, xslowIn, xslowOut` classes. + +###Slideshow Example +``` + ....... +
      +
    • +

      + +

      +

      + Sample animations: flip +

      +
    • +
    • +

      + +

      +

      + Sample animations: zoom +

      +
    • +
    • +

      + +

      +

      + Sample animations: rotate +

      +
    • +
    + ..... + +``` ###Why should I use this slider? * Fully responsive - will adapt to any device diff --git a/dist/jquery.bxslider.js b/dist/jquery.bxslider.js index 89bafda8..c445b357 100644 --- a/dist/jquery.bxslider.js +++ b/dist/jquery.bxslider.js @@ -6,95 +6,102 @@ * Licensed under MIT (http://opensource.org/licenses/MIT) */ -;(function ($) { +/** + * bxSlider v4.2.5 + * Copyright 2013-2017 Steven Wanderski + * Written while drinking Belgian ales and listening to jazz + + * Licensed under MIT (http://opensource.org/licenses/MIT) + */ +;(function($) { var defaults = { // GENERAL - mode: 'horizontal' - , slideSelector: '' - , infiniteLoop: true - , hideControlOnEnd: false - , speed: 500 - , easing: null - , slideMargin: 0 - , startSlide: 0 - , randomStart: false - , captions: false - , ticker: false - , tickerHover: false - , adaptiveHeight: false - , adaptiveHeightSpeed: 500 - , video: false - , useCSS: true - , preloadImages: 'visible' - , responsive: true - , slideZIndex: 50 - , wrapperClass: 'bx-wrapper', // TOUCH - touchEnabled: true - , swipeThreshold: 50 - , oneToOneTouch: true - , preventDefaultSwipeX: true - , preventDefaultSwipeY: false, // ACCESSIBILITY - ariaLive: true - , ariaHidden: true, // KEYBOARD + mode: 'horizontal', + slideSelector: '', + infiniteLoop: true, + hideControlOnEnd: false, + speed: 500, + easing: null, + slideMargin: 0, + startSlide: 0, + randomStart: false, + captions: false, + ticker: false, + tickerHover: false, + adaptiveHeight: false, + adaptiveHeightSpeed: 500, + video: false, + useCSS: true, + preloadImages: 'visible', + responsive: true, + slideZIndex: 50, + wrapperClass: 'bx-wrapper', // TOUCH + touchEnabled: true, + swipeThreshold: 50, + oneToOneTouch: true, + preventDefaultSwipeX: true, + preventDefaultSwipeY: false, // ACCESSIBILITY + ariaLive: true, + ariaHidden: true, // KEYBOARD keyboardEnabled: false, // PAGER - pager: true - , pagerType: 'full' - , pagerShortSeparator: ' / ' - , pagerSelector: null - , buildPager: null - , pagerCustom: null, // CONTROLS - controls: true - , nextText: 'Next' - , prevText: 'Prev' - , nextSelector: null - , prevSelector: null - , autoControls: false - , startText: 'Start' - , stopText: 'Stop' - , autoControlsCombine: false - , autoControlsSelector: null - , pauseBeforeOut: 1000 - , pauseAfterIn: 3000, // AUTO - auto: false - , pause: 4000 - , autoStart: true - , autoDirection: 'next' - , stopAutoOnClick: false - , autoHover: false - , autoDelay: 0 - , autoSlideForOnePage: false, // CAROUSEL - minSlides: 1 - , maxSlides: 1 - , moveSlides: 0 - , slideWidth: 0 - , shrinkItems: false, // CALLBACKS - onSliderLoad: function () { + pager: true, + pagerType: 'full', + pagerShortSeparator: ' / ', + pagerSelector: null, + buildPager: null, + pagerCustom: null, // CONTROLS + controls: true, + nextText: 'Next', + prevText: 'Prev', + nextSelector: null, + prevSelector: null, + autoControls: false, + startText: 'Start', + stopText: 'Stop', + autoControlsCombine: false, + autoControlsSelector: null, + pauseBeforeOut: 1000, + pauseAfterIn: 3000, // AUTO + auto: false, + pause: 4000, + autoStart: true, + autoDirection: 'next', + stopAutoOnClick: false, + autoHover: false, + autoDelay: 0, + autoSlideForOnePage: false, // CAROUSEL + minSlides: 1, + maxSlides: 1, + moveSlides: 0, + slideWidth: 0, + shrinkItems: false, // CALLBACKS + onSliderLoad: function() { return true; - } - , onSlideBefore: function () { + }, + onSlideBefore: function() { return true; - } - , onSlideAfter: function () { + }, + onSlideAfter: function() { return true; - } - , onSlideNext: function () { + }, + onSlideNext: function() { return true; - } - , onSlidePrev: function () { + }, + onSlidePrev: function() { return true; - } - , onSliderResize: function () { + }, + onSliderResize: function() { return true; } }; - $.fn.bxSlider = function (options) { + $.fn.bxSlider = function(options) { if (this.length === 0) { return this; } // support multiple elements if (this.length > 1) { - this.each(function () { + this.each(function() { $(this).bxSlider(options); }); return this; @@ -102,8 +109,8 @@ // create a namespace to be used throughout the plugin var slider = {}, // set a reference to our slider element el = this, // get the original window dimens (thanks a lot IE) - windowWidth = $(window).width() - , windowHeight = $(window).height(); + windowWidth = $(window).width(), + windowHeight = $(window).height(); // Return if slider is already initialized if ($(el).data('bxSlider')) { return; @@ -116,7 +123,7 @@ /** * Initializes namespace settings to be used throughout plugin */ - var init = function () { + var init = function() { // Return if slider is already initialized if ($(el).data('bxSlider')) { return; @@ -161,7 +168,7 @@ // determine which property to use for transitions slider.animProp = slider.settings.mode === 'vertical' ? 'top' : 'left'; // determine if hardware acceleration can be used - slider.usingCSS = slider.settings.useCSS && slider.settings.mode !== 'fade' && (function () { + slider.usingCSS = slider.settings.useCSS && slider.settings.mode !== 'fade' && (function() { // create our test div element var div = document.createElement('div'), // css transition properties props = ['WebkitPerspective', 'MozPerspective', 'OPerspective', 'msPerspective']; @@ -181,7 +188,7 @@ } // save original style data el.data('origStyle', el.attr('style')); - el.children(slider.settings.slideSelector).each(function () { + el.children(slider.settings.slideSelector).each(function() { $(this).data('origStyle', $(this).attr('style')); }); // perform all DOM / CSS modifications @@ -190,7 +197,7 @@ /** * Performs all DOM and CSS modifications */ - var setup = function () { + var setup = function() { var preloadSelector = slider.children.eq(slider.settings.startSlide); // set the default preload selector (visible) // wrap el in a wrapper el.wrap('
    '); @@ -206,22 +213,21 @@ // set el to a massive width, to hold any needed slides // also strip any margin and padding from el el.css({ - width: slider.settings.mode === 'horizontal' ? (slider.children.length * 1000 + 215) + '%' : 'auto' - , position: 'relative' + width: slider.settings.mode === 'horizontal' ? (slider.children.length * 1000 + 215) + '%' : 'auto', + position: 'relative' }); // if using CSS, add the easing property if (slider.usingCSS && slider.settings.easing) { el.css('-' + slider.cssPrefix + '-transition-timing-function', slider.settings.easing); // if not using CSS and no easing value was supplied, use the default JS animation easing (swing) - } - else if (!slider.settings.easing) { + } else if (!slider.settings.easing) { slider.settings.easing = 'swing'; } // make modifications to the viewport (.bx-viewport) slider.viewport.css({ - width: '100%' - , overflow: 'hidden' - , position: 'relative' + width: '100%', + overflow: 'hidden', + position: 'relative' }); slider.viewport.parent().css({ maxWidth: getViewportMaxWidth() @@ -234,9 +240,9 @@ } // apply css to all slider children slider.children.css({ - float: slider.settings.mode === 'horizontal' ? 'left' : 'none' - , listStyle: 'none' - , position: 'relative' + float: slider.settings.mode === 'horizontal' ? 'left' : 'none', + listStyle: 'none', + position: 'relative' }); // apply the calculated width after the float is applied to prevent scrollbar interference slider.children.css('width', getSlideWidth()); @@ -250,14 +256,14 @@ // if "fade" mode, add positioning and z-index CSS if (slider.settings.mode === 'fade') { slider.children.css({ - position: 'absolute' - , zIndex: 0 - , display: 'none' + position: 'absolute', + zIndex: 0, + display: 'none' }); // prepare the z-index on the showing element slider.children.eq(slider.settings.startSlide).css({ - zIndex: slider.settings.slideZIndex - , display: 'block' + zIndex: slider.settings.slideZIndex, + display: 'block' }); } // Set animation class to 'out' @@ -297,26 +303,25 @@ slider.viewport.after(slider.controls.el); } // if ticker mode, do not allow a pager - } - else { + } else { slider.settings.pager = false; } loadElements(preloadSelector, start); }; - var loadElements = function (selector, callback) { - var total = selector.find('img:not([src=""]), iframe').length - , count = 0; + var loadElements = function(selector, callback) { + var total = selector.find('img:not([src=""]), iframe').length, + count = 0; if (total === 0) { callback(); return; } - selector.find('img:not([src=""]), iframe').each(function () { - $(this).one('load error', function () { + selector.find('img:not([src=""]), iframe').each(function() { + $(this).one('load error', function() { if (++count === total) { callback(); } - }).each(function () { + }).each(function() { if (this.complete) { $(this).load(); } @@ -326,12 +331,12 @@ /** * Start the slider */ - var start = function () { + var start = function() { // if infinite loop, prepare additional slides if (slider.settings.infiniteLoop && slider.settings.mode !== 'fade' && !slider.settings.ticker) { - var slice = slider.settings.mode === 'vertical' ? slider.settings.minSlides : slider.settings.maxSlides - , sliceAppend = slider.children.slice(0, slice).clone(true).addClass('bx-clone') - , slicePrepend = slider.children.slice(-slice).clone(true).addClass('bx-clone'); + var slice = slider.settings.mode === 'vertical' ? slider.settings.minSlides : slider.settings.maxSlides, + sliceAppend = slider.children.slice(0, slice).clone(true).addClass('bx-clone'), + slicePrepend = slider.children.slice(-slice).clone(true).addClass('bx-clone'); if (slider.settings.ariaHidden) { sliceAppend.attr('aria-hidden', true); slicePrepend.attr('aria-hidden', true); @@ -389,21 +394,19 @@ /** * Returns the calculated height of the viewport, used to determine either adaptiveHeight or the maxHeight value */ - var getViewportHeight = function () { + var getViewportHeight = function() { var height = 0; // first determine which children (slides) should be used in our height calculation var children = $(); // if mode is not "vertical" and adaptiveHeight is false, include all children if (slider.settings.mode !== 'vertical' && !slider.settings.adaptiveHeight) { children = slider.children; - } - else { + } else { // if not carousel, return the single active child if (!slider.carousel) { children = slider.children.eq(slider.active.index); // if carousel, return a slice of children - } - else { + } else { // get the individual slide index var currentIndex = slider.settings.moveSlides === 1 ? slider.active.index : slider.active.index * getMoveBy(); // add the current slide to the children @@ -413,8 +416,7 @@ // if looped back to the start if (currentIndex + i >= slider.children.length) { children = children.add(slider.children.eq(i - 1)); - } - else { + } else { children = children.add(slider.children.eq(currentIndex + i)); } } @@ -422,7 +424,7 @@ } // if "vertical" mode, calculate the sum of the heights of the children if (slider.settings.mode === 'vertical') { - children.each(function (index) { + children.each(function(index) { height += $(this).outerHeight(); }); // add user-supplied margins @@ -430,16 +432,14 @@ height += slider.settings.slideMargin * (slider.settings.minSlides - 1); } // if not "vertical" mode, calculate the max height of the children - } - else { - height = Math.max.apply(Math, children.map(function () { + } else { + height = Math.max.apply(Math, children.map(function() { return $(this).outerHeight(false); }).get()); } if (slider.viewport.css('box-sizing') === 'border-box') { height += parseFloat(slider.viewport.css('padding-top')) + parseFloat(slider.viewport.css('padding-bottom')) + parseFloat(slider.viewport.css('border-top-width')) + parseFloat(slider.viewport.css('border-bottom-width')); - } - else if (slider.viewport.css('box-sizing') === 'padding-box') { + } else if (slider.viewport.css('box-sizing') === 'padding-box') { height += parseFloat(slider.viewport.css('padding-top')) + parseFloat(slider.viewport.css('padding-bottom')); } return height; @@ -447,13 +447,12 @@ /** * Returns the calculated width to be used for the outer wrapper / viewport */ - var getViewportMaxWidth = function () { + var getViewportMaxWidth = function() { var width = '100%'; if (slider.settings.slideWidth > 0) { if (slider.settings.mode === 'horizontal') { width = (slider.settings.maxSlides * slider.settings.slideWidth) + ((slider.settings.maxSlides - 1) * slider.settings.slideMargin); - } - else { + } else { width = slider.settings.slideWidth; } } @@ -462,22 +461,19 @@ /** * Returns the calculated width to be applied to each slide */ - var getSlideWidth = function () { + var getSlideWidth = function() { var newElWidth = slider.settings.slideWidth, // start with any user-supplied slide width wrapWidth = slider.viewport.width(); // get the current viewport width // if slide width was not supplied, or is larger than the viewport use the viewport width if (slider.settings.slideWidth === 0 || (slider.settings.slideWidth > wrapWidth && !slider.carousel) || slider.settings.mode === 'vertical') { newElWidth = wrapWidth; // if carousel, use the thresholds to determine the width - } - else if (slider.settings.maxSlides > 1 && slider.settings.mode === 'horizontal') { + } else if (slider.settings.maxSlides > 1 && slider.settings.mode === 'horizontal') { if (wrapWidth > slider.maxThreshold) { return newElWidth; - } - else if (wrapWidth < slider.minThreshold) { + } else if (wrapWidth < slider.minThreshold) { newElWidth = (wrapWidth - (slider.settings.slideMargin * (slider.settings.minSlides - 1))) / slider.settings.minSlides; - } - else if (slider.settings.shrinkItems) { + } else if (slider.settings.shrinkItems) { newElWidth = Math.floor((wrapWidth + slider.settings.slideMargin) / (Math.ceil((wrapWidth + slider.settings.slideMargin) / (newElWidth + slider.settings.slideMargin))) - slider.settings.slideMargin); } } @@ -487,28 +483,25 @@ * Returns the number of slides currently visible in the viewport (includes partially visible slides) */ - var getNumberSlidesShowing = function () { - var slidesShowing = 1 - , childWidth = null; + var getNumberSlidesShowing = function() { + var slidesShowing = 1, + childWidth = null; if (slider.settings.mode === 'horizontal' && slider.settings.slideWidth > 0) { // if viewport is smaller than minThreshold, return minSlides if (slider.viewport.width() < slider.minThreshold) { slidesShowing = slider.settings.minSlides; // if viewport is larger than maxThreshold, return maxSlides - } - else if (slider.viewport.width() > slider.maxThreshold) { + } else if (slider.viewport.width() > slider.maxThreshold) { slidesShowing = slider.settings.maxSlides; // if viewport is between min / max thresholds, divide viewport width by first child width - } - else { + } else { childWidth = slider.children.first().width() + slider.settings.slideMargin; slidesShowing = Math.floor((slider.viewport.width() + slider.settings.slideMargin) / childWidth); } // if "vertical" mode, slides showing will always be minSlides - } - else if (slider.settings.mode === 'vertical') { + } else if (slider.settings.mode === 'vertical') { slidesShowing = slider.settings.minSlides; } return slidesShowing; @@ -517,16 +510,15 @@ * Returns the number of pages (one full viewport of slides is one "page") */ - var getPagerQty = function () { - var pagerQty = 0 - , breakPoint = 0 - , counter = 0; + var getPagerQty = function() { + var pagerQty = 0, + breakPoint = 0, + counter = 0; // if moveSlides is specified by the user if (slider.settings.moveSlides > 0) { if (slider.settings.infiniteLoop) { pagerQty = Math.ceil(slider.children.length / getMoveBy()); - } - else { + } else { // when breakpoint goes above children length, counter is the number of pages while (breakPoint < slider.children.length) { ++pagerQty; @@ -536,8 +528,7 @@ } // if moveSlides is 0 (auto) divide children length by sides showing, then round up - } - else {r + } else { pagerQty = Math.ceil(slider.children.length / getNumberSlidesShowing()); } return pagerQty; @@ -545,7 +536,7 @@ /** * Returns the number of individual slides by which to shift the slider */ - var getMoveBy = function () { + var getMoveBy = function() { // if moveSlides was set by the user and moveSlides is less than number of slides showing if (slider.settings.moveSlides > 0 && slider.settings.moveSlides <= getNumberSlidesShowing()) { return slider.settings.moveSlides; @@ -556,7 +547,7 @@ /** * Sets the slider's (el) left or top position */ - var setSlidePosition = function () { + var setSlidePosition = function() { var position, lastChild, lastShowingIndex; // if last slide, not infinite loop, and number of children is larger than specified maxSlides if (slider.children.length > slider.settings.maxSlides && slider.active.last && !slider.settings.infiniteLoop) { @@ -566,8 +557,7 @@ position = lastChild.position(); // set the left position setPositionProperty(-(position.left - (slider.viewport.width() - lastChild.outerWidth())), 'reset', 0); - } - else if (slider.settings.mode === 'vertical') { + } else if (slider.settings.mode === 'vertical') { // get the last showing index's position lastShowingIndex = slider.children.length - slider.settings.minSlides; position = slider.children.eq(lastShowingIndex).position(); @@ -576,8 +566,7 @@ } // if not last slide - } - else { + } else { // get the position of the first showing slide position = slider.children.eq(slider.active.index * getMoveBy()).position(); // check for last slide @@ -588,8 +577,7 @@ if (position !== undefined) { if (slider.settings.mode === 'horizontal') { setPositionProperty(-position.left, 'reset', 0); - } - else if (slider.settings.mode === 'vertical') { + } else if (slider.settings.mode === 'vertical') { setPositionProperty(-position.top, 'reset', 0); } } @@ -611,7 +599,7 @@ * @param params (array) optional * - an optional parameter containing any variables that need to be passed in */ - var setPositionProperty = function (value, type, duration, params) { + var setPositionProperty = function(value, type, duration, params) { var animateObj, propValue; // use CSS transform if (slider.usingCSS) { @@ -624,7 +612,7 @@ el.css(slider.animProp, propValue); if (duration !== 0) { // bind a callback method - executes when CSS transition completes - el.bind('transitionend webkitTransitionEnd oTransitionEnd MSTransitionEnd', function (e) { + el.bind('transitionend webkitTransitionEnd oTransitionEnd MSTransitionEnd', function(e) { //make sure it's the correct one if (!$(e.target).is(el)) { return; @@ -633,20 +621,17 @@ el.unbind('transitionend webkitTransitionEnd oTransitionEnd MSTransitionEnd'); updateAfterSlideTransition(); }); - } - else { //duration = 0 + } else { //duration = 0 updateAfterSlideTransition(); } - } - else if (type === 'reset') { + } else if (type === 'reset') { el.css(slider.animProp, propValue); - } - else if (type === 'ticker') { + } else if (type === 'ticker') { // make the transition use 'linear' el.css('-' + slider.cssPrefix + '-transition-timing-function', 'linear'); el.css(slider.animProp, propValue); if (duration !== 0) { - el.bind('transitionend webkitTransitionEnd oTransitionEnd MSTransitionEnd', function (e) { + el.bind('transitionend webkitTransitionEnd oTransitionEnd MSTransitionEnd', function(e) { //make sure it's the correct one if (!$(e.target).is(el)) { return; @@ -658,28 +643,24 @@ // start the loop again tickerLoop(); }); - } - else { //duration = 0 + } else { //duration = 0 setPositionProperty(params.resetValue, 'reset', 0); tickerLoop(); } } // use JS animate - } - else { + } else { animateObj = {}; animateObj[slider.animProp] = value; if (type === 'slide') { - el.animate(animateObj, duration, slider.settings.easing, function () { + el.animate(animateObj, duration, slider.settings.easing, function() { updateAfterSlideTransition(); }); - } - else if (type === 'reset') { + } else if (type === 'reset') { el.css(slider.animProp, value); - } - else if (type === 'ticker') { - el.animate(animateObj, duration, 'linear', function () { + } else if (type === 'ticker') { + el.animate(animateObj, duration, 'linear', function() { setPositionProperty(params.resetValue, 'reset', 0); // run the recursive loop after animation tickerLoop(); @@ -691,10 +672,10 @@ * Populates the pager with proper amount of pages */ - var populatePager = function () { - var pagerHtml = '' - , linkContent = '' - , pagerQty = getPagerQty();r + var populatePager = function() { + var pagerHtml = '', + linkContent = '', + pagerQty = getPagerQty(); // loop through each pager item for (var i = 0; i < pagerQty; i++) { linkContent = ''; @@ -702,8 +683,7 @@ if (slider.settings.buildPager && $.isFunction(slider.settings.buildPager) || slider.settings.pagerCustom) { linkContent = slider.settings.buildPager(i); slider.pagerEl.addClass('bx-custom-pager'); - } - else { + } else { linkContent = i + 1; slider.pagerEl.addClass('bx-default-pager'); } @@ -717,7 +697,7 @@ /** * Appends the pager to the controls element */ - var appendPager = function () { + var appendPager = function() { if (!slider.settings.pagerCustom) { // create the pager DOM element slider.pagerEl = $('
    '); @@ -726,14 +706,12 @@ $(slider.settings.pagerSelector).html(slider.pagerEl); // if no pager selector was supplied, add it after the wrapper - } - else { + } else { slider.controls.el.addClass('bx-has-pager').append(slider.pagerEl); } // populate the pager populatePager(); - } - else { + } else { slider.pagerEl = $(slider.settings.pagerCustom); } // assign the pager click binding @@ -742,7 +720,7 @@ /** * Appends prev / next controls to the controls element */ - var appendControls = function () { + var appendControls = function() { slider.controls.next = $('' + slider.settings.nextText + ''); slider.controls.prev = $('' + slider.settings.prevText + ''); // bind click actions to the controls @@ -769,7 +747,7 @@ /** * Appends start / stop auto controls to the controls element */ - var appendControlsAuto = function () { + var appendControlsAuto = function() { slider.controls.start = $(''); slider.controls.stop = $(''); // add the controls to the DOM @@ -782,8 +760,7 @@ slider.controls.autoEl.append(slider.controls.start); // if autoControlsCombine is false, insert both controls - } - else { + } else { slider.controls.autoEl.append(slider.controls.start).append(slider.controls.stop); } // if auto controls selector was supplied, populate it with the controls @@ -791,8 +768,7 @@ $(slider.settings.autoControlsSelector).html(slider.controls.autoEl); // if auto controls selector was not supplied, add it after the wrapper - } - else { + } else { slider.controls.el.addClass('bx-has-controls-auto').append(slider.controls.autoEl); } // update the auto controls @@ -801,9 +777,9 @@ /** * Appends image captions to the DOM */ - var appendCaptions = function () { + var appendCaptions = function() { // cycle through each child - slider.children.each(function (index) { + slider.children.each(function(index) { // get the image title attribute var title = $(this).find('img:first').attr('title'); // append the caption @@ -818,7 +794,7 @@ * @param e (event) * - DOM event object */ - var clickNextBind = function (e) { + var clickNextBind = function(e) { e.preventDefault(); if (slider.controls.el.hasClass('disabled')) { return; @@ -835,7 +811,7 @@ * @param e (event) * - DOM event object */ - var clickPrevBind = function (e) { + var clickPrevBind = function(e) { e.preventDefault(); if (slider.controls.el.hasClass('disabled')) { return; @@ -852,7 +828,7 @@ * @param e (event) * - DOM event object */ - var clickStartBind = function (e) { + var clickStartBind = function(e) { el.startAuto(); e.preventDefault(); }; @@ -862,7 +838,7 @@ * @param e (event) * - DOM event object */ - var clickStopBind = function (e) { + var clickStopBind = function(e) { el.stopAuto(); e.preventDefault(); }; @@ -872,7 +848,7 @@ * @param e (event) * - DOM event object */ - var clickPagerBind = function (e) { + var clickPagerBind = function(e) { var pagerLink, pagerIndex; e.preventDefault(); if (slider.controls.el.hasClass('disabled')) { @@ -897,7 +873,7 @@ * @param slideIndex (int) * - index of slide to make active */ - var updatePagerActive = function (slideIndex) { + var updatePagerActive = function(slideIndex) { // if "short" pager type var len = slider.children.length; // nb of children if (slider.settings.pagerType === 'short') { @@ -911,14 +887,14 @@ slider.pagerEl.find('a').removeClass('active'); // apply the active class for all pagers - slider.pagerEl.each(function (i, el) {r + slider.pagerEl.each(function(i, el) { $(el).find('a').eq(slideIndex).addClass('active'); }); }; /** * Performs needed actions after a slide transition */ - var updateAfterSlideTransition = function () { + var updateAfterSlideTransition = function() { // if infinite loop is true if (slider.settings.infiniteLoop) { var position = ''; @@ -928,21 +904,17 @@ position = slider.children.eq(0).position(); // carousel, last slide - } - else if (slider.active.index === getPagerQty() - 1 && slider.carousel) { + } else if (slider.active.index === getPagerQty() - 1 && slider.carousel) { position = slider.children.eq((getPagerQty() - 1) * getMoveBy()).position(); // last slide - } - else if (slider.active.index === slider.children.length - 1) { -r + } else if (slider.active.index === slider.children.length - 1) { position = slider.children.eq(slider.children.length - 1).position(); } if (position) { if (slider.settings.mode === 'horizontal') { setPositionProperty(-position.left, 'reset', 0); - } - else if (slider.settings.mode === 'vertical') { + } else if (slider.settings.mode === 'vertical') { setPositionProperty(-position.top, 'reset', 0); } } @@ -958,14 +930,13 @@ r * @param state (string) "start", "stop" * - the new state of the auto show */ - var updateAutoControls = function (state) { + var updateAutoControls = function(state) { // if autoControlsCombine is true, replace the current control with the new state if (slider.settings.autoControlsCombine) { slider.controls.autoEl.html(slider.controls[state]); // if autoControlsCombine is false, apply the "active" class to the appropriate control - } - else { + } else { slider.controls.autoEl.find('a').removeClass('active'); slider.controls.autoEl.find('a:not(.bx-' + state + ')').addClass('active'); } @@ -973,25 +944,22 @@ r /** * Updates the direction controls (checks if either should be hidden) */ - var updateDirectionControls = function () { + var updateDirectionControls = function() { if (getPagerQty() === 1) { slider.controls.prev.addClass('disabled'); slider.controls.next.addClass('disabled'); - } - else if (!slider.settings.infiniteLoop && slider.settings.hideControlOnEnd) { + } else if (!slider.settings.infiniteLoop && slider.settings.hideControlOnEnd) { // if first slide if (slider.active.index === 0) { slider.controls.prev.addClass('disabled'); slider.controls.next.removeClass('disabled'); // if last slide - } - else if (slider.active.index === getPagerQty() - 1) { + } else if (slider.active.index === getPagerQty() - 1) { slider.controls.next.addClass('disabled'); slider.controls.prev.removeClass('disabled'); // if any slide in the middle - } - else { + } else { slider.controls.prev.removeClass('disabled'); slider.controls.next.removeClass('disabled'); } @@ -1000,26 +968,25 @@ r /** * Initializes the auto process */ - var initAuto = function () { + var initAuto = function() { // if autoDelay was supplied, launch the auto show using a setTimeout() call if (slider.settings.autoDelay > 0) { var timeout = setTimeout(el.startAuto, slider.settings.autoDelay); // if autoDelay was not supplied, start the auto show normally - } - else { + } else { el.startAuto(); //add focus and blur events to ensure its running if timeout gets paused - $(window).focus(function () { + $(window).focus(function() { el.startAuto(); - }).blur(function () { + }).blur(function() { el.stopAuto(); }); } // if autoHover is requested if (slider.settings.autoHover) { // on el hover - el.hover(function () { + el.hover(function() { // if the auto show is currently playing (has an active interval) if (slider.interval) { // stop the auto show and pass true argument which will prevent control update @@ -1027,7 +994,7 @@ r // create a new autoPaused value which will be used by the relative "mouseout" event slider.autoPaused = true; } - }, function () { + }, function() { // if the autoPaused value was created be the prior "mouseover" event if (slider.autoPaused) { // start the auto show and pass true argument which will prevent control update @@ -1042,16 +1009,15 @@ r * Initializes the ticker process */ - var initTicker = function () { - var startPosition = 0 - , position, transform, value, idx, ratio, property, newSpeed, totalDimens; + var initTicker = function() { + var startPosition = 0, + position, transform, value, idx, ratio, property, newSpeed, totalDimens; // if autoDirection is "next", append a clone of the entire slider if (slider.settings.autoDirection === 'next') { el.append(slider.children.clone().addClass('bx-clone')); // if autoDirection is "prev", prepend a clone of the entire slider, and set the left position - } - else { + } else { el.prepend(slider.children.clone().addClass('bx-clone')); position = slider.children.first().position(); startPosition = slider.settings.mode === 'horizontal' ? -position.left : -position.top; @@ -1065,13 +1031,13 @@ r if (slider.settings.tickerHover) { if (slider.usingCSS) { idx = slider.settings.mode === 'horizontal' ? 4 : 5; - slider.viewport.hover(function () { + slider.viewport.hover(function() { transform = el.css('-' + slider.cssPrefix + '-transform'); value = parseFloat(transform.split(',')[idx]); setPositionProperty(value, 'reset', 0); - }, function () { + }, function() { totalDimens = 0; - slider.children.each(function (index) { + slider.children.each(function(index) { totalDimens += slider.settings.mode === 'horizontal' ? $(this).outerWidth(true) : $(this).outerHeight(true); }); // calculate the speed ratio (used to determine the new speed to finish the paused animation) @@ -1082,15 +1048,14 @@ r newSpeed = ratio * (totalDimens - (Math.abs(parseInt(value)))); tickerLoop(newSpeed); }); - } - else { + } else { // on el hover - slider.viewport.hover(function () { + slider.viewport.hover(function() { el.stop(); - }, function () { + }, function() { // calculate the total width of children (used to calculate the speed ratio) totalDimens = 0; - slider.children.each(function (index) { + slider.children.each(function(index) { totalDimens += slider.settings.mode === 'horizontal' ? $(this).outerWidth(true) : $(this).outerHeight(true); }); // calculate the speed ratio (used to determine the new speed to finish the paused animation) @@ -1110,24 +1075,23 @@ r * Runs a continuous loop, news ticker-style */ - var tickerLoop = function (resumeSpeed) { - var speed = resumeSpeed ? resumeSpeed : slider.settings.speed - , position = { - left: 0 - , top: 0 - } - , reset = { - left: 0 - , top: 0 - } - , animateProperty, resetValue, params; + var tickerLoop = function(resumeSpeed) { + var speed = resumeSpeed ? resumeSpeed : slider.settings.speed, + position = { + left: 0, + top: 0 + }, + reset = { + left: 0, + top: 0 + }, + animateProperty, resetValue, params; // if "next" animate left position to last child, then reset left to 0 if (slider.settings.autoDirection === 'next') { position = el.find('.bx-clone').first().position(); // if "prev" animate left position to 0, then reset left to first non-clone child - } - else { + } else { reset = slider.children.first().position(); } animateProperty = slider.settings.mode === 'horizontal' ? -position.left : -position.top; @@ -1141,13 +1105,13 @@ r * Check if el is on screen */ - var isOnScreen = function (el) { - var win = $(window) - , viewport = { - top: win.scrollTop() - , left: win.scrollLeft() - } - , bounds = el.offset(); + var isOnScreen = function(el) { + var win = $(window), + viewport = { + top: win.scrollTop(), + left: win.scrollLeft() + }, + bounds = el.offset(); viewport.right = viewport.left + win.width(); viewport.bottom = viewport.top + win.height(); bounds.right = bounds.left + el.outerWidth(); @@ -1158,17 +1122,16 @@ r * Initializes keyboard events */ - var keyPress = function (e) { - var activeElementTag = document.activeElement.tagName.toLowerCase() - , tagFilters = 'input|textarea' - , p = new RegExp(activeElementTag, ['i']) - , result = p.exec(tagFilters); + var keyPress = function(e) { + var activeElementTag = document.activeElement.tagName.toLowerCase(), + tagFilters = 'input|textarea', + p = new RegExp(activeElementTag, ['i']), + result = p.exec(tagFilters); if (result == null && isOnScreen(el)) { if (e.keyCode === 39) { clickNextBind(e); return false; - } - else if (e.keyCode === 37) { + } else if (e.keyCode === 37) { clickPrevBind(e); return false; } @@ -1177,23 +1140,23 @@ r /** * Initializes touch events */ - var initTouch = function () { + var initTouch = function() { // initialize object to contain all touch values slider.touch = { start: { - x: 0 - , y: 0 - } - , end: { - x: 0 - , y: 0 + x: 0, + y: 0 + }, + end: { + x: 0, + y: 0 } }; slider.viewport.bind('touchstart MSPointerDown pointerdown', onTouchStart); //for browsers that have implemented pointer events and fire a click after //every pointerup regardless of whether pointerup is on same screen location as pointerdown or not - slider.viewport.on('click', '.bxslider a', function (e) { + slider.viewport.on('click', '.bxslider a', function(e) { if (slider.viewport.hasClass('click-disabled')) { e.preventDefault(); slider.viewport.removeClass('click-disabled'); @@ -1206,19 +1169,18 @@ r * @param e (event) * - DOM event object */ - var onTouchStart = function (e) { + var onTouchStart = function(e) { //disable slider controls while user is interacting with slides to avoid slider freeze that happens on touch devices when a slide swipe happens immediately after interacting with slider controls slider.controls.el.addClass('disabled'); if (slider.working) { e.preventDefault(); slider.controls.el.removeClass('disabled'); - } - else { + } else { // record the original position when touch starts slider.touch.originalPos = el.position(); - var orig = e.originalEvent - , touchPoints = (typeof orig.changedTouches !== 'undefined') ? orig.changedTouches : [orig]; + var orig = e.originalEvent, + touchPoints = (typeof orig.changedTouches !== 'undefined') ? orig.changedTouches : [orig]; // record the starting touch x, y coordinates slider.touch.start.x = touchPoints[0].pageX; slider.touch.start.y = touchPoints[0].pageY; @@ -1239,7 +1201,7 @@ r * @param e (event) * - DOM event object */ - var onPointerCancel = function (e) { + var onPointerCancel = function(e) { /* onPointerCancel handler is needed to deal with situations when a touchend doesn't fire after a touchstart (this happens on windows phones only) */ setPositionProperty(slider.touch.originalPos.left, 'reset', 0); @@ -1259,19 +1221,18 @@ r * - DOM event object */ - var onTouchMove = function (e) { - var orig = e.originalEvent - , touchPoints = (typeof orig.changedTouches !== 'undefined') ? orig.changedTouches : [orig], // if scrolling on y axis, do not prevent default - xMovement = Math.abs(touchPoints[0].pageX - slider.touch.start.x) - , yMovement = Math.abs(touchPoints[0].pageY - slider.touch.start.y) - , value = 0 - , change = 0; + var onTouchMove = function(e) { + var orig = e.originalEvent, + touchPoints = (typeof orig.changedTouches !== 'undefined') ? orig.changedTouches : [orig], // if scrolling on y axis, do not prevent default + xMovement = Math.abs(touchPoints[0].pageX - slider.touch.start.x), + yMovement = Math.abs(touchPoints[0].pageY - slider.touch.start.y), + value = 0, + change = 0; // x axis swipe if ((xMovement * 3) > yMovement && slider.settings.preventDefaultSwipeX) { e.preventDefault(); // y axis swipe - } - else if ((yMovement * 3) > xMovement && slider.settings.preventDefaultSwipeY) { + } else if ((yMovement * 3) > xMovement && slider.settings.preventDefaultSwipeY) { e.preventDefault(); } if (slider.settings.mode !== 'fade' && slider.settings.oneToOneTouch) { @@ -1281,8 +1242,7 @@ r value = slider.touch.originalPos.left + change; // if vertical, drag along y axis - } - else { + } else { change = touchPoints[0].pageY - slider.touch.start.y; value = slider.touch.originalPos.top + change; } @@ -1295,15 +1255,15 @@ r * @param e (event) * - DOM event object */ - var onTouchEnd = function (e) { + var onTouchEnd = function(e) { slider.viewport.unbind('touchmove MSPointerMove pointermove', onTouchMove); //enable slider controls as soon as user stops interacing with slides slider.controls.el.removeClass('disabled'); - var orig = e.originalEvent - , touchPoints = (typeof orig.changedTouches !== 'undefined') ? orig.changedTouches : [orig] - , value = 0 - , distance = 0; + var orig = e.originalEvent, + touchPoints = (typeof orig.changedTouches !== 'undefined') ? orig.changedTouches : [orig], + value = 0, + distance = 0; // record end x, y positions slider.touch.end.x = touchPoints[0].pageX; slider.touch.end.y = touchPoints[0].pageY; @@ -1313,41 +1273,35 @@ r if (distance >= slider.settings.swipeThreshold) { if (slider.touch.start.x > slider.touch.end.x) { el.goToNextSlide(); - } - else { + } else { el.goToPrevSlide(); } el.stopAuto(); } // not fade mode - } - else { + } else { // calculate distance and el's animate property if (slider.settings.mode === 'horizontal') { distance = slider.touch.end.x - slider.touch.start.x; value = slider.touch.originalPos.left; - } - else { + } else { distance = slider.touch.end.y - slider.touch.start.y; value = slider.touch.originalPos.top; } // if not infinite loop and first / last slide, do not attempt a slide transition if (!slider.settings.infiniteLoop && ((slider.active.index === 0 && distance > 0) || (slider.active.last && distance < 0))) { setPositionProperty(value, 'reset', 200); - } - else { + } else { // check if distance clears threshold if (Math.abs(distance) >= slider.settings.swipeThreshold) { if (distance < 0) { el.goToNextSlide(); - } - else { + } else { el.goToPrevSlide(); } el.stopAuto(); - } - else { + } else { // el.animate(property, 200); setPositionProperty(value, 'reset', 200); } @@ -1361,7 +1315,7 @@ r /** * Window resize event callback */ - var resizeWindow = function (e) { + var resizeWindow = function(e) { // don't do anything if slider isn't initialized. if (!slider.initialized) { return; @@ -1369,12 +1323,11 @@ r // Delay if slider working. if (slider.working) { window.setTimeout(resizeWindow, 10); - } - else { + } else { // get the new window dimens (again, thank you IE) - var windowWidthNew = $(window).width() - , windowHeightNew = $(window).height(); + var windowWidthNew = $(window).width(), + windowHeightNew = $(window).height(); // make sure that it is a true window resize // *we must check this because our dinosaur friend IE fires a window resize event when certain DOM elements // are resized. Can you just die already?* @@ -1395,7 +1348,7 @@ r * @param startVisibleIndex (int) * - the first visible element's index */ - var applyAriaHiddenAttributes = function (startVisibleIndex) { + var applyAriaHiddenAttributes = function(startVisibleIndex) { var numberOfSlidesShowing = getNumberSlidesShowing(); // only apply attributes if the setting is enabled and not in ticker mode if (slider.settings.ariaHidden && !slider.settings.ticker) { @@ -1411,31 +1364,27 @@ r * @param slideOndex (int) * - the desired slide index */ - var setSlideIndex = function (slideIndex) { + var setSlideIndex = function(slideIndex) { if (slideIndex < 0) { if (slider.settings.infiniteLoop) { return getPagerQty() - 1; - } - else { + } else { //we don't go to undefined slides return slider.active.index; } // if slideIndex is greater than children length, set active index to 0 (this happens during infinite loop) - } - else if (slideIndex >= getPagerQty()) { + } else if (slideIndex >= getPagerQty()) { if (slider.settings.infiniteLoop) { return 0; - } - else { + } else { //we don't move to undefined pages return slider.active.index; } // set active index to requested slide - } - else { + } else { return slideIndex; } }; @@ -1453,18 +1402,18 @@ r * @param direction (string) * - INTERNAL USE ONLY - the direction of travel ("prev" / "next") */ - el.goToSlide = function (slideIndex, direction) { + el.goToSlide = function(slideIndex, direction) { // onSlideBefore, onSlideNext, onSlidePrev callbacks // Allow transition canceling based on returned value - var performTransition = true - , moveBy = 0 - , position = { - left: 0 - , top: 0 - } - , lastChild = null - , lastShowingIndex, eq, value, requestEl; + var performTransition = true, + moveBy = 0, + position = { + left: 0, + top: 0 + }, + lastChild = null, + lastShowingIndex, eq, value, requestEl; // store the old index slider.oldIndex = slider.active.index; //set new index @@ -1487,8 +1436,7 @@ r if (!slider.settings.onSlideNext.call(el, slider.children.eq(slider.active.index), slider.oldIndex, slider.active.index)) { performTransition = false; } - } - else if (direction === 'prev') { + } else if (direction === 'prev') { // Prevent canceling in future functions or lack there-of from negating previous commands to cancel if (!slider.settings.onSlidePrev.call(el, slider.children.eq(slider.active.index), slider.oldIndex, slider.active.index)) { performTransition = false; @@ -1517,14 +1465,13 @@ r zIndex: 0 }); // fade in the newly requested slide - slider.children.eq(slider.active.index).css('zIndex', slider.settings.slideZIndex + 1).fadeIn(slider.settings.speed, function () { + slider.children.eq(slider.active.index).css('zIndex', slider.settings.slideZIndex + 1).fadeIn(slider.settings.speed, function() { $(this).css('zIndex', slider.settings.slideZIndex); updateAfterSlideTransition(); }); // slider mode is not "fade" - } - else { + } else { // if adaptiveHeight is true and next height is different from current height, animate to the new height if (slider.settings.adaptiveHeight && slider.viewport.height() !== getViewportHeight()) { slider.viewport.animate({ @@ -1539,30 +1486,26 @@ r position = lastChild.position(); // calculate the position of the last slide moveBy = slider.viewport.width() - lastChild.outerWidth(); - } - else { + } else { // get last showing index position lastShowingIndex = slider.children.length - slider.settings.minSlides; position = slider.children.eq(lastShowingIndex).position(); } // horizontal carousel, going previous while on first slide (infiniteLoop mode) - } - else if (slider.carousel && slider.active.last && direction === 'prev') { + } else if (slider.carousel && slider.active.last && direction === 'prev') { // get the last child position eq = slider.settings.moveSlides === 1 ? slider.settings.maxSlides - getMoveBy() : ((getPagerQty() - 1) * getMoveBy()) - (slider.children.length - slider.settings.maxSlides); lastChild = el.children('.bx-clone').eq(eq); position = lastChild.position(); // if infinite loop and "Next" is clicked on the last slide - } - else if (direction === 'next' && slider.active.index === 0) { + } else if (direction === 'next' && slider.active.index === 0) { // get the last clone position position = el.find('> .bx-clone').eq(slider.settings.maxSlides).position(); slider.active.last = false; // normal non-zero requests - } - else if (slideIndex >= 0) { + } else if (slideIndex >= 0) { //parseInt is applied to allow floats for slides/page requestEl = slideIndex * parseInt(getMoveBy()); position = slider.children.eq(requestEl).position(); @@ -1575,8 +1518,7 @@ r value = slider.settings.mode === 'horizontal' ? -(position.left - moveBy) : -position.top; // plugin values to be animated setPositionProperty(value, 'slide', slider.settings.speed); - } - else { + } else { slider.working = false; } } @@ -1584,7 +1526,7 @@ r applyAriaHiddenAttributes(slider.active.index * getMoveBy()); } - setTimeout(function () { + setTimeout(function() { slider.children.eq(slider.active.index).removeClass('out').addClass('in'); }, 200); }; @@ -1598,23 +1540,22 @@ r * @param direction (string) * - INTERNAL USE ONLY - the direction of travel ("prev" / "next") **/ - el.goToSlideDelayed = function (slideIndex, direction) { - var theSlide = slider.children.eq(slideIndex); - var customDelay = parseInt(theSlide.attr('data-pauseBeforeOut')) || slider.settings.pauseBeforeOut; - slider.children.eq(slider.active.index).removeClass('in').addClass('out'); - if (!customDelay) { + el.goToSlideDelayed = function(slideIndex, direction) { + var theSlide = slider.children.eq(slideIndex); + var customDelay = parseInt(theSlide.attr('data-pauseBeforeOut')) || slider.settings.pauseBeforeOut; + slider.children.eq(slider.active.index).removeClass('in').addClass('out'); + if (!customDelay) { + el.goToSlide(slideIndex, direction); + } else { + setTimeout(function() { el.goToSlide(slideIndex, direction); - } - else { - setTimeout(function () { - el.goToSlide(slideIndex, direction); - }, customDelay); - } - }; - /** - * Transitions to the next slide in the show - */ - el.goToNextSlide = function () { + }, customDelay); + } + }; + /** + * Transitions to the next slide in the show + */ + el.goToNextSlide = function() { // if infiniteLoop is false and last page is showing, disregard call if (!slider.settings.infiniteLoop && slider.active.last) { return; @@ -1625,7 +1566,7 @@ r /** * Transitions to the prev slide in the show */ - el.goToPrevSlide = function () { + el.goToPrevSlide = function() { // if infiniteLoop is false and last page is showing, disregard call if (!slider.settings.infiniteLoop && slider.active.index === 0) { return; @@ -1639,7 +1580,7 @@ r * @param preventControlUpdate (boolean) * - if true, auto controls state will not be updated */ - el.startAuto = function (preventControlUpdate) { + el.startAuto = function(preventControlUpdate) { // if an interval already exists, disregard call var theSlide = slider.children.eq(slider.active.index); var customDelay = parseInt(theSlide.attr('data-pauseAfterInt')) || slider.settings.pauseAfterInt || 0; @@ -1649,11 +1590,10 @@ r } // create an interval - slider.interval = setTimeout(function () { + slider.interval = setTimeout(function() { if (slider.settings.autoDirection === 'next') { el.goToNextSlide(); - } - else { + } else { el.goToPrevSlide(); } slider.interval = 0; @@ -1670,7 +1610,7 @@ r * @param preventControlUpdate (boolean) * - if true, auto controls state will not be updated */ - el.stopAuto = function (preventControlUpdate) { + el.stopAuto = function(preventControlUpdate) { // if no interval exists, disregard call if (!slider.interval) { return; @@ -1686,13 +1626,13 @@ r /** * Returns current slide index (zero-based) */ - el.getCurrentSlide = function () { + el.getCurrentSlide = function() { return slider.active.index; }; /** * Returns current slide element */ - el.getCurrentSlideElement = function () { + el.getCurrentSlideElement = function() { return slider.children.eq(slider.active.index); }; /** @@ -1700,25 +1640,25 @@ r * @param index (int) * - The index (zero-based) of the element you want returned. */ - el.getSlideElement = function (index) { + el.getSlideElement = function(index) { return slider.children.eq(index); }; /** * Returns number of slides in show */ - el.getSlideCount = function () { + el.getSlideCount = function() { return slider.children.length; }; /** * Return slider.working variable */ - el.isWorking = function () { + el.isWorking = function() { return slider.working; }; /** * Update all dynamic slider elements */ - el.redrawSlider = function () { + el.redrawSlider = function() { // resize all children in ratio to new screen size slider.children.add(el.find('.bx-clone')).outerWidth(getSlideWidth()); // adjust the height @@ -1748,25 +1688,23 @@ r /** * Destroy the current instance of the slider (revert everything back to original state) */ - el.destroySlider = function () { + el.destroySlider = function() { // don't do anything if slider has already been destroyed if (!slider.initialized) { return; } slider.initialized = false; $('.bx-clone', this).remove(); - slider.children.each(function () { + slider.children.each(function() { if ($(this).data('origStyle') !== undefined) { $(this).attr('style', $(this).data('origStyle')); - } - else { + } else { $(this).removeAttr('style'); } }); if ($(this).data('origStyle') !== undefined) { this.attr('style', $(this).data('origStyle')); - } - else { + } else { $(this).removeAttr('style'); } $(this).unwrap().unwrap(); @@ -1800,7 +1738,7 @@ r * Reload the slider (revert all DOM changes, and re-initialize) */ - el.reloadSlider = function (settings) { + el.reloadSlider = function(settings) { if (settings !== undefined) { options = settings; } diff --git a/dist/jquery.bxslider.min.css b/dist/jquery.bxslider.min.css index 2889a102..d418b08b 100644 --- a/dist/jquery.bxslider.min.css +++ b/dist/jquery.bxslider.min.css @@ -11,8 +11,4 @@ Animate.css - http://daneden.me/animate Licensed under the MIT license - http://opensource.org/licenses/MIT Copyright (c) 2015 Daniel Eden -<<<<<<< HEAD -*/body{-webkit-backface-visibility:hidden}.animated{-webkit-animation-duration:1s;animation-duration:1s;-webkit-animation-fill-mode:both;animation-fill-mode:both}.animated.infinite{animation-iteration-count:infinite}.animated.hinge{-webkit-animation-duration:2s;animation-duration:2s}.animated.bounceIn,.animated.bounceOut,.animated.flipOutX,.animated.flipOutY{-webkit-animation-duration:.75s;animation-duration:.75s}.in .animated.fast,.in .animated.fastIn{-webkit-animation-duration:.5s;animation-duration:.5s}.in .animated.slow,.in .animated.slowIn{-webkit-animation-duration:1.5s;animation-duration:1.5s}.in .animated.xslow,.in .animated.xslowIn{-webkit-animation-duration:2.5s;animation-duration:2.5s}.in .animated.hinge.fast,.in .animated.hinge.fastIn{-webkit-animation-duration:1s;animation-duration:1s}.in .animated.hinge.slow,.in .animated.hinge.slowIn{-webkit-animation-duration:3s;animation-duration:3s}.out .animated.fastOut{-webkit-animation-duration:.5s;animation-duration:.5s}.out .animated.slowOut{-webkit-animation-duration:1.5s;animation-duration:1.5s}.out .animated.xslowOut{-webkit-animation-duration:2.5s;animation-duration:2.5s}.out .animated.hinge.fastOut{-webkit-animation-duration:1s;animation-duration:1s}.out .animated.hinge.slowOut{-webkit-animation-duration:3s;animation-duration:3s}.in .animated{-webkit-animation-delay:.5s;animation-delay:.5s}.in .animated.delay500,.in .animated.delayIn500{-webkit-animation-delay:1s;animation-delay:1s}.in .animated.delay1,.in .animated.delay1000,.in .animated.delayIn1000{-webkit-animation-delay:1.5s;animation-delay:1.5s}.in .animated.delay1500,.in .animated.delayIn1500{-webkit-animation-delay:2s;animation-delay:2s}.in .animated.delay2,.in .animated.delay2000,.in .animated.delayIn2000{-webkit-animation-delay:2.5s;animation-delay:2.5s}.in .animated.delay2500,.in .animated.delayIn2500{-webkit-animation-delay:3s;animation-delay:3s}.in .animated.delay3,.in .animated.delay3000,.in .animated.delayIn3000{-webkit-animation-delay:3.5s;animation-delay:3.5s}.in .animated.delay3500,.in .animated.delayIn3500{-webkit-animation-delay:4s;animation-delay:4s}.in .animated.delay4,.in .animated.delay4000,.in .animated.delayIn4000{-webkit-animation-delay:4.5s;animation-delay:4.5s}.in .animated.delay4500,.in .animated.delayIn4500{-webkit-animation-delay:5s;animation-delay:5s}.in .animated.delay5,.in .animateddelay5000,.in .animateddelayIn5000{-webkit-animation-delay:5.5s;animation-delay:5.5s}.out .animated.delayOut500{-webkit-animation-delay:1s;animation-delay:1s}.out .animated.delayOut1000{-webkit-animation-delay:1.5s;animation-delay:1.5s}.out .animated.delayOut1500{-webkit-animation-delay:2s;animation-delay:2s}.out .animated.delayOut2000{-webkit-animation-delay:2.5s;animation-delay:2.5s}.out .animated.delayOut2500{-webkit-animation-delay:3s;animation-delay:3s}.out .animated.delayOut3000{-webkit-animation-delay:3.5s;animation-delay:3.5s}.out .animated.delayOut3500{-webkit-animation-delay:4s;animation-delay:4s}.out .animated.delayOut4000{-webkit-animation-delay:4.5s;animation-delay:4.5s}.out .animated.delayOut4500{-webkit-animation-delay:5s;animation-delay:5s}.out .animateddelayOut5000{-webkit-animation-delay:5.5s;animation-delay:5.5s}@-webkit-keyframes bounce{0%,100%,20%,50%,80%{-webkit-transform:translateY(0)}40%{-webkit-transform:translateY(-30px)}60%{-webkit-transform:translateY(-15px)}}@keyframes bounce{0%,100%,20%,50%,80%{transform:translateY(0)}40%{transform:translateY(-30px)}60%{transform:translateY(-15px)}}.bounce{-webkit-animation-name:bounce;animation-name:bounce}@-webkit-keyframes bounceIn{0%{opacity:0;-webkit-transform:scale(0.3)}50%{opacity:1;-webkit-transform:scale(1.05)}70%{-webkit-transform:scale(0.9)}100%{-webkit-transform:scale(1)}}@keyframes bounceIn{0%{opacity:0;transform:scale(0.3)}50%{opacity:1;transform:scale(1.05)}70%{transform:scale(0.9)}100%{transform:scale(1)}}.in .bounceIn{-webkit-animation-name:bounceIn;animation-name:bounceIn}@-webkit-keyframes bounceInDown{0%{opacity:0;-webkit-transform:translateY(-2000px)}60%{opacity:1;-webkit-transform:translateY(30px)}80%{-webkit-transform:translateY(-10px)}100%{-webkit-transform:translateY(0)}}@keyframes bounceInDown{0%{opacity:0;transform:translateY(-2000px)}60%{opacity:1;transform:translateY(30px)}80%{transform:translateY(-10px)}100%{transform:translateY(0)}}.in .bounceInDown{-webkit-animation-name:bounceInDown;animation-name:bounceInDown}@-webkit-keyframes bounceInLeft{0%{opacity:0;-webkit-transform:translateX(-2000px)}60%{opacity:1;-webkit-transform:translateX(30px)}80%{-webkit-transform:translateX(-10px)}100%{-webkit-transform:translateX(0)}}@keyframes bounceInLeft{0%{opacity:0;transform:translateX(-2000px)}60%{opacity:1;transform:translateX(30px)}80%{transform:translateX(-10px)}100%{transform:translateX(0)}}.in .bounceInLeft{-webkit-animation-name:bounceInLeft;animation-name:bounceInLeft}@-webkit-keyframes bounceInRight{0%{opacity:0;-webkit-transform:translateX(2000px)}60%{opacity:1;-webkit-transform:translateX(-30px)}80%{-webkit-transform:translateX(10px)}100%{-webkit-transform:translateX(0)}}@keyframes bounceInRight{0%{opacity:0;transform:translateX(2000px)}60%{opacity:1;transform:translateX(-30px)}80%{transform:translateX(10px)}100%{transform:translateX(0)}}.in .bounceInRight{-webkit-animation-name:bounceInRight;animation-name:bounceInRight}@-webkit-keyframes bounceInUp{0%{opacity:0;-webkit-transform:translateY(2000px)}60%{opacity:1;-webkit-transform:translateY(-30px)}80%{-webkit-transform:translateY(10px)}100%{-webkit-transform:translateY(0)}}@keyframes bounceInUp{0%{opacity:0;transform:translateY(2000px)}60%{opacity:1;transform:translateY(-30px)}80%{transform:translateY(10px)}100%{transform:translateY(0)}}.in .bounceInUp{-webkit-animation-name:bounceInUp;animation-name:bounceInUp}@-webkit-keyframes bounceOut{0%{-webkit-transform:scale(1)}25%{-webkit-transform:scale(0.95)}50%{opacity:1;-webkit-transform:scale(1.1)}100%{opacity:0;-webkit-transform:scale(0.3)}}@keyframes bounceOut{0%{transform:scale(1)}25%{transform:scale(0.95)}50%{opacity:1;transform:scale(1.1)}100%{opacity:0;transform:scale(0.3)}}.out .bounceOut{-webkit-animation-name:bounceOut;animation-name:bounceOut}@-webkit-keyframes bounceOutDown{0%{-webkit-transform:translateY(0)}20%{opacity:1;-webkit-transform:translateY(-20px)}100%{opacity:0;-webkit-transform:translateY(2000px)}}@keyframes bounceOutDown{0%{transform:translateY(0)}20%{opacity:1;transform:translateY(-20px)}100%{opacity:0;transform:translateY(2000px)}}.out .bounceOutDown{-webkit-animation-name:bounceOutDown;animation-name:bounceOutDown}@-webkit-keyframes bounceOutLeft{0%{-webkit-transform:translateX(0)}20%{opacity:1;-webkit-transform:translateX(20px)}100%{opacity:0;-webkit-transform:translateX(-2000px)}}@keyframes bounceOutLeft{0%{transform:translateX(0)}20%{opacity:1;transform:translateX(20px)}100%{opacity:0;transform:translateX(-2000px)}}.out .bounceOutLeft{-webkit-animation-name:bounceOutLeft;animation-name:bounceOutLeft}@-webkit-keyframes bounceOutRight{0%{-webkit-transform:translateX(0)}20%{opacity:1;-webkit-transform:translateX(-20px)}100%{opacity:0;-webkit-transform:translateX(2000px)}}@keyframes bounceOutRight{0%{transform:translateX(0)}20%{opacity:1;transform:translateX(-20px)}100%{opacity:0;transform:translateX(2000px)}}.out .bounceOutRight{-webkit-animation-name:bounceOutRight;animation-name:bounceOutRight}@-webkit-keyframes bounceOutUp{0%{-webkit-transform:translateY(0)}20%{opacity:1;-webkit-transform:translateY(20px)}100%{opacity:0;-webkit-transform:translateY(-2000px)}}@keyframes bounceOutUp{0%{transform:translateY(0)}20%{opacity:1;transform:translateY(20px)}100%{opacity:0;transform:translateY(-2000px)}}.out .bounceOutUp{-webkit-animation-name:bounceOutUp;animation-name:bounceOutUp}@-webkit-keyframes fadeIn{0%{opacity:0}100%{opacity:1}}@keyframes fadeIn{0%{opacity:0}100%{opacity:1}}.in .fadeIn{-webkit-animation-name:fadeIn;animation-name:fadeIn}@-webkit-keyframes fadeInDown{0%{opacity:0;-webkit-transform:translateY(-20px)}100%{opacity:1;-webkit-transform:translateY(0)}}@keyframes fadeInDown{0%{opacity:0;transform:translateY(-20px)}100%{opacity:1;transform:translateY(0)}}.in .fadeInDown{-webkit-animation-name:fadeInDown;animation-name:fadeInDown}@-webkit-keyframes fadeInDownBig{0%{opacity:0;-webkit-transform:translateY(-2000px)}100%{opacity:1;-webkit-transform:translateY(0)}}@keyframes fadeInDownBig{0%{opacity:0;transform:translateY(-2000px)}100%{opacity:1;transform:translateY(0)}}.in .fadeInDownBig{-webkit-animation-name:fadeInDownBig;animation-name:fadeInDownBig}@-webkit-keyframes fadeInLeft{0%{opacity:0;-webkit-transform:translateX(-20px)}100%{opacity:1;-webkit-transform:translateX(0)}}@keyframes fadeInLeft{0%{opacity:0;transform:translateX(-20px)}100%{opacity:1;transform:translateX(0)}}.in .fadeInLeft{-webkit-animation-name:fadeInLeft;animation-name:fadeInLeft}@-webkit-keyframes fadeInLeftBig{0%{opacity:0;-webkit-transform:translateX(-2000px)}100%{opacity:1;-webkit-transform:translateX(0)}}@keyframes fadeInLeftBig{0%{opacity:0;transform:translateX(-2000px)}100%{opacity:1;transform:translateX(0)}}.in .fadeInLeftBig{-webkit-animation-name:fadeInLeftBig;animation-name:fadeInLeftBig}@-webkit-keyframes fadeInRight{0%{opacity:0;-webkit-transform:translateX(20px)}100%{opacity:1;-webkit-transform:translateX(0)}}@keyframes fadeInRight{0%{opacity:0;transform:translateX(20px)}100%{opacity:1;transform:translateX(0)}}.in .fadeInRight{-webkit-animation-name:fadeInRight;animation-name:fadeInRight}@-webkit-keyframes fadeInRightBig{0%{opacity:0;-webkit-transform:translateX(2000px)}100%{opacity:1;-webkit-transform:translateX(0)}}@keyframes fadeInRightBig{0%{opacity:0;transform:translateX(2000px)}100%{opacity:1;transform:translateX(0)}}.in .fadeInRightBig{-webkit-animation-name:fadeInRightBig;animation-name:fadeInRightBig}@-webkit-keyframes fadeInUp{0%{opacity:0;-webkit-transform:translateY(20px)}100%{opacity:1;-webkit-transform:translateY(0)}}@keyframes fadeInUp{0%{opacity:0;transform:translateY(20px)}100%{opacity:1;transform:translateY(0)}}.in .fadeInUp{-webkit-animation-name:fadeInUp;animation-name:fadeInUp}@-webkit-keyframes fadeInUpBig{0%{opacity:0;-webkit-transform:translateY(2000px)}100%{opacity:1;-webkit-transform:translateY(0)}}@keyframes fadeInUpBig{0%{opacity:0;transform:translateY(2000px)}100%{opacity:1;transform:translateY(0)}}.in .fadeInUpBig{-webkit-animation-name:fadeInUpBig;animation-name:fadeInUpBig}@-webkit-keyframes fadeOut{0%{opacity:1}100%{opacity:0}}@keyframes fadeOut{0%{opacity:1}100%{opacity:0}}.out .fadeOut{-webkit-animation-name:fadeOut;animation-name:fadeOut}@-webkit-keyframes fadeOutDown{0%{opacity:1;-webkit-transform:translateY(0)}100%{opacity:0;-webkit-transform:translateY(20px)}}@keyframes fadeOutDown{0%{opacity:1;transform:translateY(0)}100%{opacity:0;transform:translateY(20px)}}.out .fadeOutDown{-webkit-animation-name:fadeOutDown;animation-name:fadeOutDown}@-webkit-keyframes fadeOutDownBig{0%{opacity:1;-webkit-transform:translateY(0)}100%{opacity:0;-webkit-transform:translateY(2000px)}}@keyframes fadeOutDownBig{0%{opacity:1;transform:translateY(0)}100%{opacity:0;transform:translateY(2000px)}}.out .fadeOutDownBig{-webkit-animation-name:fadeOutDownBig;animation-name:fadeOutDownBig}@-webkit-keyframes fadeOutLeft{0%{opacity:1;-webkit-transform:translateX(0)}100%{opacity:0;-webkit-transform:translateX(-20px)}}@keyframes fadeOutLeft{0%{opacity:1;transform:translateX(0)}100%{opacity:0;transform:translateX(-20px)}}.out .fadeOutLeft{-webkit-animation-name:fadeOutLeft;animation-name:fadeOutLeft}@-webkit-keyframes fadeOutLeftBig{0%{opacity:1;-webkit-transform:translateX(0)}100%{opacity:0;-webkit-transform:translateX(-2000px)}}@keyframes fadeOutLeftBig{0%{opacity:1;transform:translateX(0)}100%{opacity:0;transform:translateX(-2000px)}}.out .fadeOutLeftBig{-webkit-animation-name:fadeOutLeftBig;animation-name:fadeOutLeftBig}@-webkit-keyframes fadeOutRight{0%{opacity:1;-webkit-transform:translateX(0)}100%{opacity:0;-webkit-transform:translateX(20px)}}@keyframes fadeOutRight{0%{opacity:1;transform:translateX(0)}100%{opacity:0;transform:translateX(20px)}}.out .fadeOutRight{-webkit-animation-name:fadeOutRight;animation-name:fadeOutRight}@-webkit-keyframes fadeOutRightBig{0%{opacity:1;-webkit-transform:translateX(0)}100%{opacity:0;-webkit-transform:translateX(2000px)}}@keyframes fadeOutRightBig{0%{opacity:1;transform:translateX(0)}100%{opacity:0;transform:translateX(2000px)}}.out .fadeOutRightBig{-webkit-animation-name:fadeOutRightBig;animation-name:fadeOutRightBig}@-webkit-keyframes fadeOutUp{0%{opacity:1;-webkit-transform:translateY(0)}100%{opacity:0;-webkit-transform:translateY(-20px)}}@keyframes fadeOutUp{0%{opacity:1;transform:translateY(0)}100%{opacity:0;transform:translateY(-20px)}}.out .fadeOutUp{-webkit-animation-name:fadeOutUp;animation-name:fadeOutUp}@-webkit-keyframes fadeOutUpBig{0%{opacity:1;-webkit-transform:translateY(0)}100%{opacity:0;-webkit-transform:translateY(-2000px)}}@keyframes fadeOutUpBig{0%{opacity:1;transform:translateY(0)}100%{opacity:0;transform:translateY(-2000px)}}.out .fadeOutUpBig{-webkit-animation-name:fadeOutUpBig;animation-name:fadeOutUpBig}@-webkit-keyframes flipInX{0%{-webkit-transform:perspective(400px) rotateX(90deg);opacity:0}40%{-webkit-transform:perspective(400px) rotateX(-10deg)}70%{-webkit-transform:perspective(400px) rotateX(10deg)}100%{-webkit-transform:perspective(400px) rotateX(0deg);opacity:1}}@keyframes flipInX{0%{transform:perspective(400px) rotateX(90deg);opacity:0}40%{transform:perspective(400px) rotateX(-10deg)}70%{transform:perspective(400px) rotateX(10deg)}100%{transform:perspective(400px) rotateX(0deg);opacity:1}}.in .flipInX{-webkit-backface-visibility:visible!important;backface-visibility:visible!important;-webkit-animation-name:flipInX;animation-name:flipInX}@-webkit-keyframes flipInY{0%{-webkit-transform:perspective(400px) rotateY(90deg);opacity:0}40%{-webkit-transform:perspective(400px) rotateY(-10deg)}70%{-webkit-transform:perspective(400px) rotateY(10deg)}100%{-webkit-transform:perspective(400px) rotateY(0deg);opacity:1}}@keyframes flipInY{0%{transform:perspective(400px) rotateY(90deg);opacity:0}40%{transform:perspective(400px) rotateY(-10deg)}70%{transform:perspective(400px) rotateY(10deg)}100%{transform:perspective(400px) rotateY(0deg);opacity:1}}.in .flipInY{-webkit-backface-visibility:visible!important;backface-visibility:visible!important;-webkit-animation-name:flipInY;animation-name:flipInY}@-webkit-keyframes flipOutX{0%{-webkit-transform:perspective(400px) rotateX(0deg);opacity:1}100%{-webkit-transform:perspective(400px) rotateX(90deg);opacity:0}}@keyframes flipOutX{0%{transform:perspective(400px) rotateX(0deg);opacity:1}100%{transform:perspective(400px) rotateX(90deg);opacity:0}}.out .flipOutX{-webkit-animation-name:flipOutX;animation-name:flipOutX;-webkit-backface-visibility:visible!important;backface-visibility:visible!important}@-webkit-keyframes flipOutY{0%{-webkit-transform:perspective(400px) rotateY(0deg);opacity:1}100%{-webkit-transform:perspective(400px) rotateY(90deg);opacity:0}}@keyframes flipOutY{0%{transform:perspective(400px) rotateY(0deg);opacity:1}100%{transform:perspective(400px) rotateY(90deg);opacity:0}}.out .flipOutY{-webkit-backface-visibility:visible!important;backface-visibility:visible!important;-webkit-animation-name:flipOutY;animation-name:flipOutY}@-webkit-keyframes lightSpeedIn{0%{-webkit-transform:translateX(100%) skewX(-30deg);opacity:0}60%{-webkit-transform:translateX(-20%) skewX(30deg);opacity:1}80%{-webkit-transform:translateX(0%) skewX(-15deg);opacity:1}100%{-webkit-transform:translateX(0%) skewX(0deg);opacity:1}}@keyframes lightSpeedIn{0%{transform:translateX(100%) skewX(-30deg);opacity:0}60%{transform:translateX(-20%) skewX(30deg);opacity:1}80%{transform:translateX(0%) skewX(-15deg);opacity:1}100%{transform:translateX(0%) skewX(0deg);opacity:1}}.in .lightSpeedIn{-webkit-animation-name:lightSpeedIn;animation-name:lightSpeedIn;-webkit-animation-timing-function:ease-out;animation-timing-function:ease-out}@-webkit-keyframes lightSpeedOut{0%{-webkit-transform:translateX(0%) skewX(0deg);opacity:1}100%{-webkit-transform:translateX(100%) skewX(-30deg);opacity:0}}@keyframes lightSpeedOut{0%{transform:translateX(0%) skewX(0deg);opacity:1}100%{transform:translateX(100%) skewX(-30deg);opacity:0}}.out .lightSpeedOut{-webkit-animation-name:lightSpeedOut;animation-name:lightSpeedOut;-webkit-animation-timing-function:ease-in;animation-timing-function:ease-in}@-webkit-keyframes rotateIn{0%{-webkit-transform-origin:center center;-webkit-transform:rotate(-200deg);opacity:0}100%{-webkit-transform-origin:center center;-webkit-transform:rotate(0);opacity:1}}@keyframes rotateIn{0%{transform-origin:center center;transform:rotate(-200deg);opacity:0}100%{transform-origin:center center;transform:rotate(0);opacity:1}}.in .rotateIn{-webkit-animation-name:rotateIn;animation-name:rotateIn}@-webkit-keyframes rotateInDownLeft{0%{-webkit-transform-origin:left bottom;-webkit-transform:rotate(-90deg);opacity:0}100%{-webkit-transform-origin:left bottom;-webkit-transform:rotate(0);opacity:1}}@keyframes rotateInDownLeft{0%{transform-origin:left bottom;transform:rotate(-90deg);opacity:0}100%{transform-origin:left bottom;transform:rotate(0);opacity:1}}.in .rotateInDownLeft{-webkit-animation-name:rotateInDownLeft;animation-name:rotateInDownLeft}@-webkit-keyframes rotateInDownRight{0%{-webkit-transform-origin:right bottom;-webkit-transform:rotate(90deg);opacity:0}100%{-webkit-transform-origin:right bottom;-webkit-transform:rotate(0);opacity:1}}@keyframes rotateInDownRight{0%{transform-origin:right bottom;transform:rotate(90deg);opacity:0}100%{transform-origin:right bottom;transform:rotate(0);opacity:1}}.in .rotateInDownRight{-webkit-animation-name:rotateInDownRight;animation-name:rotateInDownRight}@-webkit-keyframes rotateInUpLeft{0%{-webkit-transform-origin:left bottom;-webkit-transform:rotate(90deg);opacity:0}100%{-webkit-transform-origin:left bottom;-webkit-transform:rotate(0);opacity:1}}@keyframes rotateInUpLeft{0%{transform-origin:left bottom;transform:rotate(90deg);opacity:0}100%{transform-origin:left bottom;transform:rotate(0);opacity:1}}.in .rotateInUpLeft{-webkit-animation-name:rotateInUpLeft;animation-name:rotateInUpLeft}@-webkit-keyframes rotateInUpRight{0%{-webkit-transform-origin:right bottom;-webkit-transform:rotate(-90deg);opacity:0}100%{-webkit-transform-origin:right bottom;-webkit-transform:rotate(0);opacity:1}}@keyframes rotateInUpRight{0%{transform-origin:right bottom;transform:rotate(-90deg);opacity:0}100%{transform-origin:right bottom;transform:rotate(0);opacity:1}}.in .rotateInUpRight{-webkit-animation-name:rotateInUpRight;animation-name:rotateInUpRight}@-webkit-keyframes rotateOut{0%{-webkit-transform-origin:center center;-webkit-transform:rotate(0);opacity:1}100%{-webkit-transform-origin:center center;-webkit-transform:rotate(200deg);opacity:0}}@keyframes rotateOut{0%{transform-origin:center center;transform:rotate(0);opacity:1}100%{transform-origin:center center;transform:rotate(200deg);opacity:0}}.out .rotateOut{-webkit-animation-name:rotateOut;animation-name:rotateOut}@-webkit-keyframes rotateOutDownLeft{0%{-webkit-transform-origin:left bottom;-webkit-transform:rotate(0);opacity:1}100%{-webkit-transform-origin:left bottom;-webkit-transform:rotate(90deg);opacity:0}}@keyframes rotateOutDownLeft{0%{transform-origin:left bottom;transform:rotate(0);opacity:1}100%{transform-origin:left bottom;transform:rotate(90deg);opacity:0}}.out .rotateOutDownLeft{-webkit-animation-name:rotateOutDownLeft;animation-name:rotateOutDownLeft}@-webkit-keyframes rotateOutDownRight{0%{-webkit-transform-origin:right bottom;-webkit-transform:rotate(0);opacity:1}100%{-webkit-transform-origin:right bottom;-webkit-transform:rotate(-90deg);opacity:0}}@keyframes rotateOutDownRight{0%{transform-origin:right bottom;transform:rotate(0);opacity:1}100%{transform-origin:right bottom;transform:rotate(-90deg);opacity:0}}.out .rotateOutDownRight{-webkit-animation-name:rotateOutDownRight;animation-name:rotateOutDownRight}@-webkit-keyframes rotateOutUpLeft{0%{-webkit-transform-origin:left bottom;-webkit-transform:rotate(0);opacity:1}100%{-webkit-transform-origin:left bottom;-webkit-transform:rotate(-90deg);opacity:0}}@keyframes rotateOutUpLeft{0%{transform-origin:left bottom;transform:rotate(0);opacity:1}100%{-transform-origin:left bottom;-transform:rotate(-90deg);opacity:0}}.out .rotateOutUpLeft{-webkit-animation-name:rotateOutUpLeft;animation-name:rotateOutUpLeft}@-webkit-keyframes rotateOutUpRight{0%{-webkit-transform-origin:right bottom;-webkit-transform:rotate(0);opacity:1}100%{-webkit-transform-origin:right bottom;-webkit-transform:rotate(90deg);opacity:0}}@keyframes rotateOutUpRight{0%{transform-origin:right bottom;transform:rotate(0);opacity:1}100%{transform-origin:right bottom;transform:rotate(90deg);opacity:0}}.out .rotateOutUpRight{-webkit-animation-name:rotateOutUpRight;animation-name:rotateOutUpRight}@-webkit-keyframes slideInDown{0%{-webkit-transform:translate3d(0,-100%,0);visibility:visible}100%{-webkit-transform:translate3d(0,0,0)}}@keyframes slideInDown{0%{transform:translate3d(0,-100%,0);visibility:visible}100%{transform:translate3d(0,0,0)}}.in .slideInDown{-webkit-animation-name:slideInDown;animation-name:slideInDown}@-webkit-keyframes slideInLeft{0%{-webkit-transform:translate3d(-100%,0,0);visibility:visible}100%{-webkit-transform:translate3d(0,0,0)}}@keyframes slideInLeft{0%{transform:translate3d(-100%,0,0);visibility:visible}100%{transform:translate3d(0,0,0)}}.in .slideInLeft{-webkit-animation-name:slideInLeft;animation-name:slideInLeft}@-webkit-keyframes slideInRight{0%{-webkit-transform:translate3d(100%,0,0);visibility:visible}100%{-webkit-transform:translate3d(0,0,0)}}@keyframes slideInRight{0%{transform:translate3d(100%,0,0);visibility:visible}100%{transform:translate3d(0,0,0)}}.in .slideInRight{-webkit-animation-name:slideInRight;animation-name:slideInRight}@-webkit-keyframes slideInUp{0%{-webkit-transform:translate3d(0,100%,0);visibility:visible}100%{-webkit-transform:translate3d(0,0,0)}}@keyframes slideInUp{0%{transform:translate3d(0,100%,0);visibility:visible}100%{transform:translate3d(0,0,0)}}.in .slideInUp{-webkit-animation-name:slideInUp;animation-name:slideInUp}@-webkit-keyframes slideOutDown{0%{-webkit-transform:translate3d(0,0,0);visibility:visible}100%{-webkit-transform:translate3d(0,100%,0)}}@keyframes slideOutDown{0%{transform:translate3d(0,0,0);visibility:visible}100%{transform:translate3d(0,100%,0)}}.out .slideOutDown{-webkit-animation-name:slideOutDown;animation-name:slideOutDown}@-webkit-keyframes slideOutLeft{0%{-webkit-transform:translate3d(0,0,0);visibility:visible}100%{-webkit-transform:translate3d(-100%,0,0)}}@keyframes slideOutLeft{0%{transform:translate3d(0,0,0);visibility:visible}100%{transform:translate3d(-100%,0,0)}}.out .slideOutLeft{-webkit-animation-name:slideOutLeft;animation-name:slideOutLeft}@-webkit-keyframes slideOutRight{0%{-webkit-transform:translate3d(0,0,0);visibility:visible}100%{-webkit-transform:translate3d(100%,0,0)}}@keyframes slideOutRight{0%{transform:translate3d(0,0,0);visibility:visible}100%{transform:translate3d(100%,0,0)}}.out .slideOutRight{-webkit-animation-name:slideOutRight;animation-name:slideOutRight}@-webkit-keyframes slideOutUp{0%{-webkit-transform:translate3d(0,0,0);visibility:visible}100%{-webkit-transform:translate3d(0,-100%,0)}}@keyframes slideOutUp{0%{transform:translate3d(0,0,0);visibility:visible}100%{transform:translate3d(0,-100%,0)}}.out .slideOutUp{-webkit-animation-name:slideOutUp;animation-name:slideOutUp}@-webkit-keyframes hinge{0%{-webkit-transform:rotate(0);-webkit-transform-origin:top left;-webkit-animation-timing-function:ease-in-out}20%,60%{-webkit-transform:rotate(80deg);-webkit-transform-origin:top left;-webkit-animation-timing-function:ease-in-out}40%{-webkit-transform:rotate(60deg);-webkit-transform-origin:top left;-webkit-animation-timing-function:ease-in-out}80%{-webkit-transform:rotate(60deg) translateY(0);opacity:1;-webkit-transform-origin:top left;-webkit-animation-timing-function:ease-in-out}100%{-webkit-transform:translateY(700px);opacity:0}}@keyframes hinge{0%{transform:rotate(0);transform-origin:top left;animation-timing-function:ease-in-out}20%,60%{transform:rotate(80deg);transform-origin:top left;animation-timing-function:ease-in-out}40%{transform:rotate(60deg);transform-origin:top left;animation-timing-function:ease-in-out}80%{transform:rotate(60deg) translateY(0);opacity:1;transform-origin:top left;animation-timing-function:ease-in-out}100%{transform:translateY(700px);opacity:0}}.out .hingeOut{-webkit-animation-name:hinge;animation-name:hinge}@-webkit-keyframes rollIn{0%{opacity:0;-webkit-transform:translateX(-100%) rotate(-120deg)}100%{opacity:1;-webkit-transform:translateX(0px) rotate(0deg)}}@keyframes rollIn{0%{opacity:0;transform:translateX(-100%) rotate(-120deg)}100%{opacity:1;transform:translateX(0px) rotate(0deg)}}.in .rollIn{-webkit-animation-name:rollIn;animation-name:rollIn}@-webkit-keyframes rollOut{0%{opacity:1;-webkit-transform:translateX(0px) rotate(0deg)}100%{opacity:0;-webkit-transform:translateX(100%) rotate(120deg)}}@keyframes rollOut{0%{opacity:1;transform:translateX(0px) rotate(0deg)}100%{opacity:0;transform:translateX(100%) rotate(120deg)}}.out .rollOut{-webkit-animation-name:rollOut;animation-name:rollOut}@-webkit-keyframes zoomIn{0%{opacity:0;-webkit-transform:scale3d(0.3,.3,.3)}50%{opacity:1}}@keyframes zoomIn{0%{opacity:0;transform:scale3d(0.3,.3,.3)}50%{opacity:1}}.in .zoomIn{-webkit-animation-name:zoomIn;animation-name:zoomIn}@-webkit-keyframes zoomInDown{0%{opacity:0;-webkit-transform:scale3d(0.1,.1,.1) translate3d(0,-1000px,0);-webkit-animation-timing-function:cubic-bezier(0.55,.055,.675,.19)}60%{opacity:1;-webkit-transform:scale3d(0.475,.475,.475) translate3d(0,60px,0);-webkit-animation-timing-function:cubic-bezier(0.175,.885,.32,1)}}@keyframes zoomInDown{0%{opacity:0;transform:scale3d(0.1,.1,.1) translate3d(0,-1000px,0);animation-timing-function:cubic-bezier(0.55,.055,.675,.19)}60%{opacity:1;transform:scale3d(0.475,.475,.475) translate3d(0,60px,0);animation-timing-function:cubic-bezier(0.175,.885,.32,1)}}.in .zoomInDown{-webkit-animation-name:zoomInDown;animation-name:zoomInDown}@-webkit-keyframes zoomInLeft{0%{opacity:0;-webkit-transform:scale3d(0.1,.1,.1) translate3d(-1000px,0,0);-webkit-animation-timing-function:cubic-bezier(0.55,.055,.675,.19)}60%{opacity:1;-webkit-transform:scale3d(0.475,.475,.475) translate3d(10px,0,0);-webkit-animation-timing-function:cubic-bezier(0.175,.885,.32,1)}}@keyframes zoomInLeft{0%{opacity:0;transform:scale3d(0.1,.1,.1) translate3d(-1000px,0,0);animation-timing-function:cubic-bezier(0.55,.055,.675,.19)}60%{opacity:1;transform:scale3d(0.475,.475,.475) translate3d(10px,0,0);animation-timing-function:cubic-bezier(0.175,.885,.32,1)}}.in .zoomInLeft{-webkit-animation-name:zoomInLeft;animation-name:zoomInLeft}@-webkit-keyframes zoomInRight{0%{opacity:0;-webkit-transform:scale3d(0.1,.1,.1) translate3d(1000px,0,0);-webkit-animation-timing-function:cubic-bezier(0.55,.055,.675,.19)}60%{opacity:1;-webkit-transform:scale3d(0.475,.475,.475) translate3d(-10px,0,0);-webkit-animation-timing-function:cubic-bezier(0.175,.885,.32,1)}}@keyframes zoomInRight{0%{opacity:0;transform:scale3d(0.1,.1,.1) translate3d(1000px,0,0);animation-timing-function:cubic-bezier(0.55,.055,.675,.19)}60%{opacity:1;transform:scale3d(0.475,.475,.475) translate3d(-10px,0,0);animation-timing-function:cubic-bezier(0.175,.885,.32,1)}}.in .zoomInRight{-webkit-animation-name:zoomInRight;animation-name:zoomInRight}@-webkit-keyframes zoomInUp{0%{opacity:0;-webkit-transform:scale3d(0.1,.1,.1) translate3d(0,1000px,0);-webkit-animation-timing-function:cubic-bezier(0.55,.055,.675,.19)}60%{opacity:1;-webkit-transform:scale3d(0.475,.475,.475) translate3d(0,-60px,0);-webkit-animation-timing-function:cubic-bezier(0.175,.885,.32,1)}}@keyframes zoomInUp{0%{opacity:0;transform:scale3d(0.1,.1,.1) translate3d(0,1000px,0);animation-timing-function:cubic-bezier(0.55,.055,.675,.19)}60%{opacity:1;transform:scale3d(0.475,.475,.475) translate3d(0,-60px,0);animation-timing-function:cubic-bezier(0.175,.885,.32,1)}}.in .zoomInUp{-webkit-animation-name:zoomInUp;animation-name:zoomInUp}@-webkit-keyframes zoomOut{0%{opacity:1}50%{opacity:0;-webkit-transform:scale3d(0.3,.3,.3)}100%{opacity:0}}@keyframes zoomOut{0%{opacity:1}50%{opacity:0;transform:scale3d(0.3,.3,.3)}100%{opacity:0}}.out .zoomOut{-webkit-animation-name:zoomOut;animation-name:zoomOut}@-webkit-keyframes zoomOutDown{40%{opacity:1;-webkit-transform:scale3d(0.475,.475,.475) translate3d(0,-60px,0);-webkit-animation-timing-function:cubic-bezier(0.55,.055,.675,.19)}100%{opacity:0;-webkit-transform:scale3d(0.1,.1,.1) translate3d(0,2000px,0);-webkit-transform-origin:center bottom;-webkit-animation-timing-function:cubic-bezier(0.175,.885,.32,1)}}@keyframes zoomOutDown{40%{opacity:1;transform:scale3d(0.475,.475,.475) translate3d(0,-60px,0);animation-timing-function:cubic-bezier(0.55,.055,.675,.19)}100%{opacity:0;transform:scale3d(0.1,.1,.1) translate3d(0,2000px,0);transform-origin:center bottom;animation-timing-function:cubic-bezier(0.175,.885,.32,1)}}.out .zoomOutDown{-webkit-animation-name:zoomOutDown;animation-name:zoomOutDown}@-webkit-keyframes zoomOutLeft{40%{opacity:1;-webkit-transform:scale3d(0.475,.475,.475) translate3d(42px,0,0)}100%{opacity:0;-webkit-transform:scale3d(0.1) translate3d(-2000px,0,0);-webkit-transform-origin:left center}}@keyframes zoomOutLeft{40%{opacity:1;transform:scale3d(0.475,.475,.475) translate3d(42px,0,0)}100%{opacity:0;transform:scale3d(0.1) translate3d(-2000px,0,0);transform-origin:left center}}.out .zoomOutLeft{-webkit-animation-name:zoomOutLeft;animation-name:zoomOutLeft}@-webkit-keyframes zoomOutRight{40%{opacity:1;-webkit-transform:scale3d(0.475,.475,.475) translate3d(-42px,0,0)}100%{opacity:0;-webkit-transform:scale3d(0.1) translate3d(2000px,0,0);-webkit-transform-origin:right center}}@keyframes zoomOutRight{40%{opacity:1;transform:scale3d(0.475,.475,.475) translate3d(-42px,0,0)}100%{opacity:0;transform:scale3d(0.1) translate3d(2000px,0,0);transform-origin:right center}}.out .zoomOutRight{-webkit-animation-name:zoomOutRight;animation-name:zoomOutRight}@-webkit-keyframes zoomOutUp{40%{opacity:1;-webkit-transform:scale3d(0.475,.475,.475) translate3d(0,60px,0);-webkit-animation-timing-function:cubic-bezier(0.55,.055,.675,.19)}100%{opacity:0;-webkit-transform:scale3d(0.1,.1,.1) translate3d(0,-2000px,0);-webkit-transform-origin:center bottom;-webkit-animation-timing-function:cubic-bezier(0.175,.885,.32,1)}}@keyframes zoomOutUp{40%{opacity:1;transform:scale3d(0.475,.475,.475) translate3d(0,60px,0);animation-timing-function:cubic-bezier(0.55,.055,.675,.19)}100%{opacity:0;transform:scale3d(0.1,.1,.1) translate3d(0,-2000px,0);transform-origin:center bottom;animation-timing-function:cubic-bezier(0.175,.885,.32,1)}}.out .zoomOutUp{-webkit-animation-name:zoomOutUp;animation-name:zoomOutUp}.bx-wrapper{position:relative;margin:0 auto 60px;padding:0;*zoom:1;-ms-touch-action:pan-y;touch-action:pan-y}.bx-wrapper img{max-width:100%;display:block}.bxslider{margin:0;padding:0}ul.bxslider{list-style:none}.bx-viewport{-webkit-transform:translatez(0)}.bx-wrapper{-moz-box-shadow:0 0 5px #ccc;-webkit-box-shadow:0 0 5px #ccc;box-shadow:0 0 5px #ccc;border:5px solid #fff;background:#fff}.bx-wrapper .bx-controls-auto,.bx-wrapper .bx-pager{position:absolute;bottom:-30px;width:100%}.bx-wrapper .bx-loading{min-height:50px;background:url(images/bx_loader.gif) center center no-repeat #fff;height:100%;width:100%;position:absolute;top:0;left:0;z-index:2000}.bx-wrapper .bx-pager{text-align:center;font-size:.85em;font-family:Arial;font-weight:700;color:#666;padding-top:20px}.bx-wrapper .bx-pager.bx-default-pager a{background:#666;text-indent:-9999px;display:block;width:10px;height:10px;margin:0 5px;outline:0;-moz-border-radius:5px;-webkit-border-radius:5px;border-radius:5px}.bx-wrapper .bx-pager.bx-default-pager a.active,.bx-wrapper .bx-pager.bx-default-pager a:focus,.bx-wrapper .bx-pager.bx-default-pager a:hover{background:#000}.bx-wrapper .bx-controls-auto .bx-controls-auto-item,.bx-wrapper .bx-pager-item{display:inline-block;*zoom:1;*display:inline}.bx-wrapper .bx-pager-item{font-size:0;line-height:0}.bx-wrapper .bx-prev{left:10px;background:url(images/controls.png) no-repeat 0 -32px}.bx-wrapper .bx-prev:focus,.bx-wrapper .bx-prev:hover{background-position:0 0}.bx-wrapper .bx-next{right:10px;background:url(images/controls.png) no-repeat -43px -32px}.bx-wrapper .bx-next:focus,.bx-wrapper .bx-next:hover{background-position:-43px 0}.bx-wrapper .bx-controls-direction a{position:absolute;top:50%;margin-top:-16px;outline:0;width:32px;height:32px;text-indent:-9999px;z-index:9999}.bx-wrapper .bx-controls-direction a.disabled{display:none}.bx-wrapper .bx-controls-auto{text-align:center}.bx-wrapper .bx-controls-auto .bx-start{display:block;text-indent:-9999px;width:10px;height:11px;outline:0;background:url(images/controls.png) -86px -11px no-repeat;margin:0 3px}.bx-wrapper .bx-controls-auto .bx-start.active,.bx-wrapper .bx-controls-auto .bx-start:focus,.bx-wrapper .bx-controls-auto .bx-start:hover{background-position:-86px 0}.bx-wrapper .bx-controls-auto .bx-stop{display:block;text-indent:-9999px;width:9px;height:11px;outline:0;background:url(images/controls.png) -86px -44px no-repeat;margin:0 3px}.bx-wrapper .bx-controls-auto .bx-stop.active,.bx-wrapper .bx-controls-auto .bx-stop:focus,.bx-wrapper .bx-controls-auto .bx-stop:hover{background-position:-86px -33px}.bx-wrapper .bx-controls.bx-has-controls-auto.bx-has-pager .bx-pager{text-align:left;width:80%}.bx-wrapper .bx-controls.bx-has-controls-auto.bx-has-pager .bx-controls-auto{right:0;width:35px}.bx-wrapper .bx-caption{position:absolute;bottom:0;left:0;background:#666;background:rgba(80,80,80,.75);width:100%}.bx-wrapper .bx-caption span{color:#fff;font-family:Arial;display:block;font-size:.85em;padding:10px} -======= */body{-webkit-backface-visibility:hidden}.animated{-webkit-animation-duration:1s;animation-duration:1s;-webkit-animation-fill-mode:both;animation-fill-mode:both}.animated.infinite{animation-iteration-count:infinite}.animated.hinge{-webkit-animation-duration:2s;animation-duration:2s}.animated.bounceIn,.animated.bounceOut,.animated.flipOutX,.animated.flipOutY{-webkit-animation-duration:.75s;animation-duration:.75s}.in .animated.fast,.in .animated.fastIn{-webkit-animation-duration:.5s;animation-duration:.5s}.in .animated.slow,.in .animated.slowIn{-webkit-animation-duration:1.5s;animation-duration:1.5s}.in .animated.xslow,.in .animated.xslowIn{-webkit-animation-duration:2.5s;animation-duration:2.5s}.in .animated.hinge.fast,.in .animated.hinge.fastIn{-webkit-animation-duration:1s;animation-duration:1s}.in .animated.hinge.slow,.in .animated.hinge.slowIn{-webkit-animation-duration:3s;animation-duration:3s}.out .animated.fastOut{-webkit-animation-duration:.5s;animation-duration:.5s}.out .animated.slowOut{-webkit-animation-duration:1.5s;animation-duration:1.5s}.out .animated.xslowOut{-webkit-animation-duration:2.5s;animation-duration:2.5s}.out .animated.hinge.fastOut{-webkit-animation-duration:1s;animation-duration:1s}.out .animated.hinge.slowOut{-webkit-animation-duration:3s;animation-duration:3s}.in .animated{-webkit-animation-delay:.5s;animation-delay:.5s}.in .animated.delay500,.in .animated.delayIn500{-webkit-animation-delay:1s;animation-delay:1s}.in .animated.delay1,.in .animated.delay1000,.in .animated.delayIn1000{-webkit-animation-delay:1.5s;animation-delay:1.5s}.in .animated.delay1500,.in .animated.delayIn1500{-webkit-animation-delay:2s;animation-delay:2s}.in .animated.delay2,.in .animated.delay2000,.in .animated.delayIn2000{-webkit-animation-delay:2.5s;animation-delay:2.5s}.in .animated.delay2500,.in .animated.delayIn2500{-webkit-animation-delay:3s;animation-delay:3s}.in .animated.delay3,.in .animated.delay3000,.in .animated.delayIn3000{-webkit-animation-delay:3.5s;animation-delay:3.5s}.in .animated.delay3500,.in .animated.delayIn3500{-webkit-animation-delay:4s;animation-delay:4s}.in .animated.delay4,.in .animated.delay4000,.in .animated.delayIn4000{-webkit-animation-delay:4.5s;animation-delay:4.5s}.in .animated.delay4500,.in .animated.delayIn4500{-webkit-animation-delay:5s;animation-delay:5s}.in .animated.delay5,.in .animateddelay5000,.in .animateddelayIn5000{-webkit-animation-delay:5.5s;animation-delay:5.5s}.out .animated.delayOut500{-webkit-animation-delay:1s;animation-delay:1s}.out .animated.delayOut1000{-webkit-animation-delay:1.5s;animation-delay:1.5s}.out .animated.delayOut1500{-webkit-animation-delay:2s;animation-delay:2s}.out .animated.delayOut2000{-webkit-animation-delay:2.5s;animation-delay:2.5s}.out .animated.delayOut2500{-webkit-animation-delay:3s;animation-delay:3s}.out .animated.delayOut3000{-webkit-animation-delay:3.5s;animation-delay:3.5s}.out .animated.delayOut3500{-webkit-animation-delay:4s;animation-delay:4s}.out .animated.delayOut4000{-webkit-animation-delay:4.5s;animation-delay:4.5s}.out .animated.delayOut4500{-webkit-animation-delay:5s;animation-delay:5s}.out .animateddelayOut5000{-webkit-animation-delay:5.5s;animation-delay:5.5s}@-webkit-keyframes bounce{0%,100%,20%,50%,80%{-webkit-transform:translateY(0)}40%{-webkit-transform:translateY(-30px)}60%{-webkit-transform:translateY(-15px)}}@keyframes bounce{0%,100%,20%,50%,80%{transform:translateY(0)}40%{transform:translateY(-30px)}60%{transform:translateY(-15px)}}.bounce{-webkit-animation-name:bounce;animation-name:bounce}@-webkit-keyframes bounceIn{0%{opacity:0;-webkit-transform:scale(0.3)}50%{opacity:1;-webkit-transform:scale(1.05)}70%{-webkit-transform:scale(0.9)}100%{-webkit-transform:scale(1)}}@keyframes bounceIn{0%{opacity:0;transform:scale(0.3)}50%{opacity:1;transform:scale(1.05)}70%{transform:scale(0.9)}100%{transform:scale(1)}}.in .bounceIn{-webkit-animation-name:bounceIn;animation-name:bounceIn}@-webkit-keyframes bounceInDown{0%{opacity:0;-webkit-transform:translateY(-2000px)}60%{opacity:1;-webkit-transform:translateY(30px)}80%{-webkit-transform:translateY(-10px)}100%{-webkit-transform:translateY(0)}}@keyframes bounceInDown{0%{opacity:0;transform:translateY(-2000px)}60%{opacity:1;transform:translateY(30px)}80%{transform:translateY(-10px)}100%{transform:translateY(0)}}.in .bounceInDown{-webkit-animation-name:bounceInDown;animation-name:bounceInDown}@-webkit-keyframes bounceInLeft{0%{opacity:0;-webkit-transform:translateX(-2000px)}60%{opacity:1;-webkit-transform:translateX(30px)}80%{-webkit-transform:translateX(-10px)}100%{-webkit-transform:translateX(0)}}@keyframes bounceInLeft{0%{opacity:0;transform:translateX(-2000px)}60%{opacity:1;transform:translateX(30px)}80%{transform:translateX(-10px)}100%{transform:translateX(0)}}.in .bounceInLeft{-webkit-animation-name:bounceInLeft;animation-name:bounceInLeft}@-webkit-keyframes bounceInRight{0%{opacity:0;-webkit-transform:translateX(2000px)}60%{opacity:1;-webkit-transform:translateX(-30px)}80%{-webkit-transform:translateX(10px)}100%{-webkit-transform:translateX(0)}}@keyframes bounceInRight{0%{opacity:0;transform:translateX(2000px)}60%{opacity:1;transform:translateX(-30px)}80%{transform:translateX(10px)}100%{transform:translateX(0)}}.in .bounceInRight{-webkit-animation-name:bounceInRight;animation-name:bounceInRight}@-webkit-keyframes bounceInUp{0%{opacity:0;-webkit-transform:translateY(2000px)}60%{opacity:1;-webkit-transform:translateY(-30px)}80%{-webkit-transform:translateY(10px)}100%{-webkit-transform:translateY(0)}}@keyframes bounceInUp{0%{opacity:0;transform:translateY(2000px)}60%{opacity:1;transform:translateY(-30px)}80%{transform:translateY(10px)}100%{transform:translateY(0)}}.in .bounceInUp{-webkit-animation-name:bounceInUp;animation-name:bounceInUp}@-webkit-keyframes bounceOut{0%{-webkit-transform:scale(1)}25%{-webkit-transform:scale(0.95)}50%{opacity:1;-webkit-transform:scale(1.1)}100%{opacity:0;-webkit-transform:scale(0.3)}}@keyframes bounceOut{0%{transform:scale(1)}25%{transform:scale(0.95)}50%{opacity:1;transform:scale(1.1)}100%{opacity:0;transform:scale(0.3)}}.out .bounceOut{-webkit-animation-name:bounceOut;animation-name:bounceOut}@-webkit-keyframes bounceOutDown{0%{-webkit-transform:translateY(0)}20%{opacity:1;-webkit-transform:translateY(-20px)}100%{opacity:0;-webkit-transform:translateY(2000px)}}@keyframes bounceOutDown{0%{transform:translateY(0)}20%{opacity:1;transform:translateY(-20px)}100%{opacity:0;transform:translateY(2000px)}}.out .bounceOutDown{-webkit-animation-name:bounceOutDown;animation-name:bounceOutDown}@-webkit-keyframes bounceOutLeft{0%{-webkit-transform:translateX(0)}20%{opacity:1;-webkit-transform:translateX(20px)}100%{opacity:0;-webkit-transform:translateX(-2000px)}}@keyframes bounceOutLeft{0%{transform:translateX(0)}20%{opacity:1;transform:translateX(20px)}100%{opacity:0;transform:translateX(-2000px)}}.out .bounceOutLeft{-webkit-animation-name:bounceOutLeft;animation-name:bounceOutLeft}@-webkit-keyframes bounceOutRight{0%{-webkit-transform:translateX(0)}20%{opacity:1;-webkit-transform:translateX(-20px)}100%{opacity:0;-webkit-transform:translateX(2000px)}}@keyframes bounceOutRight{0%{transform:translateX(0)}20%{opacity:1;transform:translateX(-20px)}100%{opacity:0;transform:translateX(2000px)}}.out .bounceOutRight{-webkit-animation-name:bounceOutRight;animation-name:bounceOutRight}@-webkit-keyframes bounceOutUp{0%{-webkit-transform:translateY(0)}20%{opacity:1;-webkit-transform:translateY(20px)}100%{opacity:0;-webkit-transform:translateY(-2000px)}}@keyframes bounceOutUp{0%{transform:translateY(0)}20%{opacity:1;transform:translateY(20px)}100%{opacity:0;transform:translateY(-2000px)}}.out .bounceOutUp{-webkit-animation-name:bounceOutUp;animation-name:bounceOutUp}@-webkit-keyframes fadeIn{0%{opacity:0}100%{opacity:1}}@keyframes fadeIn{0%{opacity:0}100%{opacity:1}}.in .fadeIn{-webkit-animation-name:fadeIn;animation-name:fadeIn}@-webkit-keyframes fadeInDown{0%{opacity:0;-webkit-transform:translateY(-20px)}100%{opacity:1;-webkit-transform:translateY(0)}}@keyframes fadeInDown{0%{opacity:0;transform:translateY(-20px)}100%{opacity:1;transform:translateY(0)}}.in .fadeInDown{-webkit-animation-name:fadeInDown;animation-name:fadeInDown}@-webkit-keyframes fadeInDownBig{0%{opacity:0;-webkit-transform:translateY(-2000px)}100%{opacity:1;-webkit-transform:translateY(0)}}@keyframes fadeInDownBig{0%{opacity:0;transform:translateY(-2000px)}100%{opacity:1;transform:translateY(0)}}.in .fadeInDownBig{-webkit-animation-name:fadeInDownBig;animation-name:fadeInDownBig}@-webkit-keyframes fadeInLeft{0%{opacity:0;-webkit-transform:translateX(-20px)}100%{opacity:1;-webkit-transform:translateX(0)}}@keyframes fadeInLeft{0%{opacity:0;transform:translateX(-20px)}100%{opacity:1;transform:translateX(0)}}.in .fadeInLeft{-webkit-animation-name:fadeInLeft;animation-name:fadeInLeft}@-webkit-keyframes fadeInLeftBig{0%{opacity:0;-webkit-transform:translateX(-2000px)}100%{opacity:1;-webkit-transform:translateX(0)}}@keyframes fadeInLeftBig{0%{opacity:0;transform:translateX(-2000px)}100%{opacity:1;transform:translateX(0)}}.in .fadeInLeftBig{-webkit-animation-name:fadeInLeftBig;animation-name:fadeInLeftBig}@-webkit-keyframes fadeInRight{0%{opacity:0;-webkit-transform:translateX(20px)}100%{opacity:1;-webkit-transform:translateX(0)}}@keyframes fadeInRight{0%{opacity:0;transform:translateX(20px)}100%{opacity:1;transform:translateX(0)}}.in .fadeInRight{-webkit-animation-name:fadeInRight;animation-name:fadeInRight}@-webkit-keyframes fadeInRightBig{0%{opacity:0;-webkit-transform:translateX(2000px)}100%{opacity:1;-webkit-transform:translateX(0)}}@keyframes fadeInRightBig{0%{opacity:0;transform:translateX(2000px)}100%{opacity:1;transform:translateX(0)}}.in .fadeInRightBig{-webkit-animation-name:fadeInRightBig;animation-name:fadeInRightBig}@-webkit-keyframes fadeInUp{0%{opacity:0;-webkit-transform:translateY(20px)}100%{opacity:1;-webkit-transform:translateY(0)}}@keyframes fadeInUp{0%{opacity:0;transform:translateY(20px)}100%{opacity:1;transform:translateY(0)}}.in .fadeInUp{-webkit-animation-name:fadeInUp;animation-name:fadeInUp}@-webkit-keyframes fadeInUpBig{0%{opacity:0;-webkit-transform:translateY(2000px)}100%{opacity:1;-webkit-transform:translateY(0)}}@keyframes fadeInUpBig{0%{opacity:0;transform:translateY(2000px)}100%{opacity:1;transform:translateY(0)}}.in .fadeInUpBig{-webkit-animation-name:fadeInUpBig;animation-name:fadeInUpBig}@-webkit-keyframes fadeOut{0%{opacity:1}100%{opacity:0}}@keyframes fadeOut{0%{opacity:1}100%{opacity:0}}.out .fadeOut{-webkit-animation-name:fadeOut;animation-name:fadeOut}@-webkit-keyframes fadeOutDown{0%{opacity:1;-webkit-transform:translateY(0)}100%{opacity:0;-webkit-transform:translateY(20px)}}@keyframes fadeOutDown{0%{opacity:1;transform:translateY(0)}100%{opacity:0;transform:translateY(20px)}}.out .fadeOutDown{-webkit-animation-name:fadeOutDown;animation-name:fadeOutDown}@-webkit-keyframes fadeOutDownBig{0%{opacity:1;-webkit-transform:translateY(0)}100%{opacity:0;-webkit-transform:translateY(2000px)}}@keyframes fadeOutDownBig{0%{opacity:1;transform:translateY(0)}100%{opacity:0;transform:translateY(2000px)}}.out .fadeOutDownBig{-webkit-animation-name:fadeOutDownBig;animation-name:fadeOutDownBig}@-webkit-keyframes fadeOutLeft{0%{opacity:1;-webkit-transform:translateX(0)}100%{opacity:0;-webkit-transform:translateX(-20px)}}@keyframes fadeOutLeft{0%{opacity:1;transform:translateX(0)}100%{opacity:0;transform:translateX(-20px)}}.out .fadeOutLeft{-webkit-animation-name:fadeOutLeft;animation-name:fadeOutLeft}@-webkit-keyframes fadeOutLeftBig{0%{opacity:1;-webkit-transform:translateX(0)}100%{opacity:0;-webkit-transform:translateX(-2000px)}}@keyframes fadeOutLeftBig{0%{opacity:1;transform:translateX(0)}100%{opacity:0;transform:translateX(-2000px)}}.out .fadeOutLeftBig{-webkit-animation-name:fadeOutLeftBig;animation-name:fadeOutLeftBig}@-webkit-keyframes fadeOutRight{0%{opacity:1;-webkit-transform:translateX(0)}100%{opacity:0;-webkit-transform:translateX(20px)}}@keyframes fadeOutRight{0%{opacity:1;transform:translateX(0)}100%{opacity:0;transform:translateX(20px)}}.out .fadeOutRight{-webkit-animation-name:fadeOutRight;animation-name:fadeOutRight}@-webkit-keyframes fadeOutRightBig{0%{opacity:1;-webkit-transform:translateX(0)}100%{opacity:0;-webkit-transform:translateX(2000px)}}@keyframes fadeOutRightBig{0%{opacity:1;transform:translateX(0)}100%{opacity:0;transform:translateX(2000px)}}.out .fadeOutRightBig{-webkit-animation-name:fadeOutRightBig;animation-name:fadeOutRightBig}@-webkit-keyframes fadeOutUp{0%{opacity:1;-webkit-transform:translateY(0)}100%{opacity:0;-webkit-transform:translateY(-20px)}}@keyframes fadeOutUp{0%{opacity:1;transform:translateY(0)}100%{opacity:0;transform:translateY(-20px)}}.out .fadeOutUp{-webkit-animation-name:fadeOutUp;animation-name:fadeOutUp}@-webkit-keyframes fadeOutUpBig{0%{opacity:1;-webkit-transform:translateY(0)}100%{opacity:0;-webkit-transform:translateY(-2000px)}}@keyframes fadeOutUpBig{0%{opacity:1;transform:translateY(0)}100%{opacity:0;transform:translateY(-2000px)}}.out .fadeOutUpBig{-webkit-animation-name:fadeOutUpBig;animation-name:fadeOutUpBig}@-webkit-keyframes flipInX{0%{-webkit-transform:perspective(400px) rotateX(90deg);opacity:0}40%{-webkit-transform:perspective(400px) rotateX(-10deg)}70%{-webkit-transform:perspective(400px) rotateX(10deg)}100%{-webkit-transform:perspective(400px) rotateX(0deg);opacity:1}}@keyframes flipInX{0%{transform:perspective(400px) rotateX(90deg);opacity:0}40%{transform:perspective(400px) rotateX(-10deg)}70%{transform:perspective(400px) rotateX(10deg)}100%{transform:perspective(400px) rotateX(0deg);opacity:1}}.in .flipInX{-webkit-backface-visibility:visible!important;backface-visibility:visible!important;-webkit-animation-name:flipInX;animation-name:flipInX}@-webkit-keyframes flipInY{0%{-webkit-transform:perspective(400px) rotateY(90deg);opacity:0}40%{-webkit-transform:perspective(400px) rotateY(-10deg)}70%{-webkit-transform:perspective(400px) rotateY(10deg)}100%{-webkit-transform:perspective(400px) rotateY(0deg);opacity:1}}@keyframes flipInY{0%{transform:perspective(400px) rotateY(90deg);opacity:0}40%{transform:perspective(400px) rotateY(-10deg)}70%{transform:perspective(400px) rotateY(10deg)}100%{transform:perspective(400px) rotateY(0deg);opacity:1}}.in .flipInY{-webkit-backface-visibility:visible!important;backface-visibility:visible!important;-webkit-animation-name:flipInY;animation-name:flipInY}@-webkit-keyframes flipOutX{0%{-webkit-transform:perspective(400px) rotateX(0deg);opacity:1}100%{-webkit-transform:perspective(400px) rotateX(90deg);opacity:0}}@keyframes flipOutX{0%{transform:perspective(400px) rotateX(0deg);opacity:1}100%{transform:perspective(400px) rotateX(90deg);opacity:0}}.out .flipOutX{-webkit-animation-name:flipOutX;animation-name:flipOutX;-webkit-backface-visibility:visible!important;backface-visibility:visible!important}@-webkit-keyframes flipOutY{0%{-webkit-transform:perspective(400px) rotateY(0deg);opacity:1}100%{-webkit-transform:perspective(400px) rotateY(90deg);opacity:0}}@keyframes flipOutY{0%{transform:perspective(400px) rotateY(0deg);opacity:1}100%{transform:perspective(400px) rotateY(90deg);opacity:0}}.out .flipOutY{-webkit-backface-visibility:visible!important;backface-visibility:visible!important;-webkit-animation-name:flipOutY;animation-name:flipOutY}@-webkit-keyframes lightSpeedIn{0%{-webkit-transform:translateX(100%) skewX(-30deg);opacity:0}60%{-webkit-transform:translateX(-20%) skewX(30deg);opacity:1}80%{-webkit-transform:translateX(0%) skewX(-15deg);opacity:1}100%{-webkit-transform:translateX(0%) skewX(0deg);opacity:1}}@keyframes lightSpeedIn{0%{transform:translateX(100%) skewX(-30deg);opacity:0}60%{transform:translateX(-20%) skewX(30deg);opacity:1}80%{transform:translateX(0%) skewX(-15deg);opacity:1}100%{transform:translateX(0%) skewX(0deg);opacity:1}}.in .lightSpeedIn{-webkit-animation-name:lightSpeedIn;animation-name:lightSpeedIn;-webkit-animation-timing-function:ease-out;animation-timing-function:ease-out}@-webkit-keyframes lightSpeedOut{0%{-webkit-transform:translateX(0%) skewX(0deg);opacity:1}100%{-webkit-transform:translateX(100%) skewX(-30deg);opacity:0}}@keyframes lightSpeedOut{0%{transform:translateX(0%) skewX(0deg);opacity:1}100%{transform:translateX(100%) skewX(-30deg);opacity:0}}.out .lightSpeedOut{-webkit-animation-name:lightSpeedOut;animation-name:lightSpeedOut;-webkit-animation-timing-function:ease-in;animation-timing-function:ease-in}@-webkit-keyframes rotateIn{0%{-webkit-transform-origin:center center;-webkit-transform:rotate(-200deg);opacity:0}100%{-webkit-transform-origin:center center;-webkit-transform:rotate(0);opacity:1}}@keyframes rotateIn{0%{transform-origin:center center;transform:rotate(-200deg);opacity:0}100%{transform-origin:center center;transform:rotate(0);opacity:1}}.in .rotateIn{-webkit-animation-name:rotateIn;animation-name:rotateIn}@-webkit-keyframes rotateInDownLeft{0%{-webkit-transform-origin:left bottom;-webkit-transform:rotate(-90deg);opacity:0}100%{-webkit-transform-origin:left bottom;-webkit-transform:rotate(0);opacity:1}}@keyframes rotateInDownLeft{0%{transform-origin:left bottom;transform:rotate(-90deg);opacity:0}100%{transform-origin:left bottom;transform:rotate(0);opacity:1}}.in .rotateInDownLeft{-webkit-animation-name:rotateInDownLeft;animation-name:rotateInDownLeft}@-webkit-keyframes rotateInDownRight{0%{-webkit-transform-origin:right bottom;-webkit-transform:rotate(90deg);opacity:0}100%{-webkit-transform-origin:right bottom;-webkit-transform:rotate(0);opacity:1}}@keyframes rotateInDownRight{0%{transform-origin:right bottom;transform:rotate(90deg);opacity:0}100%{transform-origin:right bottom;transform:rotate(0);opacity:1}}.in .rotateInDownRight{-webkit-animation-name:rotateInDownRight;animation-name:rotateInDownRight}@-webkit-keyframes rotateInUpLeft{0%{-webkit-transform-origin:left bottom;-webkit-transform:rotate(90deg);opacity:0}100%{-webkit-transform-origin:left bottom;-webkit-transform:rotate(0);opacity:1}}@keyframes rotateInUpLeft{0%{transform-origin:left bottom;transform:rotate(90deg);opacity:0}100%{transform-origin:left bottom;transform:rotate(0);opacity:1}}.in .rotateInUpLeft{-webkit-animation-name:rotateInUpLeft;animation-name:rotateInUpLeft}@-webkit-keyframes rotateInUpRight{0%{-webkit-transform-origin:right bottom;-webkit-transform:rotate(-90deg);opacity:0}100%{-webkit-transform-origin:right bottom;-webkit-transform:rotate(0);opacity:1}}@keyframes rotateInUpRight{0%{transform-origin:right bottom;transform:rotate(-90deg);opacity:0}100%{transform-origin:right bottom;transform:rotate(0);opacity:1}}.in .rotateInUpRight{-webkit-animation-name:rotateInUpRight;animation-name:rotateInUpRight}@-webkit-keyframes rotateOut{0%{-webkit-transform-origin:center center;-webkit-transform:rotate(0);opacity:1}100%{-webkit-transform-origin:center center;-webkit-transform:rotate(200deg);opacity:0}}@keyframes rotateOut{0%{transform-origin:center center;transform:rotate(0);opacity:1}100%{transform-origin:center center;transform:rotate(200deg);opacity:0}}.out .rotateOut{-webkit-animation-name:rotateOut;animation-name:rotateOut}@-webkit-keyframes rotateOutDownLeft{0%{-webkit-transform-origin:left bottom;-webkit-transform:rotate(0);opacity:1}100%{-webkit-transform-origin:left bottom;-webkit-transform:rotate(90deg);opacity:0}}@keyframes rotateOutDownLeft{0%{transform-origin:left bottom;transform:rotate(0);opacity:1}100%{transform-origin:left bottom;transform:rotate(90deg);opacity:0}}.out .rotateOutDownLeft{-webkit-animation-name:rotateOutDownLeft;animation-name:rotateOutDownLeft}@-webkit-keyframes rotateOutDownRight{0%{-webkit-transform-origin:right bottom;-webkit-transform:rotate(0);opacity:1}100%{-webkit-transform-origin:right bottom;-webkit-transform:rotate(-90deg);opacity:0}}@keyframes rotateOutDownRight{0%{transform-origin:right bottom;transform:rotate(0);opacity:1}100%{transform-origin:right bottom;transform:rotate(-90deg);opacity:0}}.out .rotateOutDownRight{-webkit-animation-name:rotateOutDownRight;animation-name:rotateOutDownRight}@-webkit-keyframes rotateOutUpLeft{0%{-webkit-transform-origin:left bottom;-webkit-transform:rotate(0);opacity:1}100%{-webkit-transform-origin:left bottom;-webkit-transform:rotate(-90deg);opacity:0}}@keyframes rotateOutUpLeft{0%{transform-origin:left bottom;transform:rotate(0);opacity:1}100%{-transform-origin:left bottom;-transform:rotate(-90deg);opacity:0}}.out .rotateOutUpLeft{-webkit-animation-name:rotateOutUpLeft;animation-name:rotateOutUpLeft}@-webkit-keyframes rotateOutUpRight{0%{-webkit-transform-origin:right bottom;-webkit-transform:rotate(0);opacity:1}100%{-webkit-transform-origin:right bottom;-webkit-transform:rotate(90deg);opacity:0}}@keyframes rotateOutUpRight{0%{transform-origin:right bottom;transform:rotate(0);opacity:1}100%{transform-origin:right bottom;transform:rotate(90deg);opacity:0}}.out .rotateOutUpRight{-webkit-animation-name:rotateOutUpRight;animation-name:rotateOutUpRight}@-webkit-keyframes slideInDown{0%{-webkit-transform:translate3d(0,-100%,0);visibility:visible}100%{-webkit-transform:translate3d(0,0,0)}}@keyframes slideInDown{0%{transform:translate3d(0,-100%,0);visibility:visible}100%{transform:translate3d(0,0,0)}}.in .slideInDown{-webkit-animation-name:slideInDown;animation-name:slideInDown}@-webkit-keyframes slideInLeft{0%{-webkit-transform:translate3d(-100%,0,0);visibility:visible}100%{-webkit-transform:translate3d(0,0,0)}}@keyframes slideInLeft{0%{transform:translate3d(-100%,0,0);visibility:visible}100%{transform:translate3d(0,0,0)}}.in .slideInLeft{-webkit-animation-name:slideInLeft;animation-name:slideInLeft}@-webkit-keyframes slideInRight{0%{-webkit-transform:translate3d(100%,0,0);visibility:visible}100%{-webkit-transform:translate3d(0,0,0)}}@keyframes slideInRight{0%{transform:translate3d(100%,0,0);visibility:visible}100%{transform:translate3d(0,0,0)}}.in .slideInRight{-webkit-animation-name:slideInRight;animation-name:slideInRight}@-webkit-keyframes slideInUp{0%{-webkit-transform:translate3d(0,100%,0);visibility:visible}100%{-webkit-transform:translate3d(0,0,0)}}@keyframes slideInUp{0%{transform:translate3d(0,100%,0);visibility:visible}100%{transform:translate3d(0,0,0)}}.in .slideInUp{-webkit-animation-name:slideInUp;animation-name:slideInUp}@-webkit-keyframes slideOutDown{0%{-webkit-transform:translate3d(0,0,0);visibility:visible}100%{-webkit-transform:translate3d(0,100%,0)}}@keyframes slideOutDown{0%{transform:translate3d(0,0,0);visibility:visible}100%{transform:translate3d(0,100%,0)}}.out .slideOutDown{-webkit-animation-name:slideOutDown;animation-name:slideOutDown}@-webkit-keyframes slideOutLeft{0%{-webkit-transform:translate3d(0,0,0);visibility:visible}100%{-webkit-transform:translate3d(-100%,0,0)}}@keyframes slideOutLeft{0%{transform:translate3d(0,0,0);visibility:visible}100%{transform:translate3d(-100%,0,0)}}.out .slideOutLeft{-webkit-animation-name:slideOutLeft;animation-name:slideOutLeft}@-webkit-keyframes slideOutRight{0%{-webkit-transform:translate3d(0,0,0);visibility:visible}100%{-webkit-transform:translate3d(100%,0,0)}}@keyframes slideOutRight{0%{transform:translate3d(0,0,0);visibility:visible}100%{transform:translate3d(100%,0,0)}}.out .slideOutRight{-webkit-animation-name:slideOutRight;animation-name:slideOutRight}@-webkit-keyframes slideOutUp{0%{-webkit-transform:translate3d(0,0,0);visibility:visible}100%{-webkit-transform:translate3d(0,-100%,0)}}@keyframes slideOutUp{0%{transform:translate3d(0,0,0);visibility:visible}100%{transform:translate3d(0,-100%,0)}}.out .slideOutUp{-webkit-animation-name:slideOutUp;animation-name:slideOutUp}@-webkit-keyframes hinge{0%{-webkit-transform:rotate(0);-webkit-transform-origin:top left;-webkit-animation-timing-function:ease-in-out}20%,60%{-webkit-transform:rotate(80deg);-webkit-transform-origin:top left;-webkit-animation-timing-function:ease-in-out}40%{-webkit-transform:rotate(60deg);-webkit-transform-origin:top left;-webkit-animation-timing-function:ease-in-out}80%{-webkit-transform:rotate(60deg) translateY(0);opacity:1;-webkit-transform-origin:top left;-webkit-animation-timing-function:ease-in-out}100%{-webkit-transform:translateY(700px);opacity:0}}@keyframes hinge{0%{transform:rotate(0);transform-origin:top left;animation-timing-function:ease-in-out}20%,60%{transform:rotate(80deg);transform-origin:top left;animation-timing-function:ease-in-out}40%{transform:rotate(60deg);transform-origin:top left;animation-timing-function:ease-in-out}80%{transform:rotate(60deg) translateY(0);opacity:1;transform-origin:top left;animation-timing-function:ease-in-out}100%{transform:translateY(700px);opacity:0}}.out .hingeOut{-webkit-animation-name:hinge;animation-name:hinge}@-webkit-keyframes rollIn{0%{opacity:0;-webkit-transform:translateX(-100%) rotate(-120deg)}100%{opacity:1;-webkit-transform:translateX(0px) rotate(0deg)}}@keyframes rollIn{0%{opacity:0;transform:translateX(-100%) rotate(-120deg)}100%{opacity:1;transform:translateX(0px) rotate(0deg)}}.in .rollIn{-webkit-animation-name:rollIn;animation-name:rollIn}@-webkit-keyframes rollOut{0%{opacity:1;-webkit-transform:translateX(0px) rotate(0deg)}100%{opacity:0;-webkit-transform:translateX(100%) rotate(120deg)}}@keyframes rollOut{0%{opacity:1;transform:translateX(0px) rotate(0deg)}100%{opacity:0;transform:translateX(100%) rotate(120deg)}}.out .rollOut{-webkit-animation-name:rollOut;animation-name:rollOut}@-webkit-keyframes zoomIn{0%{opacity:0;-webkit-transform:scale3d(0.3,.3,.3)}50%{opacity:1}}@keyframes zoomIn{0%{opacity:0;transform:scale3d(0.3,.3,.3)}50%{opacity:1}}.in .zoomIn{-webkit-animation-name:zoomIn;animation-name:zoomIn}@-webkit-keyframes zoomInDown{0%{opacity:0;-webkit-transform:scale3d(0.1,.1,.1) translate3d(0,-1000px,0);-webkit-animation-timing-function:cubic-bezier(0.55,.055,.675,.19)}60%{opacity:1;-webkit-transform:scale3d(0.475,.475,.475) translate3d(0,60px,0);-webkit-animation-timing-function:cubic-bezier(0.175,.885,.32,1)}}@keyframes zoomInDown{0%{opacity:0;transform:scale3d(0.1,.1,.1) translate3d(0,-1000px,0);animation-timing-function:cubic-bezier(0.55,.055,.675,.19)}60%{opacity:1;transform:scale3d(0.475,.475,.475) translate3d(0,60px,0);animation-timing-function:cubic-bezier(0.175,.885,.32,1)}}.in .zoomInDown{-webkit-animation-name:zoomInDown;animation-name:zoomInDown}@-webkit-keyframes zoomInLeft{0%{opacity:0;-webkit-transform:scale3d(0.1,.1,.1) translate3d(-1000px,0,0);-webkit-animation-timing-function:cubic-bezier(0.55,.055,.675,.19)}60%{opacity:1;-webkit-transform:scale3d(0.475,.475,.475) translate3d(10px,0,0);-webkit-animation-timing-function:cubic-bezier(0.175,.885,.32,1)}}@keyframes zoomInLeft{0%{opacity:0;transform:scale3d(0.1,.1,.1) translate3d(-1000px,0,0);animation-timing-function:cubic-bezier(0.55,.055,.675,.19)}60%{opacity:1;transform:scale3d(0.475,.475,.475) translate3d(10px,0,0);animation-timing-function:cubic-bezier(0.175,.885,.32,1)}}.in .zoomInLeft{-webkit-animation-name:zoomInLeft;animation-name:zoomInLeft}@-webkit-keyframes zoomInRight{0%{opacity:0;-webkit-transform:scale3d(0.1,.1,.1) translate3d(1000px,0,0);-webkit-animation-timing-function:cubic-bezier(0.55,.055,.675,.19)}60%{opacity:1;-webkit-transform:scale3d(0.475,.475,.475) translate3d(-10px,0,0);-webkit-animation-timing-function:cubic-bezier(0.175,.885,.32,1)}}@keyframes zoomInRight{0%{opacity:0;transform:scale3d(0.1,.1,.1) translate3d(1000px,0,0);animation-timing-function:cubic-bezier(0.55,.055,.675,.19)}60%{opacity:1;transform:scale3d(0.475,.475,.475) translate3d(-10px,0,0);animation-timing-function:cubic-bezier(0.175,.885,.32,1)}}.in .zoomInRight{-webkit-animation-name:zoomInRight;animation-name:zoomInRight}@-webkit-keyframes zoomInUp{0%{opacity:0;-webkit-transform:scale3d(0.1,.1,.1) translate3d(0,1000px,0);-webkit-animation-timing-function:cubic-bezier(0.55,.055,.675,.19)}60%{opacity:1;-webkit-transform:scale3d(0.475,.475,.475) translate3d(0,-60px,0);-webkit-animation-timing-function:cubic-bezier(0.175,.885,.32,1)}}@keyframes zoomInUp{0%{opacity:0;transform:scale3d(0.1,.1,.1) translate3d(0,1000px,0);animation-timing-function:cubic-bezier(0.55,.055,.675,.19)}60%{opacity:1;transform:scale3d(0.475,.475,.475) translate3d(0,-60px,0);animation-timing-function:cubic-bezier(0.175,.885,.32,1)}}.in .zoomInUp{-webkit-animation-name:zoomInUp;animation-name:zoomInUp}@-webkit-keyframes zoomOut{0%{opacity:1}50%{opacity:0;-webkit-transform:scale3d(0.3,.3,.3)}100%{opacity:0}}@keyframes zoomOut{0%{opacity:1}50%{opacity:0;transform:scale3d(0.3,.3,.3)}100%{opacity:0}}.out .zoomOut{-webkit-animation-name:zoomOut;animation-name:zoomOut}@-webkit-keyframes zoomOutDown{40%{opacity:1;-webkit-transform:scale3d(0.475,.475,.475) translate3d(0,-60px,0);-webkit-animation-timing-function:cubic-bezier(0.55,.055,.675,.19)}100%{opacity:0;-webkit-transform:scale3d(0.1,.1,.1) translate3d(0,2000px,0);-webkit-transform-origin:center bottom;-webkit-animation-timing-function:cubic-bezier(0.175,.885,.32,1)}}@keyframes zoomOutDown{40%{opacity:1;transform:scale3d(0.475,.475,.475) translate3d(0,-60px,0);animation-timing-function:cubic-bezier(0.55,.055,.675,.19)}100%{opacity:0;transform:scale3d(0.1,.1,.1) translate3d(0,2000px,0);transform-origin:center bottom;animation-timing-function:cubic-bezier(0.175,.885,.32,1)}}.out .zoomOutDown{-webkit-animation-name:zoomOutDown;animation-name:zoomOutDown}@-webkit-keyframes zoomOutLeft{40%{opacity:1;-webkit-transform:scale3d(0.475,.475,.475) translate3d(42px,0,0)}100%{opacity:0;-webkit-transform:scale3d(0.1) translate3d(-2000px,0,0);-webkit-transform-origin:left center}}@keyframes zoomOutLeft{40%{opacity:1;transform:scale3d(0.475,.475,.475) translate3d(42px,0,0)}100%{opacity:0;transform:scale3d(0.1) translate3d(-2000px,0,0);transform-origin:left center}}.out .zoomOutLeft{-webkit-animation-name:zoomOutLeft;animation-name:zoomOutLeft}@-webkit-keyframes zoomOutRight{40%{opacity:1;-webkit-transform:scale3d(0.475,.475,.475) translate3d(-42px,0,0)}100%{opacity:0;-webkit-transform:scale3d(0.1) translate3d(2000px,0,0);-webkit-transform-origin:right center}}@keyframes zoomOutRight{40%{opacity:1;transform:scale3d(0.475,.475,.475) translate3d(-42px,0,0)}100%{opacity:0;transform:scale3d(0.1) translate3d(2000px,0,0);transform-origin:right center}}.out .zoomOutRight{-webkit-animation-name:zoomOutRight;animation-name:zoomOutRight}@-webkit-keyframes zoomOutUp{40%{opacity:1;-webkit-transform:scale3d(0.475,.475,.475) translate3d(0,60px,0);-webkit-animation-timing-function:cubic-bezier(0.55,.055,.675,.19)}100%{opacity:0;-webkit-transform:scale3d(0.1,.1,.1) translate3d(0,-2000px,0);-webkit-transform-origin:center bottom;-webkit-animation-timing-function:cubic-bezier(0.175,.885,.32,1)}}@keyframes zoomOutUp{40%{opacity:1;transform:scale3d(0.475,.475,.475) translate3d(0,60px,0);animation-timing-function:cubic-bezier(0.55,.055,.675,.19)}100%{opacity:0;transform:scale3d(0.1,.1,.1) translate3d(0,-2000px,0);transform-origin:center bottom;animation-timing-function:cubic-bezier(0.175,.885,.32,1)}}.out .zoomOutUp{-webkit-animation-name:zoomOutUp;animation-name:zoomOutUp}.bx-wrapper{position:relative;margin:0 auto 60px;padding:0;*zoom:1;-ms-touch-action:pan-y;touch-action:pan-y}.bx-wrapper img{max-width:100%;display:block}.bxslider{margin:0;padding:0}ul.bxslider{list-style:none}.bx-viewport{-webkit-transform:translatez(0)}.bx-wrapper .bx-controls-auto,.bx-wrapper .bx-pager{position:absolute;bottom:-30px;width:100%}.bx-wrapper .bx-loading{min-height:50px;background:url(images/bx_loader.gif) center center no-repeat #fff;height:100%;width:100%;position:absolute;top:0;left:0;z-index:2000}.bx-wrapper .bx-pager{text-align:center;font-size:.85em;font-family:Arial;font-weight:700;color:#666;padding-top:20px}.bx-wrapper .bx-pager.bx-default-pager a{background:#666;text-indent:-9999px;display:block;width:10px;height:10px;margin:0 5px;outline:0;-moz-border-radius:5px;-webkit-border-radius:5px;border-radius:5px}.bx-wrapper .bx-pager.bx-default-pager a.active,.bx-wrapper .bx-pager.bx-default-pager a:focus,.bx-wrapper .bx-pager.bx-default-pager a:hover{background:#000}.bx-wrapper .bx-controls-auto .bx-controls-auto-item,.bx-wrapper .bx-pager-item{display:inline-block;*zoom:1;*display:inline}.bx-wrapper .bx-pager-item{font-size:0;line-height:0}.bx-wrapper .bx-prev{left:10px;background:url(images/controls.png) no-repeat 0 -32px}.bx-wrapper .bx-prev:focus,.bx-wrapper .bx-prev:hover{background-position:0 0}.bx-wrapper .bx-next{right:10px;background:url(images/controls.png) no-repeat -43px -32px}.bx-wrapper .bx-next:focus,.bx-wrapper .bx-next:hover{background-position:-43px 0}.bx-wrapper .bx-controls-direction a{position:absolute;top:50%;margin-top:-16px;outline:0;width:32px;height:32px;text-indent:-9999px;z-index:9999}.bx-wrapper .bx-controls-direction a.disabled{display:none}.bx-wrapper .bx-controls-auto{text-align:center}.bx-wrapper .bx-controls-auto .bx-start{display:block;text-indent:-9999px;width:10px;height:11px;outline:0;background:url(images/controls.png) -86px -11px no-repeat;margin:0 3px}.bx-wrapper .bx-controls-auto .bx-start.active,.bx-wrapper .bx-controls-auto .bx-start:focus,.bx-wrapper .bx-controls-auto .bx-start:hover{background-position:-86px 0}.bx-wrapper .bx-controls-auto .bx-stop{display:block;text-indent:-9999px;width:9px;height:11px;outline:0;background:url(images/controls.png) -86px -44px no-repeat;margin:0 3px}.bx-wrapper .bx-controls-auto .bx-stop.active,.bx-wrapper .bx-controls-auto .bx-stop:focus,.bx-wrapper .bx-controls-auto .bx-stop:hover{background-position:-86px -33px}.bx-wrapper .bx-controls.bx-has-controls-auto.bx-has-pager .bx-pager{text-align:left;width:80%}.bx-wrapper .bx-controls.bx-has-controls-auto.bx-has-pager .bx-controls-auto{right:0;width:35px}.bx-wrapper .bx-caption{position:absolute;bottom:0;left:0;background:#666;background:rgba(80,80,80,.75);width:100%}.bx-wrapper .bx-caption span{color:#fff;font-family:Arial;display:block;font-size:.85em;padding:10px} ->>>>>>> origin/mb_master diff --git a/dist/jquery.bxslider.min.js b/dist/jquery.bxslider.min.js index ab405937..d6370da6 100644 --- a/dist/jquery.bxslider.min.js +++ b/dist/jquery.bxslider.min.js @@ -6,8 +6,4 @@ * Licensed under MIT (http://opensource.org/licenses/MIT) */ -<<<<<<< HEAD -!function(a){var b={mode:"horizontal",slideSelector:"",infiniteLoop:!0,hideControlOnEnd:!1,speed:500,easing:null,slideMargin:0,startSlide:0,randomStart:!1,captions:!1,ticker:!1,tickerHover:!1,adaptiveHeight:!1,adaptiveHeightSpeed:500,video:!1,useCSS:!0,preloadImages:"visible",responsive:!0,slideZIndex:50,wrapperClass:"bx-wrapper",touchEnabled:!0,swipeThreshold:50,oneToOneTouch:!0,preventDefaultSwipeX:!0,preventDefaultSwipeY:!1,ariaLive:!0,ariaHidden:!0,keyboardEnabled:!1,pager:!0,pagerType:"full",pagerShortSeparator:" / ",pagerSelector:null,buildPager:null,pagerCustom:null,controls:!0,nextText:"Next",prevText:"Prev",nextSelector:null,prevSelector:null,autoControls:!1,startText:"Start",stopText:"Stop",autoControlsCombine:!1,autoControlsSelector:null,pauseBeforeOut:0,pauseAfterIn:0,auto:!1,pause:4e3,autoStart:!0,autoDirection:"next",stopAutoOnClick:!1,autoHover:!1,autoDelay:0,autoSlideForOnePage:!1,minSlides:1,maxSlides:1,moveSlides:0,slideWidth:0,shrinkItems:!1,onSliderLoad:function(){return!0},onSlideBefore:function(){return!0},onSlideAfter:function(){return!0},onSlideNext:function(){return!0},onSlidePrev:function(){return!0},onSliderResize:function(){return!0}};a.fn.bxSlider=function(c){if(0===this.length)return this;if(this.length>1)return this.each(function(){a(this).bxSlider(c)}),this;var d={},e=this,f=a(window).width(),g=a(window).height();if(!a(e).data("bxSlider")){var h=function(){a(e).data("bxSlider")||(d.settings=a.extend({},b,c),d.settings.slideWidth=parseInt(d.settings.slideWidth),d.children=e.children(d.settings.slideSelector),d.children.length1||d.settings.maxSlides>1,d.carousel&&(d.settings.preloadImages="all"),d.minThreshold=d.settings.minSlides*d.settings.slideWidth+(d.settings.minSlides-1)*d.settings.slideMargin,d.maxThreshold=d.settings.maxSlides*d.settings.slideWidth+(d.settings.maxSlides-1)*d.settings.slideMargin,d.working=!1,d.controls={},d.interval=null,d.animProp="vertical"===d.settings.mode?"top":"left",d.usingCSS=d.settings.useCSS&&"fade"!==d.settings.mode&&function(){for(var a=document.createElement("div"),b=["WebkitPerspective","MozPerspective","OPerspective","msPerspective"],c=0;c
    '),d.viewport=e.parent(),d.settings.ariaLive&&!d.settings.ticker&&d.viewport.attr("aria-live","polite"),d.loader=a('
    '),d.viewport.prepend(d.loader),e.css({width:"horizontal"===d.settings.mode?1e3*d.children.length+215+"%":"auto",position:"relative"}),d.usingCSS&&d.settings.easing?e.css("-"+d.cssPrefix+"-transition-timing-function",d.settings.easing):d.settings.easing||(d.settings.easing="swing"),d.viewport.css({width:"100%",overflow:"hidden",position:"relative"}),d.viewport.parent().css({maxWidth:n()}),d.settings.pager||d.settings.controls||d.viewport.parent().css({margin:"0 auto 0px"}),d.children.css({float:"horizontal"===d.settings.mode?"left":"none",listStyle:"none",position:"relative"}),d.children.css("width",o()),"horizontal"===d.settings.mode&&d.settings.slideMargin>0&&d.children.css("marginRight",d.settings.slideMargin),"vertical"===d.settings.mode&&d.settings.slideMargin>0&&d.children.css("marginBottom",d.settings.slideMargin),"fade"===d.settings.mode&&(d.children.css({position:"absolute",zIndex:0,display:"none"}),d.children.eq(d.settings.startSlide).css({zIndex:d.settings.slideZIndex,display:"block"})),d.children.removeClass("in").addClass("out"),d.controls.el=a('
    '),d.settings.captions&&y(),d.active.last=d.settings.startSlide===q()-1,d.settings.video&&e.fitVids(),("all"===d.settings.preloadImages||d.settings.ticker)&&(b=d.children),d.settings.ticker?d.settings.pager=!1:(d.settings.controls&&w(),d.settings.auto&&d.settings.autoControls&&x(),d.settings.pager&&v(),(d.settings.controls||d.settings.autoControls||d.settings.pager)&&d.viewport.after(d.controls.el)),k(b,l)},k=function(b,c){var d=b.find('img:not([src=""]), iframe').length,e=0;return 0===d?void c():void b.find('img:not([src=""]), iframe').each(function(){a(this).one("load error",function(){++e===d&&c()}).each(function(){this.complete&&a(this).load()})})},l=function(){if(d.settings.infiniteLoop&&"fade"!==d.settings.mode&&!d.settings.ticker){var b="vertical"===d.settings.mode?d.settings.minSlides:d.settings.maxSlides,c=d.children.slice(0,b).clone(!0).addClass("bx-clone"),f=d.children.slice(-b).clone(!0).addClass("bx-clone");d.settings.ariaHidden&&(c.attr("aria-hidden",!0),f.attr("aria-hidden",!0)),e.append(c).prepend(f)}d.loader.remove(),s(),"vertical"===d.settings.mode&&(d.settings.adaptiveHeight=!0),d.viewport.height(m()),e.redrawSlider(),d.settings.onSliderLoad.call(e,d.active.index),setTimeout(function(){d.children.eq(d.active.index).removeClass("out").addClass("in")},1500),d.initialized=!0,d.settings.responsive&&a(window).bind("resize",S),d.settings.auto&&d.settings.autoStart&&(q()>1||d.settings.autoSlideForOnePage)&&I(),d.settings.ticker&&J(),d.settings.pager&&E(d.settings.startSlide),d.settings.controls&&H(),d.settings.touchEnabled&&!d.settings.ticker&&N(),d.settings.keyboardEnabled&&!d.settings.ticker&&a(document).keydown(M)},m=function(){var b=0,c=a();if("vertical"===d.settings.mode||d.settings.adaptiveHeight)if(d.carousel){var e=1===d.settings.moveSlides?d.active.index:d.active.index*r();for(c=d.children.eq(e),i=1;i<=d.settings.maxSlides-1;i++)c=e+i>=d.children.length?c.add(d.children.eq(i-1)):c.add(d.children.eq(e+i))}else c=d.children.eq(d.active.index);else c=d.children;return"vertical"===d.settings.mode?(c.each(function(c){b+=a(this).outerHeight()}),d.settings.slideMargin>0&&(b+=d.settings.slideMargin*(d.settings.minSlides-1))):b=Math.max.apply(Math,c.map(function(){return a(this).outerHeight(!1)}).get()),"border-box"===d.viewport.css("box-sizing")?b+=parseFloat(d.viewport.css("padding-top"))+parseFloat(d.viewport.css("padding-bottom"))+parseFloat(d.viewport.css("border-top-width"))+parseFloat(d.viewport.css("border-bottom-width")):"padding-box"===d.viewport.css("box-sizing")&&(b+=parseFloat(d.viewport.css("padding-top"))+parseFloat(d.viewport.css("padding-bottom"))),b},n=function(){var a="100%";return d.settings.slideWidth>0&&(a="horizontal"===d.settings.mode?d.settings.maxSlides*d.settings.slideWidth+(d.settings.maxSlides-1)*d.settings.slideMargin:d.settings.slideWidth),a},o=function(){var a=d.settings.slideWidth,b=d.viewport.width();if(0===d.settings.slideWidth||d.settings.slideWidth>b&&!d.carousel||"vertical"===d.settings.mode)a=b;else if(d.settings.maxSlides>1&&"horizontal"===d.settings.mode){if(b>d.maxThreshold)return a;b0?d.viewport.width()d.maxThreshold?a=d.settings.maxSlides:(b=d.children.first().width()+d.settings.slideMargin,a=Math.floor((d.viewport.width()+d.settings.slideMargin)/b)):"vertical"===d.settings.mode&&(a=d.settings.minSlides),a},q=function(){var a=0,b=0,c=0;if(d.settings.moveSlides>0)if(d.settings.infiniteLoop)a=Math.ceil(d.children.length/r());else for(;b0&&d.settings.moveSlides<=p()?d.settings.moveSlides:p()},s=function(){var a,b,c;d.children.length>d.settings.maxSlides&&d.active.last&&!d.settings.infiniteLoop?"horizontal"===d.settings.mode?(b=d.children.last(),a=b.position(),t(-(a.left-(d.viewport.width()-b.outerWidth())),"reset",0)):"vertical"===d.settings.mode&&(c=d.children.length-d.settings.minSlides,a=d.children.eq(c).position(),t(-a.top,"reset",0)):(a=d.children.eq(d.active.index*r()).position(),d.active.index===q()-1&&(d.active.last=!0),void 0!==a&&("horizontal"===d.settings.mode?t(-a.left,"reset",0):"vertical"===d.settings.mode&&t(-a.top,"reset",0)))},t=function(b,c,f,g){var h,i;d.usingCSS?(i="vertical"===d.settings.mode?"translate3d(0, "+b+"px, 0)":"translate3d("+b+"px, 0, 0)",e.css("-"+d.cssPrefix+"-transition-duration",f/1e3+"s"),"slide"===c?(e.css(d.animProp,i),0!==f?e.bind("transitionend webkitTransitionEnd oTransitionEnd MSTransitionEnd",function(b){a(b.target).is(e)&&(e.unbind("transitionend webkitTransitionEnd oTransitionEnd MSTransitionEnd"),F())}):F()):"reset"===c?e.css(d.animProp,i):"ticker"===c&&(e.css("-"+d.cssPrefix+"-transition-timing-function","linear"),e.css(d.animProp,i),0!==f?e.bind("transitionend webkitTransitionEnd oTransitionEnd MSTransitionEnd",function(b){a(b.target).is(e)&&(e.unbind("transitionend webkitTransitionEnd oTransitionEnd MSTransitionEnd"),t(g.resetValue,"reset",0),K())}):(t(g.resetValue,"reset",0),K()))):(h={},h[d.animProp]=b,"slide"===c?e.animate(h,f,d.settings.easing,function(){F()}):"reset"===c?e.css(d.animProp,b):"ticker"===c&&e.animate(h,f,"linear",function(){t(g.resetValue,"reset",0),K()}))},u=function(){for(var b="",c="",e=q(),f=0;f'+c+"
    ";d.pagerEl.html(b)},v=function(){d.settings.pagerCustom?d.pagerEl=a(d.settings.pagerCustom):(d.pagerEl=a('
    '),d.settings.pagerSelector?a(d.settings.pagerSelector).html(d.pagerEl):d.controls.el.addClass("bx-has-pager").append(d.pagerEl),u()),d.pagerEl.on("click touchend","a",D)},w=function(){d.controls.next=a(''+d.settings.nextText+""),d.controls.prev=a(''+d.settings.prevText+""),d.controls.next.bind("click touchend",z),d.controls.prev.bind("click touchend",A),d.settings.nextSelector&&a(d.settings.nextSelector).append(d.controls.next),d.settings.prevSelector&&a(d.settings.prevSelector).append(d.controls.prev),d.settings.nextSelector||d.settings.prevSelector||(d.controls.directionEl=a('
    '),d.controls.directionEl.append(d.controls.prev).append(d.controls.next),d.controls.el.addClass("bx-has-controls-direction").append(d.controls.directionEl))},x=function(){d.controls.start=a('"),d.controls.stop=a('"),d.controls.autoEl=a('
    '),d.controls.autoEl.on("click",".bx-start",B),d.controls.autoEl.on("click",".bx-stop",C),d.settings.autoControlsCombine?d.controls.autoEl.append(d.controls.start):d.controls.autoEl.append(d.controls.start).append(d.controls.stop),d.settings.autoControlsSelector?a(d.settings.autoControlsSelector).html(d.controls.autoEl):d.controls.el.addClass("bx-has-controls-auto").append(d.controls.autoEl),G(d.settings.autoStart?"stop":"start")},y=function(){d.children.each(function(b){var c=a(this).find("img:first").attr("title");void 0!==c&&(""+c).length&&a(this).append('
    '+c+"
    ")})},z=function(a){a.preventDefault(),d.controls.el.hasClass("disabled")||(d.settings.auto&&d.settings.stopAutoOnClick&&e.stopAuto(),e.goToNextSlide())},A=function(a){a.preventDefault(),d.controls.el.hasClass("disabled")||(d.settings.auto&&d.settings.stopAutoOnClick&&e.stopAuto(),e.goToPrevSlide())},B=function(a){e.startAuto(),a.preventDefault()},C=function(a){e.stopAuto(),a.preventDefault()},D=function(b){var c,f;b.preventDefault(),d.controls.el.hasClass("disabled")||(d.settings.auto&&d.settings.stopAutoOnClick&&e.stopAuto(),c=a(b.currentTarget),void 0!==c.attr("data-slide-index")&&(f=parseInt(c.attr("data-slide-index")),f!==d.active.index&&e.goToSlideDelayed(f)))},E=function(b){var c=d.children.length;return"short"===d.settings.pagerType?(d.settings.maxSlides>1&&(c=Math.ceil(d.children.length/d.settings.maxSlides)),void d.pagerEl.html(b+1+d.settings.pagerShortSeparator+c)):(d.pagerEl.find("a").removeClass("active"),void d.pagerEl.each(function(c,d){a(d).find("a").eq(b).addClass("active")}))},F=function(){if(d.settings.infiniteLoop){var a="";0===d.active.index?a=d.children.eq(0).position():d.active.index===q()-1&&d.carousel?a=d.children.eq((q()-1)*r()).position():d.active.index===d.children.length-1&&(a=d.children.eq(d.children.length-1).position()),a&&("horizontal"===d.settings.mode?t(-a.left,"reset",0):"vertical"===d.settings.mode&&t(-a.top,"reset",0))}d.working=!1,d.settings.onSlideAfter.call(e,d.children.eq(d.active.index),d.oldIndex,d.active.index)},G=function(a){d.settings.autoControlsCombine?d.controls.autoEl.html(d.controls[a]):(d.controls.autoEl.find("a").removeClass("active"),d.controls.autoEl.find("a:not(.bx-"+a+")").addClass("active"))},H=function(){1===q()?(d.controls.prev.addClass("disabled"),d.controls.next.addClass("disabled")):!d.settings.infiniteLoop&&d.settings.hideControlOnEnd&&(0===d.active.index?(d.controls.prev.addClass("disabled"),d.controls.next.removeClass("disabled")):d.active.index===q()-1?(d.controls.next.addClass("disabled"),d.controls.prev.removeClass("disabled")):(d.controls.prev.removeClass("disabled"),d.controls.next.removeClass("disabled")))},I=function(){if(d.settings.autoDelay>0){setTimeout(e.startAuto,d.settings.autoDelay)}else e.startAuto(),a(window).focus(function(){e.startAuto()}).blur(function(){e.stopAuto()});d.settings.autoHover&&e.hover(function(){d.interval&&(e.stopAuto(!0),d.autoPaused=!0)},function(){d.autoPaused&&(e.startAuto(!0),d.autoPaused=null)})},J=function(){var b,c,f,g,h,i,j,k,l=0;"next"===d.settings.autoDirection?e.append(d.children.clone().addClass("bx-clone")):(e.prepend(d.children.clone().addClass("bx-clone")),b=d.children.first().position(),l="horizontal"===d.settings.mode?-b.left:-b.top),t(l,"reset",0),d.settings.pager=!1,d.settings.controls=!1,d.settings.autoControls=!1,d.settings.tickerHover&&(d.usingCSS?(g="horizontal"===d.settings.mode?4:5,d.viewport.hover(function(){c=e.css("-"+d.cssPrefix+"-transform"),f=parseFloat(c.split(",")[g]),t(f,"reset",0)},function(){k=0,d.children.each(function(b){k+="horizontal"===d.settings.mode?a(this).outerWidth(!0):a(this).outerHeight(!0)}),h=d.settings.speed/k,i="horizontal"===d.settings.mode?"left":"top",j=h*(k-Math.abs(parseInt(f))),K(j)})):d.viewport.hover(function(){e.stop()},function(){k=0,d.children.each(function(b){k+="horizontal"===d.settings.mode?a(this).outerWidth(!0):a(this).outerHeight(!0)}),h=d.settings.speed/k,i="horizontal"===d.settings.mode?"left":"top",j=h*(k-Math.abs(parseInt(e.css(i)))),K(j)})),K()},K=function(a){var b,c,f,g=a?a:d.settings.speed,h={left:0,top:0},i={left:0,top:0};"next"===d.settings.autoDirection?h=e.find(".bx-clone").first().position():i=d.children.first().position(),b="horizontal"===d.settings.mode?-h.left:-h.top,c="horizontal"===d.settings.mode?-i.left:-i.top,f={resetValue:c},t(b,"ticker",g,f)},L=function(b){var c=a(window),d={top:c.scrollTop(),left:c.scrollLeft()},e=b.offset();return d.right=d.left+c.width(),d.bottom=d.top+c.height(),e.right=e.left+b.outerWidth(),e.bottom=e.top+b.outerHeight(),!(d.righte.right||d.bottome.bottom)},M=function(a){var b=document.activeElement.tagName.toLowerCase(),c="input|textarea",d=new RegExp(b,["i"]),f=d.exec(c);if(null==f&&L(e)){if(39===a.keyCode)return z(a),!1;if(37===a.keyCode)return A(a),!1}},N=function(){d.touch={start:{x:0,y:0},end:{x:0,y:0}},d.viewport.bind("touchstart MSPointerDown pointerdown",O),d.viewport.on("click",".bxslider a",function(a){d.viewport.hasClass("click-disabled")&&(a.preventDefault(),d.viewport.removeClass("click-disabled"))})},O=function(a){if(d.controls.el.addClass("disabled"),d.working)a.preventDefault(),d.controls.el.removeClass("disabled");else{d.touch.originalPos=e.position();var b=a.originalEvent,c="undefined"!=typeof b.changedTouches?b.changedTouches:[b];d.touch.start.x=c[0].pageX,d.touch.start.y=c[0].pageY,d.viewport.get(0).setPointerCapture&&(d.pointerId=b.pointerId,d.viewport.get(0).setPointerCapture(d.pointerId)),d.viewport.bind("touchmove MSPointerMove pointermove",Q),d.viewport.bind("touchend MSPointerUp pointerup",R),d.viewport.bind("MSPointerCancel pointercancel",P)}},P=function(a){t(d.touch.originalPos.left,"reset",0),d.controls.el.removeClass("disabled"),d.viewport.unbind("MSPointerCancel pointercancel",P),d.viewport.unbind("touchmove MSPointerMove pointermove",Q),d.viewport.unbind("touchend MSPointerUp pointerup",R),d.viewport.get(0).releasePointerCapture&&d.viewport.get(0).releasePointerCapture(d.pointerId)},Q=function(a){var b=a.originalEvent,c="undefined"!=typeof b.changedTouches?b.changedTouches:[b],e=Math.abs(c[0].pageX-d.touch.start.x),f=Math.abs(c[0].pageY-d.touch.start.y),g=0,h=0;3*e>f&&d.settings.preventDefaultSwipeX?a.preventDefault():3*f>e&&d.settings.preventDefaultSwipeY&&a.preventDefault(),"fade"!==d.settings.mode&&d.settings.oneToOneTouch&&("horizontal"===d.settings.mode?(h=c[0].pageX-d.touch.start.x,g=d.touch.originalPos.left+h):(h=c[0].pageY-d.touch.start.y,g=d.touch.originalPos.top+h),t(g,"reset",0))},R=function(a){d.viewport.unbind("touchmove MSPointerMove pointermove",Q),d.controls.el.removeClass("disabled");var b=a.originalEvent,c="undefined"!=typeof b.changedTouches?b.changedTouches:[b],f=0,g=0;d.touch.end.x=c[0].pageX,d.touch.end.y=c[0].pageY,"fade"===d.settings.mode?(g=Math.abs(d.touch.start.x-d.touch.end.x),g>=d.settings.swipeThreshold&&(d.touch.start.x>d.touch.end.x?e.goToNextSlide():e.goToPrevSlide(),e.stopAuto())):("horizontal"===d.settings.mode?(g=d.touch.end.x-d.touch.start.x,f=d.touch.originalPos.left):(g=d.touch.end.y-d.touch.start.y,f=d.touch.originalPos.top),!d.settings.infiniteLoop&&(0===d.active.index&&g>0||d.active.last&&g<0)?t(f,"reset",200):Math.abs(g)>=d.settings.swipeThreshold?(g<0?e.goToNextSlide():e.goToPrevSlide(),e.stopAuto()):t(f,"reset",200)),d.viewport.unbind("touchend MSPointerUp pointerup",R),d.viewport.get(0).releasePointerCapture&&d.viewport.get(0).releasePointerCapture(d.pointerId)},S=function(b){if(d.initialized)if(d.working)window.setTimeout(S,10);else{var c=a(window).width(),h=a(window).height();f===c&&g===h||(f=c,g=h,e.redrawSlider(),d.settings.onSliderResize.call(e,d.active.index))}},T=function(a){var b=p();d.settings.ariaHidden&&!d.settings.ticker&&(d.children.attr("aria-hidden","true"),d.children.slice(a,a+b).attr("aria-hidden","false"))},U=function(a){return a<0?d.settings.infiniteLoop?q()-1:d.active.index:a>=q()?d.settings.infiniteLoop?0:d.active.index:a};return e.goToSlide=function(b,c){var f,g,h,i,j=!0,k=0,l={left:0,top:0},n=null;if(d.oldIndex=d.active.index,d.active.index=U(b),!d.working&&d.active.index!==d.oldIndex){if(d.working=!0,j=d.settings.onSlideBefore.call(e,d.children.eq(d.active.index),d.oldIndex,d.active.index),"undefined"!=typeof j&&!j)return d.active.index=d.oldIndex,void(d.working=!1);"next"===c?d.settings.onSlideNext.call(e,d.children.eq(d.active.index),d.oldIndex,d.active.index)||(j=!1):"prev"===c&&(d.settings.onSlidePrev.call(e,d.children.eq(d.active.index),d.oldIndex,d.active.index)||(j=!1)),d.active.last=d.active.index>=q()-1,(d.settings.pager||d.settings.pagerCustom)&&E(d.active.index),d.settings.controls&&H(),"fade"===d.settings.mode?(d.settings.adaptiveHeight&&d.viewport.height()!==m()&&d.viewport.animate({height:m()},d.settings.adaptiveHeightSpeed),d.children.filter(":visible").fadeOut(d.settings.speed).css({zIndex:0}),d.children.eq(d.active.index).css("zIndex",d.settings.slideZIndex+1).fadeIn(d.settings.speed,function(){a(this).css("zIndex",d.settings.slideZIndex),F()})):(d.settings.adaptiveHeight&&d.viewport.height()!==m()&&d.viewport.animate({height:m()},d.settings.adaptiveHeightSpeed),!d.settings.infiniteLoop&&d.carousel&&d.active.last?"horizontal"===d.settings.mode?(n=d.children.eq(d.children.length-1),l=n.position(),k=d.viewport.width()-n.outerWidth()):(f=d.children.length-d.settings.minSlides,l=d.children.eq(f).position()):d.carousel&&d.active.last&&"prev"===c?(g=1===d.settings.moveSlides?d.settings.maxSlides-r():(q()-1)*r()-(d.children.length-d.settings.maxSlides),n=e.children(".bx-clone").eq(g),l=n.position()):"next"===c&&0===d.active.index?(l=e.find("> .bx-clone").eq(d.settings.maxSlides).position(),d.active.last=!1):b>=0&&(i=b*parseInt(r()),l=d.children.eq(i).position()),"undefined"!=typeof l?(h="horizontal"===d.settings.mode?-(l.left-k):-l.top,t(h,"slide",d.settings.speed)):d.working=!1),d.settings.ariaHidden&&T(d.active.index*r()),setTimeout(function(){d.children.eq(d.active.index).removeClass("out").addClass("in")},200)}},e.goToSlideDelayed=function(a,b){var c=d.children.eq(a),f=parseInt(c.attr("data-pauseBeforeOut"))||d.settings.pauseBeforeOut;d.children.eq(d.active.index).removeClass("in").addClass("out"),f?setTimeout(function(){e.goToSlide(a,b)},f):e.goToSlide(a,b)},e.goToNextSlide=function(){if(d.settings.infiniteLoop||!d.active.last){var a=parseInt(d.active.index)+1;e.goToSlideDelayed(a,"next")}},e.goToPrevSlide=function(){if(d.settings.infiniteLoop||0!==d.active.index){var a=parseInt(d.active.index)-1;e.goToSlideDelayed(a,"prev")}},e.startAuto=function(a){var b=d.children.eq(d.active.index),c=parseInt(b.attr("data-pauseAfterInt"))||d.settings.pauseAfterIn||0;c+=parseInt(b.attr("data-pause"))||d.settings.pause||0,!d.interval&&c&&(d.interval=setTimeout(function(){"next"===d.settings.autoDirection?e.goToNextSlide():e.goToPrevSlide(),d.interval=0,e.startAuto(a)},c),d.settings.autoControls&&a!==!0&&G("stop"))},e.stopAuto=function(a){d.interval&&(clearInterval(d.interval),d.interval=null,d.settings.autoControls&&a!==!0&&G("start"))},e.getCurrentSlide=function(){return d.active.index},e.getCurrentSlideElement=function(){return d.children.eq(d.active.index)},e.getSlideElement=function(a){return d.children.eq(a)},e.getSlideCount=function(){return d.children.length},e.isWorking=function(){return d.working},e.redrawSlider=function(){d.children.add(e.find(".bx-clone")).outerWidth(o()),d.viewport.css("height",m()),d.settings.ticker||s(),d.active.last&&(d.active.index=q()-1),d.active.index>=q()&&(d.active.last=!0),d.settings.pager&&!d.settings.pagerCustom&&(u(),E(d.active.index)),d.settings.ariaHidden&&T(d.active.index*r())},e.destroySlider=function(){d.initialized&&(d.initialized=!1,a(".bx-clone",this).remove(),d.children.each(function(){void 0!==a(this).data("origStyle")?a(this).attr("style",a(this).data("origStyle")):a(this).removeAttr("style")}),void 0!==a(this).data("origStyle")?this.attr("style",a(this).data("origStyle")):a(this).removeAttr("style"),a(this).unwrap().unwrap(),d.controls.el&&d.controls.el.remove(),d.controls.next&&d.controls.next.remove(),d.controls.prev&&d.controls.prev.remove(),d.pagerEl&&d.settings.controls&&!d.settings.pagerCustom&&d.pagerEl.remove(),a(".bx-caption",this).remove(),d.controls.autoEl&&d.controls.autoEl.remove(),clearInterval(d.interval),d.settings.responsive&&a(window).unbind("resize",S),d.settings.keyboardEnabled&&a(document).unbind("keydown",M),a(this).removeData("bxSlider"))},e.reloadSlider=function(b){void 0!==b&&(c=b),e.destroySlider(),h(),a(e).data("bxSlider",this)},h(),a(e).data("bxSlider",this),this}}}(jQuery); -======= !function(a){var b={mode:"horizontal",slideSelector:"",infiniteLoop:!0,hideControlOnEnd:!1,speed:500,easing:null,slideMargin:0,startSlide:0,randomStart:!1,captions:!1,ticker:!1,tickerHover:!1,adaptiveHeight:!1,adaptiveHeightSpeed:500,video:!1,useCSS:!0,preloadImages:"visible",responsive:!0,slideZIndex:50,wrapperClass:"bx-wrapper",touchEnabled:!0,swipeThreshold:50,oneToOneTouch:!0,preventDefaultSwipeX:!0,preventDefaultSwipeY:!1,ariaLive:!0,ariaHidden:!0,keyboardEnabled:!1,pager:!0,pagerType:"full",pagerShortSeparator:" / ",pagerSelector:null,buildPager:null,pagerCustom:null,controls:!0,nextText:"Next",prevText:"Prev",nextSelector:null,prevSelector:null,autoControls:!1,startText:"Start",stopText:"Stop",autoControlsCombine:!1,autoControlsSelector:null,pauseBeforeOut:1e3,pauseAfterIn:3e3,auto:!1,pause:4e3,autoStart:!0,autoDirection:"next",stopAutoOnClick:!1,autoHover:!1,autoDelay:0,autoSlideForOnePage:!1,minSlides:1,maxSlides:1,moveSlides:0,slideWidth:0,shrinkItems:!1,onSliderLoad:function(){return!0},onSlideBefore:function(){return!0},onSlideAfter:function(){return!0},onSlideNext:function(){return!0},onSlidePrev:function(){return!0},onSliderResize:function(){return!0}};a.fn.bxSlider=function(c){if(0===this.length)return this;if(this.length>1)return this.each(function(){a(this).bxSlider(c)}),this;var d={},e=this,f=a(window).width(),g=a(window).height();if(!a(e).data("bxSlider")){var h=function(){a(e).data("bxSlider")||(d.settings=a.extend({},b,c),d.settings.slideWidth=parseInt(d.settings.slideWidth),d.children=e.children(d.settings.slideSelector),d.children.length1||d.settings.maxSlides>1,d.carousel&&(d.settings.preloadImages="all"),d.minThreshold=d.settings.minSlides*d.settings.slideWidth+(d.settings.minSlides-1)*d.settings.slideMargin,d.maxThreshold=d.settings.maxSlides*d.settings.slideWidth+(d.settings.maxSlides-1)*d.settings.slideMargin,d.working=!1,d.controls={},d.interval=null,d.animProp="vertical"===d.settings.mode?"top":"left",d.usingCSS=d.settings.useCSS&&"fade"!==d.settings.mode&&function(){for(var a=document.createElement("div"),b=["WebkitPerspective","MozPerspective","OPerspective","msPerspective"],c=0;c
    '),d.viewport=e.parent(),d.settings.ariaLive&&!d.settings.ticker&&d.viewport.attr("aria-live","polite"),d.loader=a('
    '),d.viewport.prepend(d.loader),e.css({width:"horizontal"===d.settings.mode?1e3*d.children.length+215+"%":"auto",position:"relative"}),d.usingCSS&&d.settings.easing?e.css("-"+d.cssPrefix+"-transition-timing-function",d.settings.easing):d.settings.easing||(d.settings.easing="swing"),d.viewport.css({width:"100%",overflow:"hidden",position:"relative"}),d.viewport.parent().css({maxWidth:n()}),d.settings.pager||d.settings.controls||d.viewport.parent().css({margin:"0 auto 0px"}),d.children.css({float:"horizontal"===d.settings.mode?"left":"none",listStyle:"none",position:"relative"}),d.children.css("width",o()),"horizontal"===d.settings.mode&&d.settings.slideMargin>0&&d.children.css("marginRight",d.settings.slideMargin),"vertical"===d.settings.mode&&d.settings.slideMargin>0&&d.children.css("marginBottom",d.settings.slideMargin),"fade"===d.settings.mode&&(d.children.css({position:"absolute",zIndex:0,display:"none"}),d.children.eq(d.settings.startSlide).css({zIndex:d.settings.slideZIndex,display:"block"})),d.children.removeClass("in").addClass("out"),d.controls.el=a('
    '),d.settings.captions&&y(),d.active.last=d.settings.startSlide===q()-1,d.settings.video&&e.fitVids(),("all"===d.settings.preloadImages||d.settings.ticker)&&(b=d.children),d.settings.ticker?d.settings.pager=!1:(d.settings.controls&&w(),d.settings.auto&&d.settings.autoControls&&x(),d.settings.pager&&v(),(d.settings.controls||d.settings.autoControls||d.settings.pager)&&d.viewport.after(d.controls.el)),k(b,l)},k=function(b,c){var d=b.find('img:not([src=""]), iframe').length,e=0;return 0===d?void c():void b.find('img:not([src=""]), iframe').each(function(){a(this).one("load error",function(){++e===d&&c()}).each(function(){this.complete&&a(this).load()})})},l=function(){if(d.settings.infiniteLoop&&"fade"!==d.settings.mode&&!d.settings.ticker){var b="vertical"===d.settings.mode?d.settings.minSlides:d.settings.maxSlides,c=d.children.slice(0,b).clone(!0).addClass("bx-clone"),f=d.children.slice(-b).clone(!0).addClass("bx-clone");d.settings.ariaHidden&&(c.attr("aria-hidden",!0),f.attr("aria-hidden",!0)),e.append(c).prepend(f)}d.loader.remove(),s(),"vertical"===d.settings.mode&&(d.settings.adaptiveHeight=!0),d.viewport.height(m()),e.redrawSlider(),d.settings.onSliderLoad.call(e,d.active.index),setTimeout(function(){d.children.eq(d.active.index).removeClass("out").addClass("in")},1500),d.initialized=!0,d.settings.responsive&&a(window).bind("resize",S),d.settings.auto&&d.settings.autoStart&&(q()>1||d.settings.autoSlideForOnePage)&&I(),d.settings.ticker&&J(),d.settings.pager&&E(d.settings.startSlide),d.settings.controls&&H(),d.settings.touchEnabled&&!d.settings.ticker&&N(),d.settings.keyboardEnabled&&!d.settings.ticker&&a(document).keydown(M)},m=function(){var b=0,c=a();if("vertical"===d.settings.mode||d.settings.adaptiveHeight)if(d.carousel){var e=1===d.settings.moveSlides?d.active.index:d.active.index*r();for(c=d.children.eq(e),i=1;i<=d.settings.maxSlides-1;i++)c=e+i>=d.children.length?c.add(d.children.eq(i-1)):c.add(d.children.eq(e+i))}else c=d.children.eq(d.active.index);else c=d.children;return"vertical"===d.settings.mode?(c.each(function(c){b+=a(this).outerHeight()}),d.settings.slideMargin>0&&(b+=d.settings.slideMargin*(d.settings.minSlides-1))):b=Math.max.apply(Math,c.map(function(){return a(this).outerHeight(!1)}).get()),"border-box"===d.viewport.css("box-sizing")?b+=parseFloat(d.viewport.css("padding-top"))+parseFloat(d.viewport.css("padding-bottom"))+parseFloat(d.viewport.css("border-top-width"))+parseFloat(d.viewport.css("border-bottom-width")):"padding-box"===d.viewport.css("box-sizing")&&(b+=parseFloat(d.viewport.css("padding-top"))+parseFloat(d.viewport.css("padding-bottom"))),b},n=function(){var a="100%";return d.settings.slideWidth>0&&(a="horizontal"===d.settings.mode?d.settings.maxSlides*d.settings.slideWidth+(d.settings.maxSlides-1)*d.settings.slideMargin:d.settings.slideWidth),a},o=function(){var a=d.settings.slideWidth,b=d.viewport.width();if(0===d.settings.slideWidth||d.settings.slideWidth>b&&!d.carousel||"vertical"===d.settings.mode)a=b;else if(d.settings.maxSlides>1&&"horizontal"===d.settings.mode){if(b>d.maxThreshold)return a;b0?d.viewport.width()d.maxThreshold?a=d.settings.maxSlides:(b=d.children.first().width()+d.settings.slideMargin,a=Math.floor((d.viewport.width()+d.settings.slideMargin)/b)):"vertical"===d.settings.mode&&(a=d.settings.minSlides),a},q=function(){var a=0,b=0,c=0;if(d.settings.moveSlides>0)if(d.settings.infiniteLoop)a=Math.ceil(d.children.length/r());else for(;b0&&d.settings.moveSlides<=p()?d.settings.moveSlides:p()},s=function(){var a,b,c;d.children.length>d.settings.maxSlides&&d.active.last&&!d.settings.infiniteLoop?"horizontal"===d.settings.mode?(b=d.children.last(),a=b.position(),t(-(a.left-(d.viewport.width()-b.outerWidth())),"reset",0)):"vertical"===d.settings.mode&&(c=d.children.length-d.settings.minSlides,a=d.children.eq(c).position(),t(-a.top,"reset",0)):(a=d.children.eq(d.active.index*r()).position(),d.active.index===q()-1&&(d.active.last=!0),void 0!==a&&("horizontal"===d.settings.mode?t(-a.left,"reset",0):"vertical"===d.settings.mode&&t(-a.top,"reset",0)))},t=function(b,c,f,g){var h,i;d.usingCSS?(i="vertical"===d.settings.mode?"translate3d(0, "+b+"px, 0)":"translate3d("+b+"px, 0, 0)",e.css("-"+d.cssPrefix+"-transition-duration",f/1e3+"s"),"slide"===c?(e.css(d.animProp,i),0!==f?e.bind("transitionend webkitTransitionEnd oTransitionEnd MSTransitionEnd",function(b){a(b.target).is(e)&&(e.unbind("transitionend webkitTransitionEnd oTransitionEnd MSTransitionEnd"),F())}):F()):"reset"===c?e.css(d.animProp,i):"ticker"===c&&(e.css("-"+d.cssPrefix+"-transition-timing-function","linear"),e.css(d.animProp,i),0!==f?e.bind("transitionend webkitTransitionEnd oTransitionEnd MSTransitionEnd",function(b){a(b.target).is(e)&&(e.unbind("transitionend webkitTransitionEnd oTransitionEnd MSTransitionEnd"),t(g.resetValue,"reset",0),K())}):(t(g.resetValue,"reset",0),K()))):(h={},h[d.animProp]=b,"slide"===c?e.animate(h,f,d.settings.easing,function(){F()}):"reset"===c?e.css(d.animProp,b):"ticker"===c&&e.animate(h,f,"linear",function(){t(g.resetValue,"reset",0),K()}))},u=function(){for(var b="",c="",e=q(),f=0;f'+c+"
    ";d.pagerEl.html(b)},v=function(){d.settings.pagerCustom?d.pagerEl=a(d.settings.pagerCustom):(d.pagerEl=a('
    '),d.settings.pagerSelector?a(d.settings.pagerSelector).html(d.pagerEl):d.controls.el.addClass("bx-has-pager").append(d.pagerEl),u()),d.pagerEl.on("click touchend","a",D)},w=function(){d.controls.next=a(''+d.settings.nextText+""),d.controls.prev=a(''+d.settings.prevText+""),d.controls.next.bind("click touchend",z),d.controls.prev.bind("click touchend",A),d.settings.nextSelector&&a(d.settings.nextSelector).append(d.controls.next),d.settings.prevSelector&&a(d.settings.prevSelector).append(d.controls.prev),d.settings.nextSelector||d.settings.prevSelector||(d.controls.directionEl=a('
    '),d.controls.directionEl.append(d.controls.prev).append(d.controls.next),d.controls.el.addClass("bx-has-controls-direction").append(d.controls.directionEl))},x=function(){d.controls.start=a('"),d.controls.stop=a('"),d.controls.autoEl=a('
    '),d.controls.autoEl.on("click",".bx-start",B),d.controls.autoEl.on("click",".bx-stop",C),d.settings.autoControlsCombine?d.controls.autoEl.append(d.controls.start):d.controls.autoEl.append(d.controls.start).append(d.controls.stop),d.settings.autoControlsSelector?a(d.settings.autoControlsSelector).html(d.controls.autoEl):d.controls.el.addClass("bx-has-controls-auto").append(d.controls.autoEl),G(d.settings.autoStart?"stop":"start")},y=function(){d.children.each(function(b){var c=a(this).find("img:first").attr("title");void 0!==c&&(""+c).length&&a(this).append('
    '+c+"
    ")})},z=function(a){a.preventDefault(),d.controls.el.hasClass("disabled")||(d.settings.auto&&d.settings.stopAutoOnClick&&e.stopAuto(),e.goToNextSlide())},A=function(a){a.preventDefault(),d.controls.el.hasClass("disabled")||(d.settings.auto&&d.settings.stopAutoOnClick&&e.stopAuto(),e.goToPrevSlide())},B=function(a){e.startAuto(),a.preventDefault()},C=function(a){e.stopAuto(),a.preventDefault()},D=function(b){var c,f;b.preventDefault(),d.controls.el.hasClass("disabled")||(d.settings.auto&&d.settings.stopAutoOnClick&&e.stopAuto(),c=a(b.currentTarget),void 0!==c.attr("data-slide-index")&&(f=parseInt(c.attr("data-slide-index")),f!==d.active.index&&e.goToSlideDelayed(f)))},E=function(b){var c=d.children.length;return"short"===d.settings.pagerType?(d.settings.maxSlides>1&&(c=Math.ceil(d.children.length/d.settings.maxSlides)),void d.pagerEl.html(b+1+d.settings.pagerShortSeparator+c)):(d.pagerEl.find("a").removeClass("active"),void d.pagerEl.each(function(c,d){a(d).find("a").eq(b).addClass("active")}))},F=function(){if(d.settings.infiniteLoop){var a="";0===d.active.index?a=d.children.eq(0).position():d.active.index===q()-1&&d.carousel?a=d.children.eq((q()-1)*r()).position():d.active.index===d.children.length-1&&(a=d.children.eq(d.children.length-1).position()),a&&("horizontal"===d.settings.mode?t(-a.left,"reset",0):"vertical"===d.settings.mode&&t(-a.top,"reset",0))}d.working=!1,d.settings.onSlideAfter.call(e,d.children.eq(d.active.index),d.oldIndex,d.active.index)},G=function(a){d.settings.autoControlsCombine?d.controls.autoEl.html(d.controls[a]):(d.controls.autoEl.find("a").removeClass("active"),d.controls.autoEl.find("a:not(.bx-"+a+")").addClass("active"))},H=function(){1===q()?(d.controls.prev.addClass("disabled"),d.controls.next.addClass("disabled")):!d.settings.infiniteLoop&&d.settings.hideControlOnEnd&&(0===d.active.index?(d.controls.prev.addClass("disabled"),d.controls.next.removeClass("disabled")):d.active.index===q()-1?(d.controls.next.addClass("disabled"),d.controls.prev.removeClass("disabled")):(d.controls.prev.removeClass("disabled"),d.controls.next.removeClass("disabled")))},I=function(){if(d.settings.autoDelay>0){setTimeout(e.startAuto,d.settings.autoDelay)}else e.startAuto(),a(window).focus(function(){e.startAuto()}).blur(function(){e.stopAuto()});d.settings.autoHover&&e.hover(function(){d.interval&&(e.stopAuto(!0),d.autoPaused=!0)},function(){d.autoPaused&&(e.startAuto(!0),d.autoPaused=null)})},J=function(){var b,c,f,g,h,i,j,k,l=0;"next"===d.settings.autoDirection?e.append(d.children.clone().addClass("bx-clone")):(e.prepend(d.children.clone().addClass("bx-clone")),b=d.children.first().position(),l="horizontal"===d.settings.mode?-b.left:-b.top),t(l,"reset",0),d.settings.pager=!1,d.settings.controls=!1,d.settings.autoControls=!1,d.settings.tickerHover&&(d.usingCSS?(g="horizontal"===d.settings.mode?4:5,d.viewport.hover(function(){c=e.css("-"+d.cssPrefix+"-transform"),f=parseFloat(c.split(",")[g]),t(f,"reset",0)},function(){k=0,d.children.each(function(b){k+="horizontal"===d.settings.mode?a(this).outerWidth(!0):a(this).outerHeight(!0)}),h=d.settings.speed/k,i="horizontal"===d.settings.mode?"left":"top",j=h*(k-Math.abs(parseInt(f))),K(j)})):d.viewport.hover(function(){e.stop()},function(){k=0,d.children.each(function(b){k+="horizontal"===d.settings.mode?a(this).outerWidth(!0):a(this).outerHeight(!0)}),h=d.settings.speed/k,i="horizontal"===d.settings.mode?"left":"top",j=h*(k-Math.abs(parseInt(e.css(i)))),K(j)})),K()},K=function(a){var b,c,f,g=a?a:d.settings.speed,h={left:0,top:0},i={left:0,top:0};"next"===d.settings.autoDirection?h=e.find(".bx-clone").first().position():i=d.children.first().position(),b="horizontal"===d.settings.mode?-h.left:-h.top,c="horizontal"===d.settings.mode?-i.left:-i.top,f={resetValue:c},t(b,"ticker",g,f)},L=function(b){var c=a(window),d={top:c.scrollTop(),left:c.scrollLeft()},e=b.offset();return d.right=d.left+c.width(),d.bottom=d.top+c.height(),e.right=e.left+b.outerWidth(),e.bottom=e.top+b.outerHeight(),!(d.righte.right||d.bottome.bottom)},M=function(a){var b=document.activeElement.tagName.toLowerCase(),c="input|textarea",d=new RegExp(b,["i"]),f=d.exec(c);if(null==f&&L(e)){if(39===a.keyCode)return z(a),!1;if(37===a.keyCode)return A(a),!1}},N=function(){d.touch={start:{x:0,y:0},end:{x:0,y:0}},d.viewport.bind("touchstart MSPointerDown pointerdown",O),d.viewport.on("click",".bxslider a",function(a){d.viewport.hasClass("click-disabled")&&(a.preventDefault(),d.viewport.removeClass("click-disabled"))})},O=function(a){if(d.controls.el.addClass("disabled"),d.working)a.preventDefault(),d.controls.el.removeClass("disabled");else{d.touch.originalPos=e.position();var b=a.originalEvent,c="undefined"!=typeof b.changedTouches?b.changedTouches:[b];d.touch.start.x=c[0].pageX,d.touch.start.y=c[0].pageY,d.viewport.get(0).setPointerCapture&&(d.pointerId=b.pointerId,d.viewport.get(0).setPointerCapture(d.pointerId)),d.viewport.bind("touchmove MSPointerMove pointermove",Q),d.viewport.bind("touchend MSPointerUp pointerup",R),d.viewport.bind("MSPointerCancel pointercancel",P)}},P=function(a){t(d.touch.originalPos.left,"reset",0),d.controls.el.removeClass("disabled"),d.viewport.unbind("MSPointerCancel pointercancel",P),d.viewport.unbind("touchmove MSPointerMove pointermove",Q),d.viewport.unbind("touchend MSPointerUp pointerup",R),d.viewport.get(0).releasePointerCapture&&d.viewport.get(0).releasePointerCapture(d.pointerId)},Q=function(a){var b=a.originalEvent,c="undefined"!=typeof b.changedTouches?b.changedTouches:[b],e=Math.abs(c[0].pageX-d.touch.start.x),f=Math.abs(c[0].pageY-d.touch.start.y),g=0,h=0;3*e>f&&d.settings.preventDefaultSwipeX?a.preventDefault():3*f>e&&d.settings.preventDefaultSwipeY&&a.preventDefault(),"fade"!==d.settings.mode&&d.settings.oneToOneTouch&&("horizontal"===d.settings.mode?(h=c[0].pageX-d.touch.start.x,g=d.touch.originalPos.left+h):(h=c[0].pageY-d.touch.start.y,g=d.touch.originalPos.top+h),t(g,"reset",0))},R=function(a){d.viewport.unbind("touchmove MSPointerMove pointermove",Q),d.controls.el.removeClass("disabled");var b=a.originalEvent,c="undefined"!=typeof b.changedTouches?b.changedTouches:[b],f=0,g=0;d.touch.end.x=c[0].pageX,d.touch.end.y=c[0].pageY,"fade"===d.settings.mode?(g=Math.abs(d.touch.start.x-d.touch.end.x),g>=d.settings.swipeThreshold&&(d.touch.start.x>d.touch.end.x?e.goToNextSlide():e.goToPrevSlide(),e.stopAuto())):("horizontal"===d.settings.mode?(g=d.touch.end.x-d.touch.start.x,f=d.touch.originalPos.left):(g=d.touch.end.y-d.touch.start.y,f=d.touch.originalPos.top),!d.settings.infiniteLoop&&(0===d.active.index&&g>0||d.active.last&&g<0)?t(f,"reset",200):Math.abs(g)>=d.settings.swipeThreshold?(g<0?e.goToNextSlide():e.goToPrevSlide(),e.stopAuto()):t(f,"reset",200)),d.viewport.unbind("touchend MSPointerUp pointerup",R),d.viewport.get(0).releasePointerCapture&&d.viewport.get(0).releasePointerCapture(d.pointerId)},S=function(b){if(d.initialized)if(d.working)window.setTimeout(S,10);else{var c=a(window).width(),h=a(window).height();f===c&&g===h||(f=c,g=h,e.redrawSlider(),d.settings.onSliderResize.call(e,d.active.index))}},T=function(a){var b=p();d.settings.ariaHidden&&!d.settings.ticker&&(d.children.attr("aria-hidden","true"),d.children.slice(a,a+b).attr("aria-hidden","false"))},U=function(a){return a<0?d.settings.infiniteLoop?q()-1:d.active.index:a>=q()?d.settings.infiniteLoop?0:d.active.index:a};return e.goToSlide=function(b,c){var f,g,h,i,j=!0,k=0,l={left:0,top:0},n=null;if(d.oldIndex=d.active.index,d.active.index=U(b),!d.working&&d.active.index!==d.oldIndex){if(d.working=!0,j=d.settings.onSlideBefore.call(e,d.children.eq(d.active.index),d.oldIndex,d.active.index),"undefined"!=typeof j&&!j)return d.active.index=d.oldIndex,void(d.working=!1);"next"===c?d.settings.onSlideNext.call(e,d.children.eq(d.active.index),d.oldIndex,d.active.index)||(j=!1):"prev"===c&&(d.settings.onSlidePrev.call(e,d.children.eq(d.active.index),d.oldIndex,d.active.index)||(j=!1)),d.active.last=d.active.index>=q()-1,(d.settings.pager||d.settings.pagerCustom)&&E(d.active.index),d.settings.controls&&H(),"fade"===d.settings.mode?(d.settings.adaptiveHeight&&d.viewport.height()!==m()&&d.viewport.animate({height:m()},d.settings.adaptiveHeightSpeed),d.children.filter(":visible").fadeOut(d.settings.speed).css({zIndex:0}),d.children.eq(d.active.index).css("zIndex",d.settings.slideZIndex+1).fadeIn(d.settings.speed,function(){a(this).css("zIndex",d.settings.slideZIndex),F()})):(d.settings.adaptiveHeight&&d.viewport.height()!==m()&&d.viewport.animate({height:m()},d.settings.adaptiveHeightSpeed),!d.settings.infiniteLoop&&d.carousel&&d.active.last?"horizontal"===d.settings.mode?(n=d.children.eq(d.children.length-1),l=n.position(),k=d.viewport.width()-n.outerWidth()):(f=d.children.length-d.settings.minSlides,l=d.children.eq(f).position()):d.carousel&&d.active.last&&"prev"===c?(g=1===d.settings.moveSlides?d.settings.maxSlides-r():(q()-1)*r()-(d.children.length-d.settings.maxSlides),n=e.children(".bx-clone").eq(g),l=n.position()):"next"===c&&0===d.active.index?(l=e.find("> .bx-clone").eq(d.settings.maxSlides).position(),d.active.last=!1):b>=0&&(i=b*parseInt(r()),l=d.children.eq(i).position()),"undefined"!=typeof l?(h="horizontal"===d.settings.mode?-(l.left-k):-l.top,t(h,"slide",d.settings.speed)):d.working=!1),d.settings.ariaHidden&&T(d.active.index*r()),setTimeout(function(){d.children.eq(d.active.index).removeClass("out").addClass("in")},200)}},e.goToSlideDelayed=function(a,b){var c=d.children.eq(a),f=parseInt(c.attr("data-pauseBeforeOut"))||d.settings.pauseBeforeOut;d.children.eq(d.active.index).removeClass("in").addClass("out"),f?setTimeout(function(){e.goToSlide(a,b)},f):e.goToSlide(a,b)},e.goToNextSlide=function(){if(d.settings.infiniteLoop||!d.active.last){var a=parseInt(d.active.index)+1;e.goToSlideDelayed(a,"next")}},e.goToPrevSlide=function(){if(d.settings.infiniteLoop||0!==d.active.index){var a=parseInt(d.active.index)-1;e.goToSlideDelayed(a,"prev")}},e.startAuto=function(a){var b=d.children.eq(d.active.index),c=parseInt(b.attr("data-pauseAfterInt"))||d.settings.pauseAfterInt||0;c+=parseInt(b.attr("data-pause"))||d.settings.pause||0,!d.interval&&c&&(d.interval=setTimeout(function(){"next"===d.settings.autoDirection?e.goToNextSlide():e.goToPrevSlide(),d.interval=0,e.startAuto(a)},c),d.settings.autoControls&&a!==!0&&G("stop"))},e.stopAuto=function(a){d.interval&&(clearInterval(d.interval),d.interval=null,d.settings.autoControls&&a!==!0&&G("start"))},e.getCurrentSlide=function(){return d.active.index},e.getCurrentSlideElement=function(){return d.children.eq(d.active.index)},e.getSlideElement=function(a){return d.children.eq(a)},e.getSlideCount=function(){return d.children.length},e.isWorking=function(){return d.working},e.redrawSlider=function(){d.children.add(e.find(".bx-clone")).outerWidth(o()),d.viewport.css("height",m()),d.settings.ticker||s(),d.active.last&&(d.active.index=q()-1),d.active.index>=q()&&(d.active.last=!0),d.settings.pager&&!d.settings.pagerCustom&&(u(),E(d.active.index)),d.settings.ariaHidden&&T(d.active.index*r())},e.destroySlider=function(){d.initialized&&(d.initialized=!1,a(".bx-clone",this).remove(),d.children.each(function(){void 0!==a(this).data("origStyle")?a(this).attr("style",a(this).data("origStyle")):a(this).removeAttr("style")}),void 0!==a(this).data("origStyle")?this.attr("style",a(this).data("origStyle")):a(this).removeAttr("style"),a(this).unwrap().unwrap(),d.controls.el&&d.controls.el.remove(),d.controls.next&&d.controls.next.remove(),d.controls.prev&&d.controls.prev.remove(),d.pagerEl&&d.settings.controls&&!d.settings.pagerCustom&&d.pagerEl.remove(),a(".bx-caption",this).remove(),d.controls.autoEl&&d.controls.autoEl.remove(),clearInterval(d.interval),d.settings.responsive&&a(window).unbind("resize",S),d.settings.keyboardEnabled&&a(document).unbind("keydown",M),a(this).removeData("bxSlider"))},e.reloadSlider=function(b){void 0!==b&&(c=b),e.destroySlider(),h(),a(e).data("bxSlider",this)},h(),a(e).data("bxSlider",this),this}}}(jQuery); ->>>>>>> origin/mb_master diff --git a/npm-debug.log b/npm-debug.log deleted file mode 100644 index 7e4ee8a1..00000000 --- a/npm-debug.log +++ /dev/null @@ -1,110 +0,0 @@ -0 info it worked if it ends with ok -1 verbose cli [ 'c:\\Program Files (x86)\\nodejs\\node.exe', -1 verbose cli 'c:\\Program Files (x86)\\nodejs\\node_modules\\npm\\bin\\npm-cli.js', -1 verbose cli 'install', -1 verbose cli '-g', -1 verbose cli 'generate-assemble' ] -2 info using npm@3.10.8 -3 info using node@v6.9.1 -4 silly loadCurrentTree Starting -5 silly install loadCurrentTree -6 silly install readGlobalPackageData -7 silly fetchPackageMetaData generate-assemble -8 silly fetchNamedPackageData generate-assemble -9 silly mapToRegistry name generate-assemble -10 silly mapToRegistry using default registry -11 silly mapToRegistry registry https://registry.npmjs.org/ -12 silly mapToRegistry data Result { -12 silly mapToRegistry raw: 'generate-assemble', -12 silly mapToRegistry scope: null, -12 silly mapToRegistry escapedName: 'generate-assemble', -12 silly mapToRegistry name: 'generate-assemble', -12 silly mapToRegistry rawSpec: '', -12 silly mapToRegistry spec: 'latest', -12 silly mapToRegistry type: 'tag' } -13 silly mapToRegistry uri https://registry.npmjs.org/generate-assemble -14 verbose request uri https://registry.npmjs.org/generate-assemble -15 verbose request no auth needed -16 info attempt registry request try #1 at 17:10:10 -17 verbose request id 8ca6115e2633200e -18 http request GET https://registry.npmjs.org/generate-assemble -19 http 404 https://registry.npmjs.org/generate-assemble -20 verbose headers { 'content-type': 'application/json', -20 verbose headers 'cache-control': 'max-age=0', -20 verbose headers 'content-length': '2', -20 verbose headers 'accept-ranges': 'bytes', -20 verbose headers date: 'Fri, 20 Jan 2017 16:10:05 GMT', -20 verbose headers via: '1.1 varnish', -20 verbose headers age: '0', -20 verbose headers connection: 'keep-alive', -20 verbose headers 'x-served-by': 'cache-hhn1535-HHN', -20 verbose headers 'x-cache': 'MISS', -20 verbose headers 'x-cache-hits': '0', -20 verbose headers 'x-timer': 'S1484928605.549081,VS0,VE438', -20 verbose headers vary: 'Accept-Encoding' } -21 silly get cb [ 404, -21 silly get { 'content-type': 'application/json', -21 silly get 'cache-control': 'max-age=0', -21 silly get 'content-length': '2', -21 silly get 'accept-ranges': 'bytes', -21 silly get date: 'Fri, 20 Jan 2017 16:10:05 GMT', -21 silly get via: '1.1 varnish', -21 silly get age: '0', -21 silly get connection: 'keep-alive', -21 silly get 'x-served-by': 'cache-hhn1535-HHN', -21 silly get 'x-cache': 'MISS', -21 silly get 'x-cache-hits': '0', -21 silly get 'x-timer': 'S1484928605.549081,VS0,VE438', -21 silly get vary: 'Accept-Encoding' } ] -22 silly fetchPackageMetaData Error: Registry returned 404 for GET on https://registry.npmjs.org/generate-assemble -22 silly fetchPackageMetaData at makeError (c:\Program Files (x86)\nodejs\node_modules\npm\node_modules\npm-registry-client\lib\request.js:302:12) -22 silly fetchPackageMetaData at CachingRegistryClient. (c:\Program Files (x86)\nodejs\node_modules\npm\node_modules\npm-registry-client\lib\request.js:280:14) -22 silly fetchPackageMetaData at Request._callback (c:\Program Files (x86)\nodejs\node_modules\npm\node_modules\npm-registry-client\lib\request.js:210:14) -22 silly fetchPackageMetaData at Request.self.callback (c:\Program Files (x86)\nodejs\node_modules\npm\node_modules\request\request.js:187:22) -22 silly fetchPackageMetaData at emitTwo (events.js:106:13) -22 silly fetchPackageMetaData at Request.emit (events.js:191:7) -22 silly fetchPackageMetaData at Request. (c:\Program Files (x86)\nodejs\node_modules\npm\node_modules\request\request.js:1044:10) -22 silly fetchPackageMetaData at emitOne (events.js:96:13) -22 silly fetchPackageMetaData at Request.emit (events.js:188:7) -22 silly fetchPackageMetaData at IncomingMessage. (c:\Program Files (x86)\nodejs\node_modules\npm\node_modules\request\request.js:965:12) -22 silly fetchPackageMetaData error for generate-assemble { Error: Registry returned 404 for GET on https://registry.npmjs.org/generate-assemble -22 silly fetchPackageMetaData at makeError (c:\Program Files (x86)\nodejs\node_modules\npm\node_modules\npm-registry-client\lib\request.js:302:12) -22 silly fetchPackageMetaData at CachingRegistryClient. (c:\Program Files (x86)\nodejs\node_modules\npm\node_modules\npm-registry-client\lib\request.js:280:14) -22 silly fetchPackageMetaData at Request._callback (c:\Program Files (x86)\nodejs\node_modules\npm\node_modules\npm-registry-client\lib\request.js:210:14) -22 silly fetchPackageMetaData at Request.self.callback (c:\Program Files (x86)\nodejs\node_modules\npm\node_modules\request\request.js:187:22) -22 silly fetchPackageMetaData at emitTwo (events.js:106:13) -22 silly fetchPackageMetaData at Request.emit (events.js:191:7) -22 silly fetchPackageMetaData at Request. (c:\Program Files (x86)\nodejs\node_modules\npm\node_modules\request\request.js:1044:10) -22 silly fetchPackageMetaData at emitOne (events.js:96:13) -22 silly fetchPackageMetaData at Request.emit (events.js:188:7) -22 silly fetchPackageMetaData at IncomingMessage. (c:\Program Files (x86)\nodejs\node_modules\npm\node_modules\request\request.js:965:12) pkgid: 'generate-assemble', statusCode: 404, code: 'E404' } -23 silly rollbackFailedOptional Starting -24 silly rollbackFailedOptional Finishing -25 silly runTopLevelLifecycles Finishing -26 silly install printInstalled -27 verbose stack Error: Registry returned 404 for GET on https://registry.npmjs.org/generate-assemble -27 verbose stack at makeError (c:\Program Files (x86)\nodejs\node_modules\npm\node_modules\npm-registry-client\lib\request.js:302:12) -27 verbose stack at CachingRegistryClient. (c:\Program Files (x86)\nodejs\node_modules\npm\node_modules\npm-registry-client\lib\request.js:280:14) -27 verbose stack at Request._callback (c:\Program Files (x86)\nodejs\node_modules\npm\node_modules\npm-registry-client\lib\request.js:210:14) -27 verbose stack at Request.self.callback (c:\Program Files (x86)\nodejs\node_modules\npm\node_modules\request\request.js:187:22) -27 verbose stack at emitTwo (events.js:106:13) -27 verbose stack at Request.emit (events.js:191:7) -27 verbose stack at Request. (c:\Program Files (x86)\nodejs\node_modules\npm\node_modules\request\request.js:1044:10) -27 verbose stack at emitOne (events.js:96:13) -27 verbose stack at Request.emit (events.js:188:7) -27 verbose stack at IncomingMessage. (c:\Program Files (x86)\nodejs\node_modules\npm\node_modules\request\request.js:965:12) -28 verbose statusCode 404 -29 verbose pkgid generate-assemble -30 verbose cwd c:\Users\BrunoMigliaretti\Documents\GitHub\jQuery plugins\mb_forks\bxslider-4 -31 error Windows_NT 10.0.14393 -32 error argv "c:\\Program Files (x86)\\nodejs\\node.exe" "c:\\Program Files (x86)\\nodejs\\node_modules\\npm\\bin\\npm-cli.js" "install" "-g" "generate-assemble" -33 error node v6.9.1 -34 error npm v3.10.8 -35 error code E404 -36 error 404 Registry returned 404 for GET on https://registry.npmjs.org/generate-assemble -37 error 404 -38 error 404 'generate-assemble' is not in the npm registry. -39 error 404 You should bug the author to publish it (or use the name yourself!) -40 error 404 Note that you can also install from a -41 error 404 tarball, folder, http url, or git url. -42 verbose exit [ 1, true ] diff --git a/src/js/jquery.bxslider.js b/src/js/jquery.bxslider.js index a20a96a8..11390865 100644 --- a/src/js/jquery.bxslider.js +++ b/src/js/jquery.bxslider.js @@ -1,4 +1,10 @@ -<<<<<<< HEAD +/** + * bxSlider v4.2.5 + * Copyright 2013-2017 Steven Wanderski + * Written while drinking Belgian ales and listening to jazz + + * Licensed under MIT (http://opensource.org/licenses/MIT) + */ ;(function($) { var defaults = { // GENERAL @@ -21,26 +27,21 @@ preloadImages: 'visible', responsive: true, slideZIndex: 50, - wrapperClass: 'bx-wrapper', - // TOUCH + wrapperClass: 'bx-wrapper', // TOUCH touchEnabled: true, swipeThreshold: 50, oneToOneTouch: true, preventDefaultSwipeX: true, - preventDefaultSwipeY: false, - // ACCESSIBILITY + preventDefaultSwipeY: false, // ACCESSIBILITY ariaLive: true, - ariaHidden: true, - // KEYBOARD - keyboardEnabled: false, - // PAGER + ariaHidden: true, // KEYBOARD + keyboardEnabled: false, // PAGER pager: true, pagerType: 'full', pagerShortSeparator: ' / ', pagerSelector: null, buildPager: null, - pagerCustom: null, - // CONTROLS + pagerCustom: null, // CONTROLS controls: true, nextText: 'Next', prevText: 'Prev', @@ -51,9 +52,8 @@ stopText: 'Stop', autoControlsCombine: false, autoControlsSelector: null, - pauseBeforeOut: 0, - pauseAfterIn: 0, - // AUTO + pauseBeforeOut: 1000, + pauseAfterIn: 3000, // AUTO auto: false, pause: 4000, autoStart: true, @@ -61,14 +61,12 @@ stopAutoOnClick: false, autoHover: false, autoDelay: 0, - autoSlideForOnePage: false, - // CAROUSEL + autoSlideForOnePage: false, // CAROUSEL minSlides: 1, maxSlides: 1, moveSlides: 0, slideWidth: 0, - shrinkItems: false, - // CALLBACKS + shrinkItems: false, // CALLBACKS onSliderLoad: function() { return true; }, @@ -89,96 +87,13 @@ } }; $.fn.bxSlider = function(options) { -======= -;(function ($) { - var defaults = { - // GENERAL - mode: 'horizontal' - , slideSelector: '' - , infiniteLoop: true - , hideControlOnEnd: false - , speed: 500 - , easing: null - , slideMargin: 0 - , startSlide: 0 - , randomStart: false - , captions: false - , ticker: false - , tickerHover: false - , adaptiveHeight: false - , adaptiveHeightSpeed: 500 - , video: false - , useCSS: true - , preloadImages: 'visible' - , responsive: true - , slideZIndex: 50 - , wrapperClass: 'bx-wrapper', // TOUCH - touchEnabled: true - , swipeThreshold: 50 - , oneToOneTouch: true - , preventDefaultSwipeX: true - , preventDefaultSwipeY: false, // ACCESSIBILITY - ariaLive: true - , ariaHidden: true, // KEYBOARD - keyboardEnabled: false, // PAGER - pager: true - , pagerType: 'full' - , pagerShortSeparator: ' / ' - , pagerSelector: null - , buildPager: null - , pagerCustom: null, // CONTROLS - controls: true - , nextText: 'Next' - , prevText: 'Prev' - , nextSelector: null - , prevSelector: null - , autoControls: false - , startText: 'Start' - , stopText: 'Stop' - , autoControlsCombine: false - , autoControlsSelector: null - , pauseBeforeOut: 1000 - , pauseAfterIn: 3000, // AUTO - auto: false - , pause: 4000 - , autoStart: true - , autoDirection: 'next' - , stopAutoOnClick: false - , autoHover: false - , autoDelay: 0 - , autoSlideForOnePage: false, // CAROUSEL - minSlides: 1 - , maxSlides: 1 - , moveSlides: 0 - , slideWidth: 0 - , shrinkItems: false, // CALLBACKS - onSliderLoad: function () { - return true; - } - , onSlideBefore: function () { - return true; - } - , onSlideAfter: function () { - return true; - } - , onSlideNext: function () { - return true; - } - , onSlidePrev: function () { - return true; - } - , onSliderResize: function () { - return true; - } - }; - $.fn.bxSlider = function (options) { ->>>>>>> origin/mb_master + if (this.length === 0) { return this; } // support multiple elements if (this.length > 1) { - this.each(function () { + this.each(function() { $(this).bxSlider(options); }); return this; @@ -186,13 +101,8 @@ // create a namespace to be used throughout the plugin var slider = {}, // set a reference to our slider element el = this, // get the original window dimens (thanks a lot IE) -<<<<<<< HEAD windowWidth = $(window).width(), windowHeight = $(window).height(); -======= - windowWidth = $(window).width() - , windowHeight = $(window).height(); ->>>>>>> origin/mb_master // Return if slider is already initialized if ($(el).data('bxSlider')) { return; @@ -205,7 +115,7 @@ /** * Initializes namespace settings to be used throughout plugin */ - var init = function () { + var init = function() { // Return if slider is already initialized if ($(el).data('bxSlider')) { return; @@ -250,7 +160,7 @@ // determine which property to use for transitions slider.animProp = slider.settings.mode === 'vertical' ? 'top' : 'left'; // determine if hardware acceleration can be used - slider.usingCSS = slider.settings.useCSS && slider.settings.mode !== 'fade' && (function () { + slider.usingCSS = slider.settings.useCSS && slider.settings.mode !== 'fade' && (function() { // create our test div element var div = document.createElement('div'), // css transition properties props = ['WebkitPerspective', 'MozPerspective', 'OPerspective', 'msPerspective']; @@ -270,7 +180,7 @@ } // save original style data el.data('origStyle', el.attr('style')); - el.children(slider.settings.slideSelector).each(function () { + el.children(slider.settings.slideSelector).each(function() { $(this).data('origStyle', $(this).attr('style')); }); // perform all DOM / CSS modifications @@ -279,7 +189,7 @@ /** * Performs all DOM and CSS modifications */ - var setup = function () { + var setup = function() { var preloadSelector = slider.children.eq(slider.settings.startSlide); // set the default preload selector (visible) // wrap el in a wrapper el.wrap('
    '); @@ -295,26 +205,21 @@ // set el to a massive width, to hold any needed slides // also strip any margin and padding from el el.css({ - width: slider.settings.mode === 'horizontal' ? (slider.children.length * 1000 + 215) + '%' : 'auto' - , position: 'relative' + width: slider.settings.mode === 'horizontal' ? (slider.children.length * 1000 + 215) + '%' : 'auto', + position: 'relative' }); // if using CSS, add the easing property if (slider.usingCSS && slider.settings.easing) { el.css('-' + slider.cssPrefix + '-transition-timing-function', slider.settings.easing); // if not using CSS and no easing value was supplied, use the default JS animation easing (swing) -<<<<<<< HEAD } else if (!slider.settings.easing) { -======= - } - else if (!slider.settings.easing) { ->>>>>>> origin/mb_master slider.settings.easing = 'swing'; } // make modifications to the viewport (.bx-viewport) slider.viewport.css({ - width: '100%' - , overflow: 'hidden' - , position: 'relative' + width: '100%', + overflow: 'hidden', + position: 'relative' }); slider.viewport.parent().css({ maxWidth: getViewportMaxWidth() @@ -327,9 +232,9 @@ } // apply css to all slider children slider.children.css({ - float: slider.settings.mode === 'horizontal' ? 'left' : 'none' - , listStyle: 'none' - , position: 'relative' + float: slider.settings.mode === 'horizontal' ? 'left' : 'none', + listStyle: 'none', + position: 'relative' }); // apply the calculated width after the float is applied to prevent scrollbar interference slider.children.css('width', getSlideWidth()); @@ -343,19 +248,14 @@ // if "fade" mode, add positioning and z-index CSS if (slider.settings.mode === 'fade') { slider.children.css({ - position: 'absolute' - , zIndex: 0 - , display: 'none' + position: 'absolute', + zIndex: 0, + display: 'none' }); // prepare the z-index on the showing element slider.children.eq(slider.settings.startSlide).css({ -<<<<<<< HEAD zIndex: slider.settings.slideZIndex, display: 'block' -======= - zIndex: slider.settings.slideZIndex - , display: 'block' ->>>>>>> origin/mb_master }); } // Set animation class to 'out' @@ -395,44 +295,25 @@ slider.viewport.after(slider.controls.el); } // if ticker mode, do not allow a pager -<<<<<<< HEAD } else { -======= - } - else { ->>>>>>> origin/mb_master slider.settings.pager = false; } loadElements(preloadSelector, start); }; -<<<<<<< HEAD + var loadElements = function(selector, callback) { var total = selector.find('img:not([src=""]), iframe').length, count = 0; -======= - var loadElements = function (selector, callback) { - var total = selector.find('img:not([src=""]), iframe').length - , count = 0; ->>>>>>> origin/mb_master if (total === 0) { callback(); return; } -<<<<<<< HEAD selector.find('img:not([src=""]), iframe').each(function() { $(this).one('load error', function() { if (++count === total) { callback(); } }).each(function() { -======= - selector.find('img:not([src=""]), iframe').each(function () { - $(this).one('load error', function () { - if (++count === total) { - callback(); - } - }).each(function () { ->>>>>>> origin/mb_master if (this.complete) { $(this).load(); } @@ -442,18 +323,12 @@ /** * Start the slider */ - var start = function () { + var start = function() { // if infinite loop, prepare additional slides if (slider.settings.infiniteLoop && slider.settings.mode !== 'fade' && !slider.settings.ticker) { -<<<<<<< HEAD var slice = slider.settings.mode === 'vertical' ? slider.settings.minSlides : slider.settings.maxSlides, sliceAppend = slider.children.slice(0, slice).clone(true).addClass('bx-clone'), slicePrepend = slider.children.slice(-slice).clone(true).addClass('bx-clone'); -======= - var slice = slider.settings.mode === 'vertical' ? slider.settings.minSlides : slider.settings.maxSlides - , sliceAppend = slider.children.slice(0, slice).clone(true).addClass('bx-clone') - , slicePrepend = slider.children.slice(-slice).clone(true).addClass('bx-clone'); ->>>>>>> origin/mb_master if (slider.settings.ariaHidden) { sliceAppend.attr('aria-hidden', true); slicePrepend.attr('aria-hidden', true); @@ -511,25 +386,19 @@ /** * Returns the calculated height of the viewport, used to determine either adaptiveHeight or the maxHeight value */ - var getViewportHeight = function () { + var getViewportHeight = function() { var height = 0; // first determine which children (slides) should be used in our height calculation var children = $(); // if mode is not "vertical" and adaptiveHeight is false, include all children if (slider.settings.mode !== 'vertical' && !slider.settings.adaptiveHeight) { children = slider.children; - } - else { + } else { // if not carousel, return the single active child if (!slider.carousel) { children = slider.children.eq(slider.active.index); // if carousel, return a slice of children -<<<<<<< HEAD } else { -======= - } - else { ->>>>>>> origin/mb_master // get the individual slide index var currentIndex = slider.settings.moveSlides === 1 ? slider.active.index : slider.active.index * getMoveBy(); // add the current slide to the children @@ -539,8 +408,7 @@ // if looped back to the start if (currentIndex + i >= slider.children.length) { children = children.add(slider.children.eq(i - 1)); - } - else { + } else { children = children.add(slider.children.eq(currentIndex + i)); } } @@ -548,7 +416,7 @@ } // if "vertical" mode, calculate the sum of the heights of the children if (slider.settings.mode === 'vertical') { - children.each(function (index) { + children.each(function(index) { height += $(this).outerHeight(); }); // add user-supplied margins @@ -556,25 +424,14 @@ height += slider.settings.slideMargin * (slider.settings.minSlides - 1); } // if not "vertical" mode, calculate the max height of the children -<<<<<<< HEAD } else { height = Math.max.apply(Math, children.map(function() { -======= - } - else { - height = Math.max.apply(Math, children.map(function () { ->>>>>>> origin/mb_master return $(this).outerHeight(false); }).get()); } if (slider.viewport.css('box-sizing') === 'border-box') { height += parseFloat(slider.viewport.css('padding-top')) + parseFloat(slider.viewport.css('padding-bottom')) + parseFloat(slider.viewport.css('border-top-width')) + parseFloat(slider.viewport.css('border-bottom-width')); -<<<<<<< HEAD } else if (slider.viewport.css('box-sizing') === 'padding-box') { -======= - } - else if (slider.viewport.css('box-sizing') === 'padding-box') { ->>>>>>> origin/mb_master height += parseFloat(slider.viewport.css('padding-top')) + parseFloat(slider.viewport.css('padding-bottom')); } return height; @@ -582,13 +439,12 @@ /** * Returns the calculated width to be used for the outer wrapper / viewport */ - var getViewportMaxWidth = function () { + var getViewportMaxWidth = function() { var width = '100%'; if (slider.settings.slideWidth > 0) { if (slider.settings.mode === 'horizontal') { width = (slider.settings.maxSlides * slider.settings.slideWidth) + ((slider.settings.maxSlides - 1) * slider.settings.slideMargin); - } - else { + } else { width = slider.settings.slideWidth; } } @@ -597,26 +453,19 @@ /** * Returns the calculated width to be applied to each slide */ - var getSlideWidth = function () { + var getSlideWidth = function() { var newElWidth = slider.settings.slideWidth, // start with any user-supplied slide width wrapWidth = slider.viewport.width(); // get the current viewport width // if slide width was not supplied, or is larger than the viewport use the viewport width if (slider.settings.slideWidth === 0 || (slider.settings.slideWidth > wrapWidth && !slider.carousel) || slider.settings.mode === 'vertical') { newElWidth = wrapWidth; // if carousel, use the thresholds to determine the width -<<<<<<< HEAD } else if (slider.settings.maxSlides > 1 && slider.settings.mode === 'horizontal') { -======= - } - else if (slider.settings.maxSlides > 1 && slider.settings.mode === 'horizontal') { ->>>>>>> origin/mb_master if (wrapWidth > slider.maxThreshold) { return newElWidth; - } - else if (wrapWidth < slider.minThreshold) { + } else if (wrapWidth < slider.minThreshold) { newElWidth = (wrapWidth - (slider.settings.slideMargin * (slider.settings.minSlides - 1))) / slider.settings.minSlides; - } - else if (slider.settings.shrinkItems) { + } else if (slider.settings.shrinkItems) { newElWidth = Math.floor((wrapWidth + slider.settings.slideMargin) / (Math.ceil((wrapWidth + slider.settings.slideMargin) / (newElWidth + slider.settings.slideMargin))) - slider.settings.slideMargin); } } @@ -625,43 +474,26 @@ /** * Returns the number of slides currently visible in the viewport (includes partially visible slides) */ -<<<<<<< HEAD + var getNumberSlidesShowing = function() { var slidesShowing = 1, childWidth = null; -======= - var getNumberSlidesShowing = function () { - var slidesShowing = 1 - , childWidth = null; ->>>>>>> origin/mb_master if (slider.settings.mode === 'horizontal' && slider.settings.slideWidth > 0) { // if viewport is smaller than minThreshold, return minSlides if (slider.viewport.width() < slider.minThreshold) { slidesShowing = slider.settings.minSlides; // if viewport is larger than maxThreshold, return maxSlides -<<<<<<< HEAD + } else if (slider.viewport.width() > slider.maxThreshold) { slidesShowing = slider.settings.maxSlides; // if viewport is between min / max thresholds, divide viewport width by first child width } else { -======= - } - else if (slider.viewport.width() > slider.maxThreshold) { - slidesShowing = slider.settings.maxSlides; - // if viewport is between min / max thresholds, divide viewport width by first child width - } - else { ->>>>>>> origin/mb_master childWidth = slider.children.first().width() + slider.settings.slideMargin; slidesShowing = Math.floor((slider.viewport.width() + slider.settings.slideMargin) / childWidth); } // if "vertical" mode, slides showing will always be minSlides -<<<<<<< HEAD + } else if (slider.settings.mode === 'vertical') { -======= - } - else if (slider.settings.mode === 'vertical') { ->>>>>>> origin/mb_master slidesShowing = slider.settings.minSlides; } return slidesShowing; @@ -669,23 +501,16 @@ /** * Returns the number of pages (one full viewport of slides is one "page") */ -<<<<<<< HEAD + var getPagerQty = function() { var pagerQty = 0, breakPoint = 0, counter = 0; -======= - var getPagerQty = function () { - var pagerQty = 0 - , breakPoint = 0 - , counter = 0; ->>>>>>> origin/mb_master // if moveSlides is specified by the user if (slider.settings.moveSlides > 0) { if (slider.settings.infiniteLoop) { pagerQty = Math.ceil(slider.children.length / getMoveBy()); - } - else { + } else { // when breakpoint goes above children length, counter is the number of pages while (breakPoint < slider.children.length) { ++pagerQty; @@ -694,12 +519,8 @@ } } // if moveSlides is 0 (auto) divide children length by sides showing, then round up -<<<<<<< HEAD + } else { -======= - } - else { ->>>>>>> origin/mb_master pagerQty = Math.ceil(slider.children.length / getNumberSlidesShowing()); } return pagerQty; @@ -707,7 +528,7 @@ /** * Returns the number of individual slides by which to shift the slider */ - var getMoveBy = function () { + var getMoveBy = function() { // if moveSlides was set by the user and moveSlides is less than number of slides showing if (slider.settings.moveSlides > 0 && slider.settings.moveSlides <= getNumberSlidesShowing()) { return slider.settings.moveSlides; @@ -718,7 +539,7 @@ /** * Sets the slider's (el) left or top position */ - var setSlidePosition = function () { + var setSlidePosition = function() { var position, lastChild, lastShowingIndex; // if last slide, not infinite loop, and number of children is larger than specified maxSlides if (slider.children.length > slider.settings.maxSlides && slider.active.last && !slider.settings.infiniteLoop) { @@ -728,8 +549,7 @@ position = lastChild.position(); // set the left position setPositionProperty(-(position.left - (slider.viewport.width() - lastChild.outerWidth())), 'reset', 0); - } - else if (slider.settings.mode === 'vertical') { + } else if (slider.settings.mode === 'vertical') { // get the last showing index's position lastShowingIndex = slider.children.length - slider.settings.minSlides; position = slider.children.eq(lastShowingIndex).position(); @@ -737,12 +557,8 @@ setPositionProperty(-position.top, 'reset', 0); } // if not last slide -<<<<<<< HEAD + } else { -======= - } - else { ->>>>>>> origin/mb_master // get the position of the first showing slide position = slider.children.eq(slider.active.index * getMoveBy()).position(); // check for last slide @@ -753,12 +569,7 @@ if (position !== undefined) { if (slider.settings.mode === 'horizontal') { setPositionProperty(-position.left, 'reset', 0); -<<<<<<< HEAD } else if (slider.settings.mode === 'vertical') { -======= - } - else if (slider.settings.mode === 'vertical') { ->>>>>>> origin/mb_master setPositionProperty(-position.top, 'reset', 0); } } @@ -780,7 +591,7 @@ * @param params (array) optional * - an optional parameter containing any variables that need to be passed in */ - var setPositionProperty = function (value, type, duration, params) { + var setPositionProperty = function(value, type, duration, params) { var animateObj, propValue; // use CSS transform if (slider.usingCSS) { @@ -793,7 +604,7 @@ el.css(slider.animProp, propValue); if (duration !== 0) { // bind a callback method - executes when CSS transition completes - el.bind('transitionend webkitTransitionEnd oTransitionEnd MSTransitionEnd', function (e) { + el.bind('transitionend webkitTransitionEnd oTransitionEnd MSTransitionEnd', function(e) { //make sure it's the correct one if (!$(e.target).is(el)) { return; @@ -802,20 +613,17 @@ el.unbind('transitionend webkitTransitionEnd oTransitionEnd MSTransitionEnd'); updateAfterSlideTransition(); }); - } - else { //duration = 0 + } else { //duration = 0 updateAfterSlideTransition(); } - } - else if (type === 'reset') { + } else if (type === 'reset') { el.css(slider.animProp, propValue); - } - else if (type === 'ticker') { + } else if (type === 'ticker') { // make the transition use 'linear' el.css('-' + slider.cssPrefix + '-transition-timing-function', 'linear'); el.css(slider.animProp, propValue); if (duration !== 0) { - el.bind('transitionend webkitTransitionEnd oTransitionEnd MSTransitionEnd', function (e) { + el.bind('transitionend webkitTransitionEnd oTransitionEnd MSTransitionEnd', function(e) { //make sure it's the correct one if (!$(e.target).is(el)) { return; @@ -827,31 +635,24 @@ // start the loop again tickerLoop(); }); - } - else { //duration = 0 + } else { //duration = 0 setPositionProperty(params.resetValue, 'reset', 0); tickerLoop(); } } // use JS animate -<<<<<<< HEAD + } else { -======= - } - else { ->>>>>>> origin/mb_master animateObj = {}; animateObj[slider.animProp] = value; if (type === 'slide') { - el.animate(animateObj, duration, slider.settings.easing, function () { + el.animate(animateObj, duration, slider.settings.easing, function() { updateAfterSlideTransition(); }); - } - else if (type === 'reset') { + } else if (type === 'reset') { el.css(slider.animProp, value); - } - else if (type === 'ticker') { - el.animate(animateObj, duration, 'linear', function () { + } else if (type === 'ticker') { + el.animate(animateObj, duration, 'linear', function() { setPositionProperty(params.resetValue, 'reset', 0); // run the recursive loop after animation tickerLoop(); @@ -862,17 +663,11 @@ /** * Populates the pager with proper amount of pages */ -<<<<<<< HEAD + var populatePager = function() { var pagerHtml = '', linkContent = '', pagerQty = getPagerQty(); -======= - var populatePager = function () { - var pagerHtml = '' - , linkContent = '' - , pagerQty = getPagerQty(); ->>>>>>> origin/mb_master // loop through each pager item for (var i = 0; i < pagerQty; i++) { linkContent = ''; @@ -880,8 +675,7 @@ if (slider.settings.buildPager && $.isFunction(slider.settings.buildPager) || slider.settings.pagerCustom) { linkContent = slider.settings.buildPager(i); slider.pagerEl.addClass('bx-custom-pager'); - } - else { + } else { linkContent = i + 1; slider.pagerEl.addClass('bx-default-pager'); } @@ -895,7 +689,7 @@ /** * Appends the pager to the controls element */ - var appendPager = function () { + var appendPager = function() { if (!slider.settings.pagerCustom) { // create the pager DOM element slider.pagerEl = $('
    '); @@ -903,18 +697,13 @@ if (slider.settings.pagerSelector) { $(slider.settings.pagerSelector).html(slider.pagerEl); // if no pager selector was supplied, add it after the wrapper -<<<<<<< HEAD + } else { -======= - } - else { ->>>>>>> origin/mb_master slider.controls.el.addClass('bx-has-pager').append(slider.pagerEl); } // populate the pager populatePager(); - } - else { + } else { slider.pagerEl = $(slider.settings.pagerCustom); } // assign the pager click binding @@ -923,7 +712,7 @@ /** * Appends prev / next controls to the controls element */ - var appendControls = function () { + var appendControls = function() { slider.controls.next = $('' + slider.settings.nextText + ''); slider.controls.prev = $('' + slider.settings.prevText + ''); // bind click actions to the controls @@ -950,7 +739,7 @@ /** * Appends start / stop auto controls to the controls element */ - var appendControlsAuto = function () { + var appendControlsAuto = function() { slider.controls.start = $(''); slider.controls.stop = $(''); // add the controls to the DOM @@ -962,24 +751,16 @@ if (slider.settings.autoControlsCombine) { slider.controls.autoEl.append(slider.controls.start); // if autoControlsCombine is false, insert both controls -<<<<<<< HEAD + } else { -======= - } - else { ->>>>>>> origin/mb_master slider.controls.autoEl.append(slider.controls.start).append(slider.controls.stop); } // if auto controls selector was supplied, populate it with the controls if (slider.settings.autoControlsSelector) { $(slider.settings.autoControlsSelector).html(slider.controls.autoEl); // if auto controls selector was not supplied, add it after the wrapper -<<<<<<< HEAD + } else { -======= - } - else { ->>>>>>> origin/mb_master slider.controls.el.addClass('bx-has-controls-auto').append(slider.controls.autoEl); } // update the auto controls @@ -988,9 +769,9 @@ /** * Appends image captions to the DOM */ - var appendCaptions = function () { + var appendCaptions = function() { // cycle through each child - slider.children.each(function (index) { + slider.children.each(function(index) { // get the image title attribute var title = $(this).find('img:first').attr('title'); // append the caption @@ -1005,7 +786,7 @@ * @param e (event) * - DOM event object */ - var clickNextBind = function (e) { + var clickNextBind = function(e) { e.preventDefault(); if (slider.controls.el.hasClass('disabled')) { return; @@ -1022,7 +803,7 @@ * @param e (event) * - DOM event object */ - var clickPrevBind = function (e) { + var clickPrevBind = function(e) { e.preventDefault(); if (slider.controls.el.hasClass('disabled')) { return; @@ -1039,7 +820,7 @@ * @param e (event) * - DOM event object */ - var clickStartBind = function (e) { + var clickStartBind = function(e) { el.startAuto(); e.preventDefault(); }; @@ -1049,7 +830,7 @@ * @param e (event) * - DOM event object */ - var clickStopBind = function (e) { + var clickStopBind = function(e) { el.stopAuto(); e.preventDefault(); }; @@ -1059,7 +840,7 @@ * @param e (event) * - DOM event object */ - var clickPagerBind = function (e) { + var clickPagerBind = function(e) { var pagerLink, pagerIndex; e.preventDefault(); if (slider.controls.el.hasClass('disabled')) { @@ -1084,7 +865,7 @@ * @param slideIndex (int) * - index of slide to make active */ - var updatePagerActive = function (slideIndex) { + var updatePagerActive = function(slideIndex) { // if "short" pager type var len = slider.children.length; // nb of children if (slider.settings.pagerType === 'short') { @@ -1097,18 +878,15 @@ // remove all pager active classes slider.pagerEl.find('a').removeClass('active'); // apply the active class for all pagers -<<<<<<< HEAD + slider.pagerEl.each(function(i, el) { -======= - slider.pagerEl.each(function (i, el) { ->>>>>>> origin/mb_master $(el).find('a').eq(slideIndex).addClass('active'); }); }; /** * Performs needed actions after a slide transition */ - var updateAfterSlideTransition = function () { + var updateAfterSlideTransition = function() { // if infinite loop is true if (slider.settings.infiniteLoop) { var position = ''; @@ -1117,30 +895,18 @@ // set the new position position = slider.children.eq(0).position(); // carousel, last slide -<<<<<<< HEAD + } else if (slider.active.index === getPagerQty() - 1 && slider.carousel) { position = slider.children.eq((getPagerQty() - 1) * getMoveBy()).position(); // last slide } else if (slider.active.index === slider.children.length - 1) { -======= - } - else if (slider.active.index === getPagerQty() - 1 && slider.carousel) { - position = slider.children.eq((getPagerQty() - 1) * getMoveBy()).position(); - // last slide - } - else if (slider.active.index === slider.children.length - 1) { ->>>>>>> origin/mb_master position = slider.children.eq(slider.children.length - 1).position(); } if (position) { if (slider.settings.mode === 'horizontal') { setPositionProperty(-position.left, 'reset', 0); -<<<<<<< HEAD + } else if (slider.settings.mode === 'vertical') { -======= - } - else if (slider.settings.mode === 'vertical') { ->>>>>>> origin/mb_master setPositionProperty(-position.top, 'reset', 0); } } @@ -1156,17 +922,13 @@ * @param state (string) "start", "stop" * - the new state of the auto show */ - var updateAutoControls = function (state) { + var updateAutoControls = function(state) { // if autoControlsCombine is true, replace the current control with the new state if (slider.settings.autoControlsCombine) { slider.controls.autoEl.html(slider.controls[state]); // if autoControlsCombine is false, apply the "active" class to the appropriate control -<<<<<<< HEAD + } else { -======= - } - else { ->>>>>>> origin/mb_master slider.controls.autoEl.find('a').removeClass('active'); slider.controls.autoEl.find('a:not(.bx-' + state + ')').addClass('active'); } @@ -1174,32 +936,22 @@ /** * Updates the direction controls (checks if either should be hidden) */ - var updateDirectionControls = function () { + var updateDirectionControls = function() { if (getPagerQty() === 1) { slider.controls.prev.addClass('disabled'); slider.controls.next.addClass('disabled'); - } - else if (!slider.settings.infiniteLoop && slider.settings.hideControlOnEnd) { + } else if (!slider.settings.infiniteLoop && slider.settings.hideControlOnEnd) { // if first slide if (slider.active.index === 0) { slider.controls.prev.addClass('disabled'); slider.controls.next.removeClass('disabled'); // if last slide -<<<<<<< HEAD + } else if (slider.active.index === getPagerQty() - 1) { slider.controls.next.addClass('disabled'); slider.controls.prev.removeClass('disabled'); // if any slide in the middle } else { -======= - } - else if (slider.active.index === getPagerQty() - 1) { - slider.controls.next.addClass('disabled'); - slider.controls.prev.removeClass('disabled'); - // if any slide in the middle - } - else { ->>>>>>> origin/mb_master slider.controls.prev.removeClass('disabled'); slider.controls.next.removeClass('disabled'); } @@ -1208,29 +960,25 @@ /** * Initializes the auto process */ - var initAuto = function () { + var initAuto = function() { // if autoDelay was supplied, launch the auto show using a setTimeout() call if (slider.settings.autoDelay > 0) { var timeout = setTimeout(el.startAuto, slider.settings.autoDelay); // if autoDelay was not supplied, start the auto show normally -<<<<<<< HEAD + } else { -======= - } - else { ->>>>>>> origin/mb_master el.startAuto(); //add focus and blur events to ensure its running if timeout gets paused - $(window).focus(function () { + $(window).focus(function() { el.startAuto(); - }).blur(function () { + }).blur(function() { el.stopAuto(); }); } // if autoHover is requested if (slider.settings.autoHover) { // on el hover - el.hover(function () { + el.hover(function() { // if the auto show is currently playing (has an active interval) if (slider.interval) { // stop the auto show and pass true argument which will prevent control update @@ -1238,7 +986,7 @@ // create a new autoPaused value which will be used by the relative "mouseout" event slider.autoPaused = true; } - }, function () { + }, function() { // if the autoPaused value was created be the prior "mouseover" event if (slider.autoPaused) { // start the auto show and pass true argument which will prevent control update @@ -1252,25 +1000,16 @@ /** * Initializes the ticker process */ -<<<<<<< HEAD + var initTicker = function() { var startPosition = 0, position, transform, value, idx, ratio, property, newSpeed, totalDimens; -======= - var initTicker = function () { - var startPosition = 0 - , position, transform, value, idx, ratio, property, newSpeed, totalDimens; ->>>>>>> origin/mb_master // if autoDirection is "next", append a clone of the entire slider if (slider.settings.autoDirection === 'next') { el.append(slider.children.clone().addClass('bx-clone')); // if autoDirection is "prev", prepend a clone of the entire slider, and set the left position -<<<<<<< HEAD + } else { -======= - } - else { ->>>>>>> origin/mb_master el.prepend(slider.children.clone().addClass('bx-clone')); position = slider.children.first().position(); startPosition = slider.settings.mode === 'horizontal' ? -position.left : -position.top; @@ -1284,13 +1023,13 @@ if (slider.settings.tickerHover) { if (slider.usingCSS) { idx = slider.settings.mode === 'horizontal' ? 4 : 5; - slider.viewport.hover(function () { + slider.viewport.hover(function() { transform = el.css('-' + slider.cssPrefix + '-transform'); value = parseFloat(transform.split(',')[idx]); setPositionProperty(value, 'reset', 0); - }, function () { + }, function() { totalDimens = 0; - slider.children.each(function (index) { + slider.children.each(function(index) { totalDimens += slider.settings.mode === 'horizontal' ? $(this).outerWidth(true) : $(this).outerHeight(true); }); // calculate the speed ratio (used to determine the new speed to finish the paused animation) @@ -1301,15 +1040,14 @@ newSpeed = ratio * (totalDimens - (Math.abs(parseInt(value)))); tickerLoop(newSpeed); }); - } - else { + } else { // on el hover - slider.viewport.hover(function () { + slider.viewport.hover(function() { el.stop(); - }, function () { + }, function() { // calculate the total width of children (used to calculate the speed ratio) totalDimens = 0; - slider.children.each(function (index) { + slider.children.each(function(index) { totalDimens += slider.settings.mode === 'horizontal' ? $(this).outerWidth(true) : $(this).outerHeight(true); }); // calculate the speed ratio (used to determine the new speed to finish the paused animation) @@ -1328,7 +1066,7 @@ /** * Runs a continuous loop, news ticker-style */ -<<<<<<< HEAD + var tickerLoop = function(resumeSpeed) { var speed = resumeSpeed ? resumeSpeed : slider.settings.speed, position = { @@ -1340,29 +1078,12 @@ top: 0 }, animateProperty, resetValue, params; -======= - var tickerLoop = function (resumeSpeed) { - var speed = resumeSpeed ? resumeSpeed : slider.settings.speed - , position = { - left: 0 - , top: 0 - } - , reset = { - left: 0 - , top: 0 - } - , animateProperty, resetValue, params; ->>>>>>> origin/mb_master // if "next" animate left position to last child, then reset left to 0 if (slider.settings.autoDirection === 'next') { position = el.find('.bx-clone').first().position(); // if "prev" animate left position to 0, then reset left to first non-clone child -<<<<<<< HEAD + } else { -======= - } - else { ->>>>>>> origin/mb_master reset = slider.children.first().position(); } animateProperty = slider.settings.mode === 'horizontal' ? -position.left : -position.top; @@ -1375,7 +1096,7 @@ /** * Check if el is on screen */ -<<<<<<< HEAD + var isOnScreen = function(el) { var win = $(window), viewport = { @@ -1383,15 +1104,6 @@ left: win.scrollLeft() }, bounds = el.offset(); -======= - var isOnScreen = function (el) { - var win = $(window) - , viewport = { - top: win.scrollTop() - , left: win.scrollLeft() - } - , bounds = el.offset(); ->>>>>>> origin/mb_master viewport.right = viewport.left + win.width(); viewport.bottom = viewport.top + win.height(); bounds.right = bounds.left + el.outerWidth(); @@ -1401,25 +1113,17 @@ /** * Initializes keyboard events */ -<<<<<<< HEAD + var keyPress = function(e) { var activeElementTag = document.activeElement.tagName.toLowerCase(), tagFilters = 'input|textarea', p = new RegExp(activeElementTag, ['i']), result = p.exec(tagFilters); -======= - var keyPress = function (e) { - var activeElementTag = document.activeElement.tagName.toLowerCase() - , tagFilters = 'input|textarea' - , p = new RegExp(activeElementTag, ['i']) - , result = p.exec(tagFilters); ->>>>>>> origin/mb_master if (result == null && isOnScreen(el)) { if (e.keyCode === 39) { clickNextBind(e); return false; - } - else if (e.keyCode === 37) { + } else if (e.keyCode === 37) { clickPrevBind(e); return false; } @@ -1428,31 +1132,23 @@ /** * Initializes touch events */ - var initTouch = function () { + var initTouch = function() { // initialize object to contain all touch values slider.touch = { start: { -<<<<<<< HEAD + x: 0, y: 0 }, end: { x: 0, y: 0 -======= - x: 0 - , y: 0 - } - , end: { - x: 0 - , y: 0 ->>>>>>> origin/mb_master } }; slider.viewport.bind('touchstart MSPointerDown pointerdown', onTouchStart); //for browsers that have implemented pointer events and fire a click after //every pointerup regardless of whether pointerup is on same screen location as pointerdown or not - slider.viewport.on('click', '.bxslider a', function (e) { + slider.viewport.on('click', '.bxslider a', function(e) { if (slider.viewport.hasClass('click-disabled')) { e.preventDefault(); slider.viewport.removeClass('click-disabled'); @@ -1465,23 +1161,18 @@ * @param e (event) * - DOM event object */ - var onTouchStart = function (e) { + var onTouchStart = function(e) { //disable slider controls while user is interacting with slides to avoid slider freeze that happens on touch devices when a slide swipe happens immediately after interacting with slider controls slider.controls.el.addClass('disabled'); if (slider.working) { e.preventDefault(); slider.controls.el.removeClass('disabled'); - } - else { + } else { // record the original position when touch starts slider.touch.originalPos = el.position(); -<<<<<<< HEAD + var orig = e.originalEvent, touchPoints = (typeof orig.changedTouches !== 'undefined') ? orig.changedTouches : [orig]; -======= - var orig = e.originalEvent - , touchPoints = (typeof orig.changedTouches !== 'undefined') ? orig.changedTouches : [orig]; ->>>>>>> origin/mb_master // record the starting touch x, y coordinates slider.touch.start.x = touchPoints[0].pageX; slider.touch.start.y = touchPoints[0].pageY; @@ -1502,7 +1193,7 @@ * @param e (event) * - DOM event object */ - var onPointerCancel = function (e) { + var onPointerCancel = function(e) { /* onPointerCancel handler is needed to deal with situations when a touchend doesn't fire after a touchstart (this happens on windows phones only) */ setPositionProperty(slider.touch.originalPos.left, 'reset', 0); @@ -1521,7 +1212,7 @@ * @param e (event) * - DOM event object */ -<<<<<<< HEAD + var onTouchMove = function(e) { var orig = e.originalEvent, touchPoints = (typeof orig.changedTouches !== 'undefined') ? orig.changedTouches : [orig], // if scrolling on y axis, do not prevent default @@ -1529,25 +1220,11 @@ yMovement = Math.abs(touchPoints[0].pageY - slider.touch.start.y), value = 0, change = 0; -======= - var onTouchMove = function (e) { - var orig = e.originalEvent - , touchPoints = (typeof orig.changedTouches !== 'undefined') ? orig.changedTouches : [orig], // if scrolling on y axis, do not prevent default - xMovement = Math.abs(touchPoints[0].pageX - slider.touch.start.x) - , yMovement = Math.abs(touchPoints[0].pageY - slider.touch.start.y) - , value = 0 - , change = 0; ->>>>>>> origin/mb_master // x axis swipe if ((xMovement * 3) > yMovement && slider.settings.preventDefaultSwipeX) { e.preventDefault(); // y axis swipe -<<<<<<< HEAD } else if ((yMovement * 3) > xMovement && slider.settings.preventDefaultSwipeY) { -======= - } - else if ((yMovement * 3) > xMovement && slider.settings.preventDefaultSwipeY) { ->>>>>>> origin/mb_master e.preventDefault(); } if (slider.settings.mode !== 'fade' && slider.settings.oneToOneTouch) { @@ -1556,12 +1233,8 @@ change = touchPoints[0].pageX - slider.touch.start.x; value = slider.touch.originalPos.left + change; // if vertical, drag along y axis -<<<<<<< HEAD + } else { -======= - } - else { ->>>>>>> origin/mb_master change = touchPoints[0].pageY - slider.touch.start.y; value = slider.touch.originalPos.top + change; } @@ -1574,21 +1247,15 @@ * @param e (event) * - DOM event object */ - var onTouchEnd = function (e) { + var onTouchEnd = function(e) { slider.viewport.unbind('touchmove MSPointerMove pointermove', onTouchMove); //enable slider controls as soon as user stops interacing with slides slider.controls.el.removeClass('disabled'); -<<<<<<< HEAD + var orig = e.originalEvent, touchPoints = (typeof orig.changedTouches !== 'undefined') ? orig.changedTouches : [orig], value = 0, distance = 0; -======= - var orig = e.originalEvent - , touchPoints = (typeof orig.changedTouches !== 'undefined') ? orig.changedTouches : [orig] - , value = 0 - , distance = 0; ->>>>>>> origin/mb_master // record end x, y positions slider.touch.end.x = touchPoints[0].pageX; slider.touch.end.y = touchPoints[0].pageY; @@ -1598,44 +1265,35 @@ if (distance >= slider.settings.swipeThreshold) { if (slider.touch.start.x > slider.touch.end.x) { el.goToNextSlide(); - } - else { + } else { el.goToPrevSlide(); } el.stopAuto(); } // not fade mode -<<<<<<< HEAD + } else { -======= - } - else { ->>>>>>> origin/mb_master // calculate distance and el's animate property if (slider.settings.mode === 'horizontal') { distance = slider.touch.end.x - slider.touch.start.x; value = slider.touch.originalPos.left; - } - else { + } else { distance = slider.touch.end.y - slider.touch.start.y; value = slider.touch.originalPos.top; } // if not infinite loop and first / last slide, do not attempt a slide transition if (!slider.settings.infiniteLoop && ((slider.active.index === 0 && distance > 0) || (slider.active.last && distance < 0))) { setPositionProperty(value, 'reset', 200); - } - else { + } else { // check if distance clears threshold if (Math.abs(distance) >= slider.settings.swipeThreshold) { if (distance < 0) { el.goToNextSlide(); - } - else { + } else { el.goToPrevSlide(); } el.stopAuto(); - } - else { + } else { // el.animate(property, 200); setPositionProperty(value, 'reset', 200); } @@ -1649,7 +1307,7 @@ /** * Window resize event callback */ - var resizeWindow = function (e) { + var resizeWindow = function(e) { // don't do anything if slider isn't initialized. if (!slider.initialized) { return; @@ -1657,16 +1315,11 @@ // Delay if slider working. if (slider.working) { window.setTimeout(resizeWindow, 10); - } - else { + } else { // get the new window dimens (again, thank you IE) -<<<<<<< HEAD + var windowWidthNew = $(window).width(), windowHeightNew = $(window).height(); -======= - var windowWidthNew = $(window).width() - , windowHeightNew = $(window).height(); ->>>>>>> origin/mb_master // make sure that it is a true window resize // *we must check this because our dinosaur friend IE fires a window resize event when certain DOM elements // are resized. Can you just die already?* @@ -1687,7 +1340,7 @@ * @param startVisibleIndex (int) * - the first visible element's index */ - var applyAriaHiddenAttributes = function (startVisibleIndex) { + var applyAriaHiddenAttributes = function(startVisibleIndex) { var numberOfSlidesShowing = getNumberSlidesShowing(); // only apply attributes if the setting is enabled and not in ticker mode if (slider.settings.ariaHidden && !slider.settings.ticker) { @@ -1703,40 +1356,27 @@ * @param slideOndex (int) * - the desired slide index */ - var setSlideIndex = function (slideIndex) { + var setSlideIndex = function(slideIndex) { if (slideIndex < 0) { if (slider.settings.infiniteLoop) { return getPagerQty() - 1; -<<<<<<< HEAD + } else { -======= - } - else { ->>>>>>> origin/mb_master //we don't go to undefined slides return slider.active.index; } // if slideIndex is greater than children length, set active index to 0 (this happens during infinite loop) -<<<<<<< HEAD + } else if (slideIndex >= getPagerQty()) { -======= - } - else if (slideIndex >= getPagerQty()) { ->>>>>>> origin/mb_master if (slider.settings.infiniteLoop) { return 0; - } - else { + } else { //we don't move to undefined pages return slider.active.index; } // set active index to requested slide -<<<<<<< HEAD + } else { -======= - } - else { ->>>>>>> origin/mb_master return slideIndex; } }; @@ -1754,10 +1394,10 @@ * @param direction (string) * - INTERNAL USE ONLY - the direction of travel ("prev" / "next") */ - el.goToSlide = function (slideIndex, direction) { + el.goToSlide = function(slideIndex, direction) { // onSlideBefore, onSlideNext, onSlidePrev callbacks // Allow transition canceling based on returned value -<<<<<<< HEAD + var performTransition = true, moveBy = 0, position = { @@ -1766,16 +1406,6 @@ }, lastChild = null, lastShowingIndex, eq, value, requestEl; -======= - var performTransition = true - , moveBy = 0 - , position = { - left: 0 - , top: 0 - } - , lastChild = null - , lastShowingIndex, eq, value, requestEl; ->>>>>>> origin/mb_master // store the old index slider.oldIndex = slider.active.index; //set new index @@ -1798,8 +1428,7 @@ if (!slider.settings.onSlideNext.call(el, slider.children.eq(slider.active.index), slider.oldIndex, slider.active.index)) { performTransition = false; } - } - else if (direction === 'prev') { + } else if (direction === 'prev') { // Prevent canceling in future functions or lack there-of from negating previous commands to cancel if (!slider.settings.onSlidePrev.call(el, slider.children.eq(slider.active.index), slider.oldIndex, slider.active.index)) { performTransition = false; @@ -1828,17 +1457,13 @@ zIndex: 0 }); // fade in the newly requested slide - slider.children.eq(slider.active.index).css('zIndex', slider.settings.slideZIndex + 1).fadeIn(slider.settings.speed, function () { + slider.children.eq(slider.active.index).css('zIndex', slider.settings.slideZIndex + 1).fadeIn(slider.settings.speed, function() { $(this).css('zIndex', slider.settings.slideZIndex); updateAfterSlideTransition(); }); // slider mode is not "fade" -<<<<<<< HEAD + } else { -======= - } - else { ->>>>>>> origin/mb_master // if adaptiveHeight is true and next height is different from current height, animate to the new height if (slider.settings.adaptiveHeight && slider.viewport.height() !== getViewportHeight()) { slider.viewport.animate({ @@ -1853,36 +1478,26 @@ position = lastChild.position(); // calculate the position of the last slide moveBy = slider.viewport.width() - lastChild.outerWidth(); - } - else { + } else { // get last showing index position lastShowingIndex = slider.children.length - slider.settings.minSlides; position = slider.children.eq(lastShowingIndex).position(); } // horizontal carousel, going previous while on first slide (infiniteLoop mode) - } - else if (slider.carousel && slider.active.last && direction === 'prev') { + } else if (slider.carousel && slider.active.last && direction === 'prev') { // get the last child position eq = slider.settings.moveSlides === 1 ? slider.settings.maxSlides - getMoveBy() : ((getPagerQty() - 1) * getMoveBy()) - (slider.children.length - slider.settings.maxSlides); lastChild = el.children('.bx-clone').eq(eq); position = lastChild.position(); // if infinite loop and "Next" is clicked on the last slide -<<<<<<< HEAD + } else if (direction === 'next' && slider.active.index === 0) { -======= - } - else if (direction === 'next' && slider.active.index === 0) { ->>>>>>> origin/mb_master // get the last clone position position = el.find('> .bx-clone').eq(slider.settings.maxSlides).position(); slider.active.last = false; // normal non-zero requests -<<<<<<< HEAD + } else if (slideIndex >= 0) { -======= - } - else if (slideIndex >= 0) { ->>>>>>> origin/mb_master //parseInt is applied to allow floats for slides/page requestEl = slideIndex * parseInt(getMoveBy()); position = slider.children.eq(requestEl).position(); @@ -1895,22 +1510,21 @@ value = slider.settings.mode === 'horizontal' ? -(position.left - moveBy) : -position.top; // plugin values to be animated setPositionProperty(value, 'slide', slider.settings.speed); - } - else { + } else { slider.working = false; } } if (slider.settings.ariaHidden) { applyAriaHiddenAttributes(slider.active.index * getMoveBy()); } -<<<<<<< HEAD + setTimeout(function() { slider.children.eq(slider.active.index).removeClass('out').addClass('in'); }, 200); }; /** - * Performs slide transition to the specified slide with delay - + to allow perform single elements out animation + * Performs slide transition to the specified slide with dela + + to allow perform single elemnts out animation * * @param slideIndex (int) * - the destination slide's index (zero-based) @@ -1929,39 +1543,11 @@ el.goToSlide(slideIndex, direction); }, customDelay); } -======= - setTimeout(function () { - slider.children.eq(slider.active.index).removeClass('out').addClass('in'); - }, 200); ->>>>>>> origin/mb_master }; /** - * Performs slide transition to the specified slide with dela - + to allow perform single elemnts out animation - * - * @param slideIndex (int) - * - the destination slide's index (zero-based) - * - * @param direction (string) - * - INTERNAL USE ONLY - the direction of travel ("prev" / "next") - **/ - el.goToSlideDelayed = function (slideIndex, direction) { - var theSlide = slider.children.eq(slideIndex); - var customDelay = parseInt(theSlide.attr('data-pauseBeforeOut')) || slider.settings.pauseBeforeOut; - slider.children.eq(slider.active.index).removeClass('in').addClass('out'); - if (!customDelay) { - el.goToSlide(slideIndex, direction); - } - else { - setTimeout(function () { - el.goToSlide(slideIndex, direction); - }, customDelay); - } - }; - /** - * Transitions to the next slide in the show - */ - el.goToNextSlide = function () { + * Transitions to the next slide in the show + */ + el.goToNextSlide = function() { // if infiniteLoop is false and last page is showing, disregard call if (!slider.settings.infiniteLoop && slider.active.last) { return; @@ -1972,7 +1558,7 @@ /** * Transitions to the prev slide in the show */ - el.goToPrevSlide = function () { + el.goToPrevSlide = function() { // if infiniteLoop is false and last page is showing, disregard call if (!slider.settings.infiniteLoop && slider.active.index === 0) { return; @@ -1986,31 +1572,20 @@ * @param preventControlUpdate (boolean) * - if true, auto controls state will not be updated */ - el.startAuto = function (preventControlUpdate) { + el.startAuto = function(preventControlUpdate) { // if an interval already exists, disregard call var theSlide = slider.children.eq(slider.active.index); -<<<<<<< HEAD - // Checking if current slide defines a custom delay - // delay is the sum of pauseAfterIn and pause. This allow to define a global pause (for reading) - // and a customized pause for completition of single elements animations - var customDelay = parseInt(theSlide.attr('data-pauseAfterInt')) || slider.settings.pauseAfterIn || 0; -======= var customDelay = parseInt(theSlide.attr('data-pauseAfterInt')) || slider.settings.pauseAfterInt || 0; ->>>>>>> origin/mb_master customDelay += parseInt(theSlide.attr('data-pause')) || slider.settings.pause || 0; if (slider.interval || (!customDelay)) { return; } // create an interval -<<<<<<< HEAD + slider.interval = setTimeout(function() { -======= - slider.interval = setTimeout(function () { ->>>>>>> origin/mb_master if (slider.settings.autoDirection === 'next') { el.goToNextSlide(); - } - else { + } else { el.goToPrevSlide(); } slider.interval = 0; @@ -2027,7 +1602,7 @@ * @param preventControlUpdate (boolean) * - if true, auto controls state will not be updated */ - el.stopAuto = function (preventControlUpdate) { + el.stopAuto = function(preventControlUpdate) { // if no interval exists, disregard call if (!slider.interval) { return; @@ -2043,13 +1618,13 @@ /** * Returns current slide index (zero-based) */ - el.getCurrentSlide = function () { + el.getCurrentSlide = function() { return slider.active.index; }; /** * Returns current slide element */ - el.getCurrentSlideElement = function () { + el.getCurrentSlideElement = function() { return slider.children.eq(slider.active.index); }; /** @@ -2057,25 +1632,25 @@ * @param index (int) * - The index (zero-based) of the element you want returned. */ - el.getSlideElement = function (index) { + el.getSlideElement = function(index) { return slider.children.eq(index); }; /** * Returns number of slides in show */ - el.getSlideCount = function () { + el.getSlideCount = function() { return slider.children.length; }; /** * Return slider.working variable */ - el.isWorking = function () { + el.isWorking = function() { return slider.working; }; /** * Update all dynamic slider elements */ - el.redrawSlider = function () { + el.redrawSlider = function() { // resize all children in ratio to new screen size slider.children.add(el.find('.bx-clone')).outerWidth(getSlideWidth()); // adjust the height @@ -2105,25 +1680,23 @@ /** * Destroy the current instance of the slider (revert everything back to original state) */ - el.destroySlider = function () { + el.destroySlider = function() { // don't do anything if slider has already been destroyed if (!slider.initialized) { return; } slider.initialized = false; $('.bx-clone', this).remove(); - slider.children.each(function () { + slider.children.each(function() { if ($(this).data('origStyle') !== undefined) { $(this).attr('style', $(this).data('origStyle')); - } - else { + } else { $(this).removeAttr('style'); } }); if ($(this).data('origStyle') !== undefined) { this.attr('style', $(this).data('origStyle')); - } - else { + } else { $(this).removeAttr('style'); } $(this).unwrap().unwrap(); @@ -2156,11 +1729,8 @@ /** * Reload the slider (revert all DOM changes, and re-initialize) */ -<<<<<<< HEAD + el.reloadSlider = function(settings) { -======= - el.reloadSlider = function (settings) { ->>>>>>> origin/mb_master if (settings !== undefined) { options = settings; } From 79df173aecf47bb262f6fc0051ceedaab8222a3a Mon Sep 17 00:00:00 2001 From: magicbruno Date: Mon, 30 Jan 2017 23:01:04 +0100 Subject: [PATCH 6/6] Discontinuing --- readme.md | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/readme.md b/readme.md index f155de3e..2f7259b1 100644 --- a/readme.md +++ b/readme.md @@ -1,3 +1,7 @@ +#This project is discontinued. I'm developing my own slider based on bxSlider: https://github.com/magicbruno/mbSlider + + + #This is a fork of bxSlider 4.2.5 ####This fork adds some new features aimed to create animated presentations.