From 161f36f818a607bf99749052c4efbf2988e79b10 Mon Sep 17 00:00:00 2001 From: Chris Humboldt Date: Tue, 3 Jan 2017 19:53:52 +0200 Subject: [PATCH 1/2] More changes. --- build/js/flicker.js | 61 --------------------------------------------- 1 file changed, 61 deletions(-) diff --git a/build/js/flicker.js b/build/js/flicker.js index 46d21f5..e6aaf0d 100644 --- a/build/js/flicker.js +++ b/build/js/flicker.js @@ -243,67 +243,6 @@ var Rocket = (function (Rocket) { }; Rocket.get = get; } - // Helpers - if (!Rocket.helper) { - var helper = { - makeArray: function (arValue, unique) { - var returnArray = []; - // Catch - if (!arValue) { - return returnArray; - } - // Continue - var unique = (typeof unique === 'boolean') ? unique : false; - if (is.array(arValue)) { - // Already an array - if (unique) { - returnArray = arValue.filter(function (val) { - return returnArray.indexOf(val) < 0; - }); - } else { - returnArray = arValue; - } - } else if (is.element(arValue)) { - // Element - returnArray.push(arValue); - } else if (typeof arValue === 'string') { - // String - if (has.spaces(arValue)) { - if (unique) { - returnArray = arValue.split(' ').filter(function (val) { - return returnArray.indexOf(val) < 0; - }); - } else { - returnArray = arValue.split(' '); - } - } else { - returnArray.push(arValue); - } - } - - return returnArray; - }, - parse: { - json: function (json) { - if (is.json(json)) { - return JSON.parse(json); - } - return json; - } - }, - setDefault: function (setValue, defaultValue) { - if (typeof setValue == 'undefined' && typeof defaultValue == 'undefined') { - return false; - } else if (typeof setValue != 'undefined' && typeof defaultValue == 'undefined') { - return setValue; - } else if (typeof setValue === typeof defaultValue) { - return setValue; - } else { - return defaultValue; - } - } - }; - } // Time if (!Rocket.time) { var time = { From 93f8d66f5f407f381652cf6ed54e961f248bab68 Mon Sep 17 00:00:00 2001 From: Chris Humboldt Date: Mon, 9 Jan 2017 09:08:02 +0200 Subject: [PATCH 2/2] Fixes across the board. --- build/js/flicker.js | 294 ++++++++++++++++++++++++++++---------------- cockpit.json | 10 ++ css/flicker.min.css | 2 +- js/flicker.min.js | 2 +- package.json | 2 +- 5 files changed, 204 insertions(+), 106 deletions(-) create mode 100644 cockpit.json diff --git a/build/js/flicker.js b/build/js/flicker.js index e6aaf0d..b32a1f9 100644 --- a/build/js/flicker.js +++ b/build/js/flicker.js @@ -21,13 +21,66 @@ var Rocket = (function (Rocket) { dots: true, position: 1, } - // Basic checks + + if (!Rocket.array) { + var array = { + clean: function (thisArray) { + // Catch + if (!is.array(thisArray)) { + return false; + }; + // Continue + return thisArray.filter(function (value) { + return (value !== null); + }); + }, + make: function (arValue, isUnique) { + var returnArray = []; + // Catch + if (!arValue) { + return returnArray; + } + // Continue + var unique = helper.setDefault(isUnique, false); + if (is.array(arValue) && arValue.length > 0) { + returnArray = arValue; + } + else if (is.element(arValue)) { + returnArray.push(arValue); + } + else if (is.string(arValue)) { + returnArray = arValue.split(' '); + } + else if (is.object(arValue)) { + arValue = Array.prototype.slice.call(arValue); + if (is.array(arValue) && arValue.length > 0) { + returnArray = arValue; + } + } + + return (unique) ? array.unique(returnArray) : returnArray; + }, + unique: function (thisArray) { + // Catch + if (!is.array(thisArray)) { + return false; + }; + // Continue + return thisArray.filter(function (value, index, self) { + return self.indexOf(value) === index; + }); + } + }; + Rocket.array = array; + } + if (!Rocket.exists) { var exists = function (check) { return (typeof check === 'undefined' || check === null || check === false) ? false : true; }; Rocket.exists = exists; } + if (!Rocket.has) { var has = { spaces: function (check) { @@ -39,63 +92,84 @@ var Rocket = (function (Rocket) { }; Rocket.has = has; } + if (!Rocket.is) { var is = { - array: function (array) { - return (typeof array === 'object' && array instanceof Array) ? true : false; - }, - color: function (color) { - is.colour(color); - }, - colour: function (colour) { - return defaults.regexp.colour.test(colour); - }, - date: function (date, regExp) { - var regExp = (regExp instanceof RegExp) ? regExp : defaults.regexp.date; - return regExp.test(date); - }, - element: function (element) { - return (element.nodeType && element.nodeType === 1) ? true : false; - }, - email: function (email, regExp) { - var regExp = (regExp instanceof RegExp) ? regExp : defaults.regexp.email; - return regExp.test(email); - }, - float: function (int) { - return defaults.regexp.float.test(int); - }, - integer: function (int) { - return defaults.regexp.integer.test(int); - }, - image: function (file, arAllowedTypes) { - var allowedTypes = (is.array(arAllowedTypes)) ? arAllowedTypes : defaults.extensions.images; - return allowedTypes[file.split('.').pop().toLowerCase()]; - }, - json: function (json) { - if (typeof json !== 'object') { - try { - JSON.parse(json); - } catch (e) { - return false; - } - } - return true; - }, - password: function (password, regExp) { - var regExp = (regExp instanceof RegExp) ? regExp : defaults.regexp.password; - return regExp.test(password); - }, - time: function (time, regExp) { - var regExp = (regExp instanceof RegExp) ? regExp : defaults.regexp.time; - return regExp.test(time); - }, - touch: function () { - return 'ontouchstart' in window || 'onmsgesturechange' in window; - }, - url: function (url, regExp) { - var regExp = (regExp instanceof RegExp) ? regExp : defaults.regexp.url; - return regExp.test(url); - } + array: function (check) { + return (typeof check === 'object' && check instanceof Array) ? true : false; + }, + boolean: function (check) { + return (typeof check === 'boolean'); + }, + browser: function () { + /* + A very basic check to detect if using a browser. + Lifted this directly from the Require.js check. + https://github.com/requirejs/requirejs/blob/master/require.js + */ + return !!(typeof window !== 'undefined' && typeof navigator !== 'undefined' && window.document) + }, + color: function (color) { + return is.colour(color); + }, + colour: function (colour) { + return defaults.regexp.colour.test(colour); + }, + date: function (date, thisRegExp) { + var regExp = (thisRegExp instanceof RegExp) ? thisRegExp : defaults.regexp.date; + return regExp.test(date); + }, + element: function (element) { + return (element.nodeType && element.nodeType === 1) ? true : false; + }, + email: function (email, thisRegExp) { + var regExp = (thisRegExp instanceof RegExp) ? thisRegExp : defaults.regexp.email; + return regExp.test(email); + }, + function: function (check) { + return (typeof check === 'function'); + }, + image: function (file, arAllowedTypes) { + var allowedTypes = (is.array(arAllowedTypes)) ? arAllowedTypes : defaults.extensions.images; + return allowedTypes[file.split('.').pop().toLowerCase()]; + }, + integer: function (check) { + return (is.number(check) && (parseFloat(check) === parseInt(check))); + }, + json: function (json) { + if (typeof json !== 'object') { + try { + JSON.parse(json); + } catch (e) { + return false; + } + } + return true; + }, + number: function (check) { + return (typeof check === 'number'); + }, + object: function (check) { + return (typeof check === 'object'); + }, + password: function (password, thisRegExp) { + var regExp = (thisRegExp instanceof RegExp) ? thisRegExp : defaults.regexp.password; + return regExp.test(password); + }, + string: function (str) { + return (typeof str === 'string'); + }, + time: function (time, thisRegExp) { + var regExp = (thisRegExp instanceof RegExp) ? thisRegExp : defaults.regexp.time; + return regExp.test(time); + }, + touch: function () { + return 'ontouchstart' in window || 'onmsgesturechange' in window; + }, + url: function (url, thisRegExp) { + var regExp = (thisRegExp instanceof RegExp) ? thisRegExp : defaults.regexp.url; + return regExp.test(url); + } }; Rocket.is = is; } @@ -132,8 +206,8 @@ var Rocket = (function (Rocket) { return false; } // Create classes array - var arClassesAdd = helper.makeArray(classesAdd, true); - var arClassesRemove = helper.makeArray(classesRemove, true); + var arClassesAdd = array.make(classesAdd, true); + var arClassesRemove = array.make(classesRemove, true); var actionAdd = (arClassesAdd.length > 0) ? true : false; var actionRemove = (arClassesRemove.length > 0) ? true : false; @@ -189,6 +263,34 @@ var Rocket = (function (Rocket) { }; Rocket.class = classMethods; } + // Helper + if (!Rocket.helper) { + var helper = { + parse: { + json: function (json) { + if (Rocket.is.json(json)) { + return JSON.parse(json); + } + return json; + } + }, + setDefault: function (setValue, defaultValue) { + if (typeof setValue == 'undefined' && typeof defaultValue == 'undefined') { + return false; + } + else if (typeof setValue != 'undefined' && typeof defaultValue == 'undefined') { + return setValue; + } + else if (typeof setValue === typeof defaultValue) { + return setValue; + } + else { + return defaultValue; + } + } + }; + Rocket.helper = helper; + } // Development if (!Rocket.log) { var log = function (text) { @@ -244,45 +346,18 @@ var Rocket = (function (Rocket) { Rocket.get = get; } // Time - if (!Rocket.time) { - var time = { - basic: function (thisTime) { - var thisTime = date.transform(thisTime); - var hours = time.leadingZero(thisTime.getHours()); - var minutes = time.leadingZero(thisTime.getMinutes()); - return hours + ':' + minutes; - }, - exact: function (thisTime) { - var thisTime = date.transform(thisTime); - var hours = time.leadingZero(thisTime.getHours()); - var minutes = time.leadingZero(thisTime.getMinutes()); - var seconds = time.leadingZero(thisTime.getSeconds()); - var milliseconds = time.leadingZero(thisTime.getMilliseconds()); - - return hours + ':' + minutes + ':' + seconds + ':' + milliseconds; - }, - full: function (thisTime) { - var thisTime = date.transform(thisTime); - var hours = time.leadingZero(thisTime.getHours()); - var minutes = time.leadingZero(thisTime.getMinutes()); - var seconds = time.leadingZero(thisTime.getSeconds()); - - return hours + ':' + minutes + ':' + seconds; - }, - hours: function (hours) { - return hours * 60 * 60 * 1000; - }, - leadingZero: function (int) { - return ((int < 10) ? '0' : '') + int; - }, - minutes: function (minutes) { - return minutes * 60 * 1000; - }, - seconds: function (seconds) { - return seconds * 1000; - } - }; - Rocket.time = time; + if (!Rocket.milliseconds) { + Rocket.milliseconds = { + hours: function (hours) { + return hours * 60 * 60 * 1000; + }, + minutes: function (minutes) { + return minutes * 60 * 1000; + }, + seconds: function (seconds) { + return seconds * 1000; + } + }; } return Rocket; @@ -320,13 +395,18 @@ var RocketFlickerComponent = (function () { }; // Functions - var setup = function () { + function makeArray() { + + }; + + function setup() { if (!Rocket.is.touch()) { Rocket.class.add(Rocket.dom.html, 'rocket-no-touch'); isTouch = false; } }; - var setupFlicker = function (flicker, options) { + + function setupFlicker(flicker, options) { if (!flicker || typeof options !== 'object') { return false; } @@ -375,7 +455,7 @@ var RocketFlickerComponent = (function () { }; // Inner component - var component = function (flickerObj) { + function component(flickerObj) { if (!flickerObj) { return false; } @@ -408,7 +488,7 @@ var RocketFlickerComponent = (function () { var autoStart = function () { autoFlickWatch = setTimeout(function () { move('next'); - }, Rocket.time.seconds(options.autoFlickDelay)); + }, Rocket.milliseconds.seconds(options.autoFlickDelay)); }; var autoStop = function () { clearTimeout(autoFlickWatch); @@ -430,6 +510,7 @@ var RocketFlickerComponent = (function () { } }); }; + var move = function (to) { // Auto flick if (options.autoFlick && options.autoFlickDelay) { @@ -489,6 +570,7 @@ var RocketFlickerComponent = (function () { Rocket.class.add(elements.dots.querySelector('li:nth-child(' + options.position + ') .dot'), '_active'); } }; + var moveHammer = function () { if (typeof Hammer === 'function') { if (options.animation === 'transform-slide' || options.animation === 'transition-slide') { @@ -511,6 +593,7 @@ var RocketFlickerComponent = (function () { } } }; + var movePan = function (event) { switch (options.animation) { case 'transform-slide': @@ -527,11 +610,13 @@ var RocketFlickerComponent = (function () { break; } }; + var movePanStart = function () { autoStop(); flickerWidth = flicker.clientWidth; Rocket.class.remove(flicker, '_a-' + options.animation); }; + var movePanEnd = function (event) { endPosX = event.deltaX; Rocket.class.add(flicker, '_a-' + options.animation); @@ -541,6 +626,7 @@ var RocketFlickerComponent = (function () { move('previous'); } }; + var moveSwipe = function (event) { if (event.type == 'swipeleft') { move('next'); @@ -548,6 +634,7 @@ var RocketFlickerComponent = (function () { move('previous'); } }; + var start = function (delay) { var delay = (typeof delay === 'number') ? delay : Rocket.defaults.flicker.autoFlickDelay; clearTimeout(autoFlickWatch); @@ -555,8 +642,9 @@ var RocketFlickerComponent = (function () { options.autoFlickDelay = delay; autoFlickWatch = setTimeout(function () { move('next'); - }, Rocket.time.seconds(options.autoFlickDelay)); + }, Rocket.milliseconds.seconds(options.autoFlickDelay)); }; + var stop = function () { if (options.autoFlick && options.autoFlickDelay) { clearTimeout(autoFlickWatch); @@ -580,7 +668,7 @@ var RocketFlickerComponent = (function () { }; // Initialiser - var init = function (uOptions) { + function init(uOptions) { // Options var uOptions = (typeof uOptions === 'object') ? uOptions : false; // User options var options = { diff --git a/cockpit.json b/cockpit.json new file mode 100644 index 0000000..3df5e71 --- /dev/null +++ b/cockpit.json @@ -0,0 +1,10 @@ +{ + "build": [{ + "name": "flicker", + "css": ["flicker.scss"], + "js": ["flicker.js"] + }, { + "name": "hammer-v2.0.3", + "js": ["hammer-v2.0.3.js"] + }] +} diff --git a/css/flicker.min.css b/css/flicker.min.css index 1bd8602..315c0c6 100644 --- a/css/flicker.min.css +++ b/css/flicker.min.css @@ -1 +1 @@ -@font-face{font-family:'rocket-flicker';src:url("icon-font-rocket-flicker/icomoon.eot?c4hmew");src:url("icon-font-rocket-flicker/icomoon.eot?#iefixc4hmew") format("embedded-opentype"),url("icon-font-rocket-flicker/icomoon.woff?c4hmew") format("woff"),url("icon-font-rocket-flicker/icomoon.ttf?c4hmew") format("truetype"),url("icon-font-rocket-flicker/icomoon.svg?c4hmew#icomoon") format("svg");font-weight:normal;font-style:normal}.rocket-flicker{position:relative;left:0;overflow:hidden;background-color:#e6e6e6}.rocket-flicker ul.flicks{position:relative;padding:0;margin:0;display:-webkit-box;display:-moz-box;display:-webkit-flexbox;display:-ms-flexbox;display:-webkit-flex;display:flex;width:100%;height:600px;list-style:none;-webkit-box-align:center;-ms-flex-align:center;-webkit-align-items:center;-moz-align-items:center;align-items:center;transform:translate3d(0%, 0px, 0px);-webkit-transform:translate3d(0%, 0px, 0px)}.rocket-flicker ul.flicks>li{-webkit-flex-grow:1;-webkit-box-flex:1;-moz-flex-grow:1;-ms-flex-positive:1;flex-grow:1;-webkit-flex-shrink:0;-webkit-box-flex:0;-moz-flex-shrink:0;-ms-flex-negative:0;flex-shrink:0;-webkit-flex-basis:100%;-moz-flex-basis:100%;-ms-flex-preferred-size:100%;flex-basis:100%;-webkit-box-align:center;-ms-flex-align:center;-webkit-align-items:center;-moz-align-items:center;align-items:center;-webkit-box-pack:center;-moz-box-pack:center;-webkit-flex-pack:center;-ms-flex-pack:center;-moz-justify-content:center;-webkit-justify-content:center;justify-content:center;padding:48px;height:100%;display:-webkit-box;display:-moz-box;display:-webkit-flexbox;display:-ms-flexbox;display:-webkit-flex;display:flex;-webkit-box-orient:vertical;-moz-box-orient:vertical;-webkit-flex-direction:column;-moz-flex-direction:column;-ms-flex-direction:column;flex-direction:column}@media only screen and (min-width: 43.813em){.rocket-flicker ul.flicks>li{padding-left:100px;padding-right:100px}}.rocket-flicker .flick-title,.rocket-flicker .flick-sub-text{text-align:center}.rocket-flicker .flick-title{padding:0;text-align:center;line-height:40px;line-height:2.5rem;font-size:28px;font-size:1.75rem}@media only screen and (min-width: 43.813em){.rocket-flicker .flick-title{line-height:60px;line-height:3.75rem;font-size:44px;font-size:2.75rem}}.rocket-flicker .flick-sub-text{padding:5px;text-align:center;color:rgba(255,255,255,0.8);line-height:24px;line-height:1.5rem;font-size:16px;font-size:1rem;font-weight:300}.rocket-flicker .flick-title span.flick-block-text,.rocket-flicker .flick-sub-text span.flick-block-text{padding-left:18px;padding-right:18px;padding-top:12px;padding-bottom:12px;background-color:rgba(0,0,0,0.6)}.rocket-flicker._a-transform-slide ul.flicks{-webkit-perspective:1000;-webkit-backface-visibility:hidden;transform:translate3d(0%, 0px, 0px);-webkit-transform:translate3d(0%, 0px, 0px);-webkit-transition:-webkit-transform .2s ease-out;-o-transition:-o-transform .2s ease-out;-moz-transition:-moz-transform .2s ease-out;transition:transform .2s ease-out}@media only screen and (min-width: 43.813em){.rocket-flicker._a-transform-slide ul.flicks{-webkit-transition:-webkit-transform .6s ease-out;-o-transition:-o-transform .6s ease-out;-moz-transition:-moz-transform .6s ease-out;transition:transform .6s ease-out}}.rocket-flicker._a-transition-slide ul.flicks{position:relative;left:0%;-webkit-transition:left .2s ease-out 0s;-moz-transition:left .2s ease-out 0s;-ms-transition:left .2s ease-out 0s;transition:left .2s ease-out 0s}@media only screen and (min-width: 43.813em){.rocket-flicker._a-transition-slide ul.flicks{-webkit-transition:left .6s ease-out 0s;-moz-transition:left .6s ease-out 0s;-ms-transition:left .6s ease-out 0s;transition:left .6s ease-out 0s}}.rocket-flicker._a-scroller-slide{padding-bottom:0px;overflow:auto}.rocket-flicker._a-scroller-slide ul.flicks{position:auto}.rocket-flicker._a-transition-fade ul.flicks{position:relative}.rocket-flicker._a-transition-fade ul.flicks li{float:none;position:absolute;top:0;right:0;bottom:0;left:0;opacity:0;filter:alpha(opacity=0);z-index:1}.rocket-flicker._a-transition-fade ul.flicks li._active{opacity:1;filter:alpha(opacity=100);-webkit-transition:opacity .8s ease-out 0s;-moz-transition:opacity .8s ease-out 0s;-ms-transition:opacity .8s ease-out 0s;transition:opacity .8s ease-out 0s;z-index:2}.rocket-flicker._a-transition-fade.fade-initiated ul.flicks li{-webkit-transition:opacity .8s ease-out 0s;-moz-transition:opacity .8s ease-out 0s;-ms-transition:opacity .8s ease-out 0s;transition:opacity .8s ease-out 0s}.rocket-flicker-arrow{display:block;position:absolute;top:10%;width:48px;height:80%;z-index:100;overflow:hidden;font-family:"rocket-flicker";vertical-align:middle}@media only screen and (min-width: 43.813em){.rocket-flicker-arrow{width:100px}}.rocket-flicker-arrow:before{position:absolute;top:50%;left:50%;margin-left:-25px;margin-top:-25px;width:50px;height:50px;line-height:50px;text-align:center;opacity:0;filter:alpha(opacity=0);text-align:center;color:#fff;font-size:48px;font-size:3rem;-webkit-transition:opacity .2s ease-out 0s;-moz-transition:opacity .2s ease-out 0s;-ms-transition:opacity .2s ease-out 0s;transition:opacity .2s ease-out 0s}.rocket-no-touch .rocket-flicker-arrow:hover{cursor:pointer}.rocket-no-touch .rocket-flicker-arrow:hover._left:before,.rocket-no-touch .rocket-flicker-arrow:hover._right:before{opacity:1;filter:alpha(opacity=100)}.rocket-no-touch .rocket-flicker-arrow:active._left:before,.rocket-no-touch .rocket-flicker-arrow:active._right:before{margin-top:-23px}.rocket-flicker-arrow._left{left:0%}.rocket-flicker-arrow._left:before{content:"\f104"}.rocket-flicker-arrow._right{right:0%}.rocket-flicker-arrow._right:before{content:"\f105"}.rocket-flicker-dots{position:absolute;bottom:15px;width:100%;text-align:center;z-index:100}.rocket-flicker-dots ul{text-align:center;list-style:none;padding-left:30px;padding-right:30px;padding-top:0px;padding-bottom:0px}.rocket-flicker-dots ul li{display:inline-block;float:none}.rocket-flicker-dots .dot{width:14px;height:14px;line-height:14px;text-align:center;margin-left:6px;margin-right:6px;background-color:rgba(255,255,255,0.3);border-radius:50%;-ms-border-radius:50%;-moz-border-radius:50%;-webkit-border-radius:50%;background-clip:padding-box;-webkit-transition:background-color .2s ease-out 0s;-moz-transition:background-color .2s ease-out 0s;-ms-transition:background-color .2s ease-out 0s;transition:background-color .2s ease-out 0s}.rocket-no-touch .rocket-flicker-dots .dot:hover{cursor:pointer;background-color:rgba(255,255,255,0.6)}.rocket-flicker-dots .dot._active{background-color:#fff}.rocket-flicker-dots._left,.rocket-flicker-dots._left ul{text-align:left}.rocket-flicker-dots._right,.rocket-flicker-dots._right ul{text-align:right} +@font-face{font-family:'rocket-flicker';src:url("icon-font-rocket-flicker/icomoon.eot?c4hmew");src:url("icon-font-rocket-flicker/icomoon.eot?#iefixc4hmew") format("embedded-opentype"),url("icon-font-rocket-flicker/icomoon.woff?c4hmew") format("woff"),url("icon-font-rocket-flicker/icomoon.ttf?c4hmew") format("truetype"),url("icon-font-rocket-flicker/icomoon.svg?c4hmew#icomoon") format("svg");font-weight:normal;font-style:normal}.rocket-flicker{position:relative;left:0;overflow:hidden;background-color:#e6e6e6}.rocket-flicker ul.flicks{position:relative;padding:0;margin:0;display:-webkit-box;display:-moz-box;display:-webkit-flexbox;display:-ms-flexbox;display:-webkit-flex;display:flex;width:100%;height:600px;list-style:none;-webkit-box-align:center;-ms-flex-align:center;-webkit-align-items:center;-moz-align-items:center;align-items:center;transform:translate3d(0%,0px,0px);-webkit-transform:translate3d(0%,0px,0px)}.rocket-flicker ul.flicks>li{-webkit-flex-grow:1;-webkit-box-flex:1;-moz-flex-grow:1;-ms-flex-positive:1;flex-grow:1;-webkit-flex-shrink:0;-webkit-box-flex:0;-moz-flex-shrink:0;-ms-flex-negative:0;flex-shrink:0;-webkit-flex-basis:100%;-moz-flex-basis:100%;-ms-flex-preferred-size:100%;flex-basis:100%;-webkit-box-align:center;-ms-flex-align:center;-webkit-align-items:center;-moz-align-items:center;align-items:center;-webkit-box-pack:center;-moz-box-pack:center;-webkit-flex-pack:center;-ms-flex-pack:center;-moz-justify-content:center;-webkit-justify-content:center;justify-content:center;padding:48px;height:100%;display:-webkit-box;display:-moz-box;display:-webkit-flexbox;display:-ms-flexbox;display:-webkit-flex;display:flex;-webkit-box-orient:vertical;-moz-box-orient:vertical;-webkit-flex-direction:column;-moz-flex-direction:column;-ms-flex-direction:column;flex-direction:column}@media only screen and (min-width:43.813em){.rocket-flicker ul.flicks>li{padding-left:100px;padding-right:100px}}.rocket-flicker .flick-title,.rocket-flicker .flick-sub-text{text-align:center}.rocket-flicker .flick-title{padding:0;text-align:center;line-height:40px;line-height:2.5rem;font-size:28px;font-size:1.75rem}@media only screen and (min-width:43.813em){.rocket-flicker .flick-title{line-height:60px;line-height:3.75rem;font-size:44px;font-size:2.75rem}}.rocket-flicker .flick-sub-text{padding:5px;text-align:center;color:rgba(255,255,255,0.8);line-height:24px;line-height:1.5rem;font-size:16px;font-size:1rem;font-weight:300}.rocket-flicker .flick-title span.flick-block-text,.rocket-flicker .flick-sub-text span.flick-block-text{padding-left:18px;padding-right:18px;padding-top:12px;padding-bottom:12px;background-color:rgba(0,0,0,0.6)}.rocket-flicker._a-transform-slide ul.flicks{-webkit-perspective:1000;-webkit-backface-visibility:hidden;transform:translate3d(0%,0px,0px);-webkit-transform:translate3d(0%,0px,0px);-webkit-transition:-webkit-transform .2s ease-out;-o-transition:-o-transform .2s ease-out;-moz-transition:-moz-transform .2s ease-out;transition:transform .2s ease-out}@media only screen and (min-width:43.813em){.rocket-flicker._a-transform-slide ul.flicks{-webkit-transition:-webkit-transform .6s ease-out;-o-transition:-o-transform .6s ease-out;-moz-transition:-moz-transform .6s ease-out;transition:transform .6s ease-out}}.rocket-flicker._a-transition-slide ul.flicks{position:relative;left:0;-webkit-transition:left .2s ease-out 0s;-moz-transition:left .2s ease-out 0s;-ms-transition:left .2s ease-out 0s;transition:left .2s ease-out 0s}@media only screen and (min-width:43.813em){.rocket-flicker._a-transition-slide ul.flicks{-webkit-transition:left .6s ease-out 0s;-moz-transition:left .6s ease-out 0s;-ms-transition:left .6s ease-out 0s;transition:left .6s ease-out 0s}}.rocket-flicker._a-scroller-slide{padding-bottom:0;overflow:auto}.rocket-flicker._a-scroller-slide ul.flicks{position:auto}.rocket-flicker._a-transition-fade ul.flicks{position:relative}.rocket-flicker._a-transition-fade ul.flicks li{float:none;position:absolute;top:0;right:0;bottom:0;left:0;opacity:0;filter:alpha(opacity=0);z-index:1}.rocket-flicker._a-transition-fade ul.flicks li._active{opacity:1;filter:alpha(opacity=100);-webkit-transition:opacity .8s ease-out 0s;-moz-transition:opacity .8s ease-out 0s;-ms-transition:opacity .8s ease-out 0s;transition:opacity .8s ease-out 0s;z-index:2}.rocket-flicker._a-transition-fade.fade-initiated ul.flicks li{-webkit-transition:opacity .8s ease-out 0s;-moz-transition:opacity .8s ease-out 0s;-ms-transition:opacity .8s ease-out 0s;transition:opacity .8s ease-out 0s}.rocket-flicker-arrow{display:block;position:absolute;top:10%;width:48px;height:80%;z-index:100;overflow:hidden;font-family:"rocket-flicker";vertical-align:middle}@media only screen and (min-width:43.813em){.rocket-flicker-arrow{width:100px}}.rocket-flicker-arrow:before{position:absolute;top:50%;left:50%;margin-left:-25px;margin-top:-25px;width:50px;height:50px;line-height:50px;text-align:center;opacity:0;filter:alpha(opacity=0);text-align:center;color:#fff;font-size:48px;font-size:3rem;-webkit-transition:opacity .2s ease-out 0s;-moz-transition:opacity .2s ease-out 0s;-ms-transition:opacity .2s ease-out 0s;transition:opacity .2s ease-out 0s}.rocket-no-touch .rocket-flicker-arrow:hover{cursor:pointer}.rocket-no-touch .rocket-flicker-arrow:hover._left:before,.rocket-no-touch .rocket-flicker-arrow:hover._right:before{opacity:1;filter:alpha(opacity=100)}.rocket-no-touch .rocket-flicker-arrow:active._left:before,.rocket-no-touch .rocket-flicker-arrow:active._right:before{margin-top:-23px}.rocket-flicker-arrow._left{left:0}.rocket-flicker-arrow._left:before{content:"\f104"}.rocket-flicker-arrow._right{right:0}.rocket-flicker-arrow._right:before{content:"\f105"}.rocket-flicker-dots{position:absolute;bottom:15px;width:100%;text-align:center;z-index:100}.rocket-flicker-dots ul{text-align:center;list-style:none;padding-left:30px;padding-right:30px;padding-top:0;padding-bottom:0}.rocket-flicker-dots ul li{display:inline-block;float:none}.rocket-flicker-dots .dot{width:14px;height:14px;line-height:14px;text-align:center;margin-left:6px;margin-right:6px;background-color:rgba(255,255,255,0.3);border-radius:50%;-ms-border-radius:50%;-moz-border-radius:50%;-webkit-border-radius:50%;background-clip:padding-box;-webkit-transition:background-color .2s ease-out 0s;-moz-transition:background-color .2s ease-out 0s;-ms-transition:background-color .2s ease-out 0s;transition:background-color .2s ease-out 0s}.rocket-no-touch .rocket-flicker-dots .dot:hover{cursor:pointer;background-color:rgba(255,255,255,0.6)}.rocket-flicker-dots .dot._active{background-color:#fff}.rocket-flicker-dots._left,.rocket-flicker-dots._left ul{text-align:left}.rocket-flicker-dots._right,.rocket-flicker-dots._right ul{text-align:right} \ No newline at end of file diff --git a/js/flicker.min.js b/js/flicker.min.js index f7c8eae..a67fff5 100644 --- a/js/flicker.min.js +++ b/js/flicker.min.js @@ -1 +1 @@ -var Rocket=function(e){if(e.defaults||(e.defaults={}),e.defaults.flicker={selector:".flicker",animation:"transform-slide",arrows:!0,arrowsConstraint:!1,autoFlick:!0,autoFlickDelay:10,dotAlignment:"center",dots:!0,position:1},!e.exists){var t=function(e){return"undefined"!=typeof e&&null!==e&&e!==!1};e.exists=t}if(!e.has){var n={spaces:function(e){return/\s/.test(e)},class:function(e,t){return(" "+e.className+" ").indexOf(" "+t+" ")>-1}};e.has=n}if(!e.is){var o={array:function(e){return"object"==typeof e&&e instanceof Array},color:function(e){o.colour(e)},colour:function(e){return defaults.regexp.colour.test(e)},date:function(e,t){var t=t instanceof RegExp?t:defaults.regexp.date;return t.test(e)},element:function(e){return!(!e.nodeType||1!==e.nodeType)},email:function(e,t){var t=t instanceof RegExp?t:defaults.regexp.email;return t.test(e)},float:function(e){return defaults.regexp.float.test(e)},integer:function(e){return defaults.regexp.integer.test(e)},image:function(e,t){var n=o.array(t)?t:defaults.extensions.images;return n[e.split(".").pop().toLowerCase()]},json:function(e){if("object"!=typeof e)try{JSON.parse(e)}catch(e){return!1}return!0},password:function(e,t){var t=t instanceof RegExp?t:defaults.regexp.password;return t.test(e)},time:function(e,t){var t=t instanceof RegExp?t:defaults.regexp.time;return t.test(e)},touch:function(){return"ontouchstart"in window||"onmsgesturechange"in window},url:function(e,t){var t=t instanceof RegExp?t:defaults.regexp.url;return t.test(e)}};e.is=o}if(!e.class){var r={add:function(e,t){r.executeClasses(e,t,!1)},clear:function(e){t(e)&&e.removeAttribute("class")},executeAdd:function(e,t){e.className=e.className.split(" ").concat(t).filter(function(e,t,n){return n.indexOf(e)===t&&""!==e}).toString().replace(/,/g," ")},executeClasses:function(e,n,i){if(!t(e))return!1;var a=[];if(o.element(e)?a.push(e):o.array(e)&&(a=e),a.length<1)return!1;for(var s=c.makeArray(n,!0),l=c.makeArray(i,!0),u=s.length>0,f=l.length>0,d=0,m=a.length;d0)for(var s=0,c=i;s0?d=0:i.position===i.count&&d1?i.position--:i.arrowsConstraint||(i.position=i.count);break;default:if("number"!=typeof e)return!1;e<=i.count&&e>=1?i.position=e:e>=i.count?i.position=i.count:e<=1&&(i.position=1)}var t=i.position-1;switch(i.animation){case"transform-slide":var n="translate3d(-"+t+"00%, 0, 0)";o.UL.setAttribute("style","-webkit-transform:"+n+";-o-transform:"+n+";-moz-transform:"+n+";transform:"+n),l=100*-t;break;case"transition-fade":Rocket.class.remove(o.UL.querySelector("li._active"),"_active"),Rocket.class.add(o.UL.querySelector("li:nth-child("+i.position+")"),"_active");break;case"transition-slide":o.UL.style.left="-"+t+"00%",c=-(t+"00")}"scroller-slide"!==i.animation&&i.dots&&(Rocket.class.remove(o.dots.querySelector("._active"),"_active"),Rocket.class.add(o.dots.querySelector("li:nth-child("+i.position+") .dot"),"_active"))},h=function(){if("function"==typeof Hammer)if("transform-slide"===i.animation||"transition-slide"===i.animation){var e=new Hammer(o.UL);e.on("panstart",function(e){R()}),e.on("panleft panright",function(e){w(e)}),e.on("panend",function(e){x(e)})}else if("transition-fade"===i.animation){var e=new Hammer(o.UL);e.on("swipeleft swiperight",function(e){b(e)})}},w=function(e){switch(i.animation){case"transform-slide":d=Math.round(e.deltaX/s*1e3)/10+l,g(100*-(i.count-1)),u="translate3d("+d+"%, 0, 0)",o.UL.setAttribute("style","-webkit-transform:"+u+";-o-transform:"+u+";-moz-transform:"+u+";transform:"+u);break;case"transition-slide":d=Math.round(e.deltaX/s*100)+c,g(-(100*(i.count-1))),o.UL.style.left=d+"%"}},R=function(){k(),s=r.clientWidth,Rocket.class.remove(r,"_a-"+i.animation)},x=function(e){a=e.deltaX,Rocket.class.add(r,"_a-"+i.animation),a<-f&&i.positionf&&i.position>1&&y("previous")},b=function(e){"swipeleft"==e.type?y("next"):"swiperight"==e.type&&y("previous")},F=function(e){var e="number"==typeof e?e:Rocket.defaults.flicker.autoFlickDelay;clearTimeout(n),i.autoFlick=!0,i.autoFlickDelay=e,n=setTimeout(function(){y("next")},Rocket.time.seconds(i.autoFlickDelay))},A=function(){i.autoFlick&&i.autoFlickDelay&&(clearTimeout(n),i.autoFlick=!1)};return m(),v(),y(i.position),e&&h(),{flicker:r,move:y,start:F,stop:A}},i=function(e){var e="object"==typeof e&&e,t={selector:"string"==typeof e.selector?e.selector:Rocket.defaults.flicker.selector,animation:"string"==typeof e.animation?e.animation:Rocket.defaults.flicker.animation,arrows:"boolean"==typeof e.arrows?e.arrows:Rocket.defaults.flicker.arrows,arrowsConstraint:"boolean"==typeof e.arrowsConstraint?e.arrowsConstraint:Rocket.defaults.flicker.arrowsConstraint,autoFlick:"boolean"==typeof e.autoFlick?e.autoFlick:Rocket.defaults.flicker.autoFlick,autoFlickDelay:"number"==typeof e.autoFlickDelay?e.autoFlickDelay:Rocket.defaults.flicker.autoFlickDelay,dotAlignment:"string"==typeof e.dotAlignment?e.dotAlignment:Rocket.defaults.flicker.dotAlignment,dots:"boolean"==typeof e.dots?e.dots:Rocket.defaults.flicker.dots,position:"number"==typeof e.position?e.position:Rocket.defaults.flicker.position},n=document.querySelectorAll(t.selector);if(n.length<1)return!1;for(var i=[],a=0,s=n.length;a0?o=e:r.element(e)?o.push(e):r.string(e)?o=e.split(" "):r.object(e)&&(e=Array.prototype.slice.call(e),r.array(e)&&e.length>0&&(o=e)),i?t.unique(o):o},unique:function(e){return!!r.array(e)&&e.filter(function(e,t,n){return n.indexOf(e)===t})}};e.array=t}if(!e.exists){var n=function(e){return"undefined"!=typeof e&&null!==e&&e!==!1};e.exists=n}if(!e.has){var o={spaces:function(e){return/\s/.test(e)},class:function(e,t){return(" "+e.className+" ").indexOf(" "+t+" ")>-1}};e.has=o}if(!e.is){var r={array:function(e){return"object"==typeof e&&e instanceof Array},boolean:function(e){return"boolean"==typeof e},browser:function(){return!("undefined"==typeof window||"undefined"==typeof navigator||!window.document)},color:function(e){return r.colour(e)},colour:function(e){return defaults.regexp.colour.test(e)},date:function(e,t){var n=t instanceof RegExp?t:defaults.regexp.date;return n.test(e)},element:function(e){return!(!e.nodeType||1!==e.nodeType)},email:function(e,t){var n=t instanceof RegExp?t:defaults.regexp.email;return n.test(e)},function:function(e){return"function"==typeof e},image:function(e,t){var n=r.array(t)?t:defaults.extensions.images;return n[e.split(".").pop().toLowerCase()]},integer:function(e){return r.number(e)&&parseFloat(e)===parseInt(e)},json:function(e){if("object"!=typeof e)try{JSON.parse(e)}catch(e){return!1}return!0},number:function(e){return"number"==typeof e},object:function(e){return"object"==typeof e},password:function(e,t){var n=t instanceof RegExp?t:defaults.regexp.password;return n.test(e)},string:function(e){return"string"==typeof e},time:function(e,t){var n=t instanceof RegExp?t:defaults.regexp.time;return n.test(e)},touch:function(){return"ontouchstart"in window||"onmsgesturechange"in window},url:function(e,t){var n=t instanceof RegExp?t:defaults.regexp.url;return n.test(e)}};e.is=r}if(!e.class){var i={add:function(e,t){i.executeClasses(e,t,!1)},clear:function(e){n(e)&&e.removeAttribute("class")},executeAdd:function(e,t){e.className=e.className.split(" ").concat(t).filter(function(e,t,n){return n.indexOf(e)===t&&""!==e}).toString().replace(/,/g," ")},executeClasses:function(e,o,a){if(!n(e))return!1;var s=[];if(r.element(e)?s.push(e):r.array(e)&&(s=e),s.length<1)return!1;for(var c=t.make(o,!0),l=t.make(a,!0),u=c.length>0,f=l.length>0,d=0,p=s.length;d0)for(var s=0,c=r;s0?d=0:i.position===i.count&&d1?i.position--:i.arrowsConstraint||(i.position=i.count);break;default:if("number"!=typeof e)return!1;e<=i.count&&e>=1?i.position=e:e>=i.count?i.position=i.count:e<=1&&(i.position=1)}var t=i.position-1;switch(i.animation){case"transform-slide":var o="translate3d(-"+t+"00%, 0, 0)";n.UL.setAttribute("style","-webkit-transform:"+o+";-o-transform:"+o+";-moz-transform:"+o+";transform:"+o),l=100*-t;break;case"transition-fade":Rocket.class.remove(n.UL.querySelector("li._active"),"_active"),Rocket.class.add(n.UL.querySelector("li:nth-child("+i.position+")"),"_active");break;case"transition-slide":n.UL.style.left="-"+t+"00%",c=-(t+"00")}"scroller-slide"!==i.animation&&i.dots&&(Rocket.class.remove(n.dots.querySelector("._active"),"_active"),Rocket.class.add(n.dots.querySelector("li:nth-child("+i.position+") .dot"),"_active"))},h=function(){if("function"==typeof Hammer)if("transform-slide"===i.animation||"transition-slide"===i.animation){var e=new Hammer(n.UL);e.on("panstart",function(e){R()}),e.on("panleft panright",function(e){w(e)}),e.on("panend",function(e){x(e)})}else if("transition-fade"===i.animation){var e=new Hammer(n.UL);e.on("swipeleft swiperight",function(e){b(e)})}},w=function(e){switch(i.animation){case"transform-slide":d=Math.round(e.deltaX/s*1e3)/10+l,v(100*-(i.count-1)),u="translate3d("+d+"%, 0, 0)",n.UL.setAttribute("style","-webkit-transform:"+u+";-o-transform:"+u+";-moz-transform:"+u+";transform:"+u);break;case"transition-slide":d=Math.round(e.deltaX/s*100)+c,v(-(100*(i.count-1))),n.UL.style.left=d+"%"}},R=function(){k(),s=o.clientWidth,Rocket.class.remove(o,"_a-"+i.animation)},x=function(e){a=e.deltaX,Rocket.class.add(o,"_a-"+i.animation),a<-f&&i.positionf&&i.position>1&&g("previous")},b=function(e){"swipeleft"==e.type?g("next"):"swiperight"==e.type&&g("previous")},F=function(e){var e="number"==typeof e?e:Rocket.defaults.flicker.autoFlickDelay;clearTimeout(t),i.autoFlick=!0,i.autoFlickDelay=e,t=setTimeout(function(){g("next")},Rocket.milliseconds.seconds(i.autoFlickDelay))},E=function(){i.autoFlick&&i.autoFlickDelay&&(clearTimeout(t),i.autoFlick=!1)};return p(),y(),g(i.position),r&&h(),{flicker:o,move:g,start:F,stop:E}}function o(e){var e="object"==typeof e&&e,o={selector:"string"==typeof e.selector?e.selector:Rocket.defaults.flicker.selector,animation:"string"==typeof e.animation?e.animation:Rocket.defaults.flicker.animation,arrows:"boolean"==typeof e.arrows?e.arrows:Rocket.defaults.flicker.arrows,arrowsConstraint:"boolean"==typeof e.arrowsConstraint?e.arrowsConstraint:Rocket.defaults.flicker.arrowsConstraint,autoFlick:"boolean"==typeof e.autoFlick?e.autoFlick:Rocket.defaults.flicker.autoFlick,autoFlickDelay:"number"==typeof e.autoFlickDelay?e.autoFlickDelay:Rocket.defaults.flicker.autoFlickDelay,dotAlignment:"string"==typeof e.dotAlignment?e.dotAlignment:Rocket.defaults.flicker.dotAlignment,dots:"boolean"==typeof e.dots?e.dots:Rocket.defaults.flicker.dots,position:"number"==typeof e.position?e.position:Rocket.defaults.flicker.position},r=document.querySelectorAll(o.selector);if(r.length<1)return!1;for(var i=[],a=0,s=r.length;a