dr-jekylls-materials 0.1.4 → 0.1.5
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/README.md +4 -0
- data/assets/css/materialize.scss +42 -0
- data/assets/css/site.css +10 -0
- data/assets/fonts/roboto/Roboto-Bold.eot +0 -0
- data/assets/fonts/roboto/Roboto-Bold.ttf +0 -0
- data/assets/fonts/roboto/Roboto-Bold.woff +0 -0
- data/assets/fonts/roboto/Roboto-Bold.woff2 +0 -0
- data/assets/fonts/roboto/Roboto-Light.eot +0 -0
- data/assets/fonts/roboto/Roboto-Light.ttf +0 -0
- data/assets/fonts/roboto/Roboto-Light.woff +0 -0
- data/assets/fonts/roboto/Roboto-Light.woff2 +0 -0
- data/assets/fonts/roboto/Roboto-Medium.eot +0 -0
- data/assets/fonts/roboto/Roboto-Medium.ttf +0 -0
- data/assets/fonts/roboto/Roboto-Medium.woff +0 -0
- data/assets/fonts/roboto/Roboto-Medium.woff2 +0 -0
- data/assets/fonts/roboto/Roboto-Regular.eot +0 -0
- data/assets/fonts/roboto/Roboto-Regular.ttf +0 -0
- data/assets/fonts/roboto/Roboto-Regular.woff +0 -0
- data/assets/fonts/roboto/Roboto-Regular.woff2 +0 -0
- data/assets/fonts/roboto/Roboto-Thin.eot +0 -0
- data/assets/fonts/roboto/Roboto-Thin.ttf +0 -0
- data/assets/fonts/roboto/Roboto-Thin.woff +0 -0
- data/assets/fonts/roboto/Roboto-Thin.woff2 +0 -0
- data/assets/js/animation.js +9 -0
- data/assets/js/bin/materialize.js +7778 -0
- data/assets/js/bin/materialize.min.js +10 -0
- data/assets/js/buttons.js +267 -0
- data/assets/js/cards.js +26 -0
- data/assets/js/carousel.js +454 -0
- data/assets/js/character_counter.js +72 -0
- data/assets/js/chips.js +289 -0
- data/assets/js/collapsible.js +160 -0
- data/assets/js/date_picker/picker.date.js +1430 -0
- data/assets/js/date_picker/picker.js +1123 -0
- data/assets/js/dropdown.js +265 -0
- data/assets/js/forms.js +682 -0
- data/assets/js/global.js +98 -0
- data/assets/js/hammer.min.js +1 -0
- data/assets/js/initial.js +11 -0
- data/assets/js/jquery.easing.1.3.js +205 -0
- data/assets/js/jquery.hammer.js +33 -0
- data/assets/js/materialbox.js +269 -0
- data/assets/js/materialize-readies.js +14 -0
- data/assets/js/materialize.js +7779 -0
- data/assets/js/materialize.min.js +10 -0
- data/assets/js/modal.js +184 -0
- data/assets/js/parallax.js +58 -0
- data/assets/js/pushpin.js +71 -0
- data/assets/js/scrollFire.js +48 -0
- data/assets/js/scrollspy.js +284 -0
- data/assets/js/sideNav.js +370 -0
- data/assets/js/slider.js +321 -0
- data/assets/js/tabs.js +164 -0
- data/assets/js/toasts.js +137 -0
- data/assets/js/tooltip.js +236 -0
- data/assets/js/transitions.js +169 -0
- data/assets/js/velocity.min.js +5 -0
- data/assets/js/waves.js +338 -0
- data/assets/materialize-LICENSE +21 -0
- data/assets/materialize-README.md +48 -0
- data/assets/site.css +2 -0
- metadata +61 -1
data/assets/js/global.js
ADDED
@@ -0,0 +1,98 @@
|
|
1
|
+
// Required for Meteor package, the use of window prevents export by Meteor
|
2
|
+
(function(window){
|
3
|
+
if(window.Package){
|
4
|
+
Materialize = {};
|
5
|
+
} else {
|
6
|
+
window.Materialize = {};
|
7
|
+
}
|
8
|
+
})(window);
|
9
|
+
|
10
|
+
|
11
|
+
/*
|
12
|
+
* raf.js
|
13
|
+
* https://github.com/ngryman/raf.js
|
14
|
+
*
|
15
|
+
* original requestAnimationFrame polyfill by Erik Möller
|
16
|
+
* inspired from paul_irish gist and post
|
17
|
+
*
|
18
|
+
* Copyright (c) 2013 ngryman
|
19
|
+
* Licensed under the MIT license.
|
20
|
+
*/
|
21
|
+
(function(window) {
|
22
|
+
var lastTime = 0,
|
23
|
+
vendors = ['webkit', 'moz'],
|
24
|
+
requestAnimationFrame = window.requestAnimationFrame,
|
25
|
+
cancelAnimationFrame = window.cancelAnimationFrame,
|
26
|
+
i = vendors.length;
|
27
|
+
|
28
|
+
// try to un-prefix existing raf
|
29
|
+
while (--i >= 0 && !requestAnimationFrame) {
|
30
|
+
requestAnimationFrame = window[vendors[i] + 'RequestAnimationFrame'];
|
31
|
+
cancelAnimationFrame = window[vendors[i] + 'CancelRequestAnimationFrame'];
|
32
|
+
}
|
33
|
+
|
34
|
+
// polyfill with setTimeout fallback
|
35
|
+
// heavily inspired from @darius gist mod: https://gist.github.com/paulirish/1579671#comment-837945
|
36
|
+
if (!requestAnimationFrame || !cancelAnimationFrame) {
|
37
|
+
requestAnimationFrame = function(callback) {
|
38
|
+
var now = +Date.now(),
|
39
|
+
nextTime = Math.max(lastTime + 16, now);
|
40
|
+
return setTimeout(function() {
|
41
|
+
callback(lastTime = nextTime);
|
42
|
+
}, nextTime - now);
|
43
|
+
};
|
44
|
+
|
45
|
+
cancelAnimationFrame = clearTimeout;
|
46
|
+
}
|
47
|
+
|
48
|
+
// export to window
|
49
|
+
window.requestAnimationFrame = requestAnimationFrame;
|
50
|
+
window.cancelAnimationFrame = cancelAnimationFrame;
|
51
|
+
}(window));
|
52
|
+
|
53
|
+
|
54
|
+
// Unique ID
|
55
|
+
Materialize.guid = (function() {
|
56
|
+
function s4() {
|
57
|
+
return Math.floor((1 + Math.random()) * 0x10000)
|
58
|
+
.toString(16)
|
59
|
+
.substring(1);
|
60
|
+
}
|
61
|
+
return function() {
|
62
|
+
return s4() + s4() + '-' + s4() + '-' + s4() + '-' +
|
63
|
+
s4() + '-' + s4() + s4() + s4();
|
64
|
+
};
|
65
|
+
})();
|
66
|
+
|
67
|
+
/**
|
68
|
+
* Escapes hash from special characters
|
69
|
+
* @param {string} hash String returned from this.hash
|
70
|
+
* @returns {string}
|
71
|
+
*/
|
72
|
+
Materialize.escapeHash = function(hash) {
|
73
|
+
return hash.replace( /(:|\.|\[|\]|,|=)/g, "\\$1" );
|
74
|
+
};
|
75
|
+
|
76
|
+
Materialize.elementOrParentIsFixed = function(element) {
|
77
|
+
var $element = $(element);
|
78
|
+
var $checkElements = $element.add($element.parents());
|
79
|
+
var isFixed = false;
|
80
|
+
$checkElements.each(function(){
|
81
|
+
if ($(this).css("position") === "fixed") {
|
82
|
+
isFixed = true;
|
83
|
+
return false;
|
84
|
+
}
|
85
|
+
});
|
86
|
+
return isFixed;
|
87
|
+
};
|
88
|
+
|
89
|
+
// Velocity has conflicts when loaded with jQuery, this will check for it
|
90
|
+
// First, check if in noConflict mode
|
91
|
+
var Vel;
|
92
|
+
if (jQuery) {
|
93
|
+
Vel = jQuery.Velocity;
|
94
|
+
} else if ($) {
|
95
|
+
Vel = $.Velocity;
|
96
|
+
} else {
|
97
|
+
Vel = Velocity;
|
98
|
+
}
|
@@ -0,0 +1 @@
|
|
1
|
+
!function(a,b,c,d){"use strict";function k(a,b,c){return setTimeout(q(a,c),b)}function l(a,b,c){return Array.isArray(a)?(m(a,c[b],c),!0):!1}function m(a,b,c){var e;if(a)if(a.forEach)a.forEach(b,c);else if(a.length!==d)for(e=0;e<a.length;)b.call(c,a[e],e,a),e++;else for(e in a)a.hasOwnProperty(e)&&b.call(c,a[e],e,a)}function n(a,b,c){for(var e=Object.keys(b),f=0;f<e.length;)(!c||c&&a[e[f]]===d)&&(a[e[f]]=b[e[f]]),f++;return a}function o(a,b){return n(a,b,!0)}function p(a,b,c){var e,d=b.prototype;e=a.prototype=Object.create(d),e.constructor=a,e._super=d,c&&n(e,c)}function q(a,b){return function(){return a.apply(b,arguments)}}function r(a,b){return typeof a==g?a.apply(b?b[0]||d:d,b):a}function s(a,b){return a===d?b:a}function t(a,b,c){m(x(b),function(b){a.addEventListener(b,c,!1)})}function u(a,b,c){m(x(b),function(b){a.removeEventListener(b,c,!1)})}function v(a,b){for(;a;){if(a==b)return!0;a=a.parentNode}return!1}function w(a,b){return a.indexOf(b)>-1}function x(a){return a.trim().split(/\s+/g)}function y(a,b,c){if(a.indexOf&&!c)return a.indexOf(b);for(var d=0;d<a.length;){if(c&&a[d][c]==b||!c&&a[d]===b)return d;d++}return-1}function z(a){return Array.prototype.slice.call(a,0)}function A(a,b,c){for(var d=[],e=[],f=0;f<a.length;){var g=b?a[f][b]:a[f];y(e,g)<0&&d.push(a[f]),e[f]=g,f++}return c&&(d=b?d.sort(function(a,c){return a[b]>c[b]}):d.sort()),d}function B(a,b){for(var c,f,g=b[0].toUpperCase()+b.slice(1),h=0;h<e.length;){if(c=e[h],f=c?c+g:b,f in a)return f;h++}return d}function D(){return C++}function E(a){var b=a.ownerDocument;return b.defaultView||b.parentWindow}function ab(a,b){var c=this;this.manager=a,this.callback=b,this.element=a.element,this.target=a.options.inputTarget,this.domHandler=function(b){r(a.options.enable,[a])&&c.handler(b)},this.init()}function bb(a){var b,c=a.options.inputClass;return b=c?c:H?wb:I?Eb:G?Gb:rb,new b(a,cb)}function cb(a,b,c){var d=c.pointers.length,e=c.changedPointers.length,f=b&O&&0===d-e,g=b&(Q|R)&&0===d-e;c.isFirst=!!f,c.isFinal=!!g,f&&(a.session={}),c.eventType=b,db(a,c),a.emit("hammer.input",c),a.recognize(c),a.session.prevInput=c}function db(a,b){var c=a.session,d=b.pointers,e=d.length;c.firstInput||(c.firstInput=gb(b)),e>1&&!c.firstMultiple?c.firstMultiple=gb(b):1===e&&(c.firstMultiple=!1);var f=c.firstInput,g=c.firstMultiple,h=g?g.center:f.center,i=b.center=hb(d);b.timeStamp=j(),b.deltaTime=b.timeStamp-f.timeStamp,b.angle=lb(h,i),b.distance=kb(h,i),eb(c,b),b.offsetDirection=jb(b.deltaX,b.deltaY),b.scale=g?nb(g.pointers,d):1,b.rotation=g?mb(g.pointers,d):0,fb(c,b);var k=a.element;v(b.srcEvent.target,k)&&(k=b.srcEvent.target),b.target=k}function eb(a,b){var c=b.center,d=a.offsetDelta||{},e=a.prevDelta||{},f=a.prevInput||{};(b.eventType===O||f.eventType===Q)&&(e=a.prevDelta={x:f.deltaX||0,y:f.deltaY||0},d=a.offsetDelta={x:c.x,y:c.y}),b.deltaX=e.x+(c.x-d.x),b.deltaY=e.y+(c.y-d.y)}function fb(a,b){var f,g,h,j,c=a.lastInterval||b,e=b.timeStamp-c.timeStamp;if(b.eventType!=R&&(e>N||c.velocity===d)){var k=c.deltaX-b.deltaX,l=c.deltaY-b.deltaY,m=ib(e,k,l);g=m.x,h=m.y,f=i(m.x)>i(m.y)?m.x:m.y,j=jb(k,l),a.lastInterval=b}else f=c.velocity,g=c.velocityX,h=c.velocityY,j=c.direction;b.velocity=f,b.velocityX=g,b.velocityY=h,b.direction=j}function gb(a){for(var b=[],c=0;c<a.pointers.length;)b[c]={clientX:h(a.pointers[c].clientX),clientY:h(a.pointers[c].clientY)},c++;return{timeStamp:j(),pointers:b,center:hb(b),deltaX:a.deltaX,deltaY:a.deltaY}}function hb(a){var b=a.length;if(1===b)return{x:h(a[0].clientX),y:h(a[0].clientY)};for(var c=0,d=0,e=0;b>e;)c+=a[e].clientX,d+=a[e].clientY,e++;return{x:h(c/b),y:h(d/b)}}function ib(a,b,c){return{x:b/a||0,y:c/a||0}}function jb(a,b){return a===b?S:i(a)>=i(b)?a>0?T:U:b>0?V:W}function kb(a,b,c){c||(c=$);var d=b[c[0]]-a[c[0]],e=b[c[1]]-a[c[1]];return Math.sqrt(d*d+e*e)}function lb(a,b,c){c||(c=$);var d=b[c[0]]-a[c[0]],e=b[c[1]]-a[c[1]];return 180*Math.atan2(e,d)/Math.PI}function mb(a,b){return lb(b[1],b[0],_)-lb(a[1],a[0],_)}function nb(a,b){return kb(b[0],b[1],_)/kb(a[0],a[1],_)}function rb(){this.evEl=pb,this.evWin=qb,this.allow=!0,this.pressed=!1,ab.apply(this,arguments)}function wb(){this.evEl=ub,this.evWin=vb,ab.apply(this,arguments),this.store=this.manager.session.pointerEvents=[]}function Ab(){this.evTarget=yb,this.evWin=zb,this.started=!1,ab.apply(this,arguments)}function Bb(a,b){var c=z(a.touches),d=z(a.changedTouches);return b&(Q|R)&&(c=A(c.concat(d),"identifier",!0)),[c,d]}function Eb(){this.evTarget=Db,this.targetIds={},ab.apply(this,arguments)}function Fb(a,b){var c=z(a.touches),d=this.targetIds;if(b&(O|P)&&1===c.length)return d[c[0].identifier]=!0,[c,c];var e,f,g=z(a.changedTouches),h=[],i=this.target;if(f=c.filter(function(a){return v(a.target,i)}),b===O)for(e=0;e<f.length;)d[f[e].identifier]=!0,e++;for(e=0;e<g.length;)d[g[e].identifier]&&h.push(g[e]),b&(Q|R)&&delete d[g[e].identifier],e++;return h.length?[A(f.concat(h),"identifier",!0),h]:void 0}function Gb(){ab.apply(this,arguments);var a=q(this.handler,this);this.touch=new Eb(this.manager,a),this.mouse=new rb(this.manager,a)}function Pb(a,b){this.manager=a,this.set(b)}function Qb(a){if(w(a,Mb))return Mb;var b=w(a,Nb),c=w(a,Ob);return b&&c?Nb+" "+Ob:b||c?b?Nb:Ob:w(a,Lb)?Lb:Kb}function Yb(a){this.id=D(),this.manager=null,this.options=o(a||{},this.defaults),this.options.enable=s(this.options.enable,!0),this.state=Rb,this.simultaneous={},this.requireFail=[]}function Zb(a){return a&Wb?"cancel":a&Ub?"end":a&Tb?"move":a&Sb?"start":""}function $b(a){return a==W?"down":a==V?"up":a==T?"left":a==U?"right":""}function _b(a,b){var c=b.manager;return c?c.get(a):a}function ac(){Yb.apply(this,arguments)}function bc(){ac.apply(this,arguments),this.pX=null,this.pY=null}function cc(){ac.apply(this,arguments)}function dc(){Yb.apply(this,arguments),this._timer=null,this._input=null}function ec(){ac.apply(this,arguments)}function fc(){ac.apply(this,arguments)}function gc(){Yb.apply(this,arguments),this.pTime=!1,this.pCenter=!1,this._timer=null,this._input=null,this.count=0}function hc(a,b){return b=b||{},b.recognizers=s(b.recognizers,hc.defaults.preset),new kc(a,b)}function kc(a,b){b=b||{},this.options=o(b,hc.defaults),this.options.inputTarget=this.options.inputTarget||a,this.handlers={},this.session={},this.recognizers=[],this.element=a,this.input=bb(this),this.touchAction=new Pb(this,this.options.touchAction),lc(this,!0),m(b.recognizers,function(a){var b=this.add(new a[0](a[1]));a[2]&&b.recognizeWith(a[2]),a[3]&&b.requireFailure(a[3])},this)}function lc(a,b){var c=a.element;m(a.options.cssProps,function(a,d){c.style[B(c.style,d)]=b?a:""})}function mc(a,c){var d=b.createEvent("Event");d.initEvent(a,!0,!0),d.gesture=c,c.target.dispatchEvent(d)}var e=["","webkit","moz","MS","ms","o"],f=b.createElement("div"),g="function",h=Math.round,i=Math.abs,j=Date.now,C=1,F=/mobile|tablet|ip(ad|hone|od)|android/i,G="ontouchstart"in a,H=B(a,"PointerEvent")!==d,I=G&&F.test(navigator.userAgent),J="touch",K="pen",L="mouse",M="kinect",N=25,O=1,P=2,Q=4,R=8,S=1,T=2,U=4,V=8,W=16,X=T|U,Y=V|W,Z=X|Y,$=["x","y"],_=["clientX","clientY"];ab.prototype={handler:function(){},init:function(){this.evEl&&t(this.element,this.evEl,this.domHandler),this.evTarget&&t(this.target,this.evTarget,this.domHandler),this.evWin&&t(E(this.element),this.evWin,this.domHandler)},destroy:function(){this.evEl&&u(this.element,this.evEl,this.domHandler),this.evTarget&&u(this.target,this.evTarget,this.domHandler),this.evWin&&u(E(this.element),this.evWin,this.domHandler)}};var ob={mousedown:O,mousemove:P,mouseup:Q},pb="mousedown",qb="mousemove mouseup";p(rb,ab,{handler:function(a){var b=ob[a.type];b&O&&0===a.button&&(this.pressed=!0),b&P&&1!==a.which&&(b=Q),this.pressed&&this.allow&&(b&Q&&(this.pressed=!1),this.callback(this.manager,b,{pointers:[a],changedPointers:[a],pointerType:L,srcEvent:a}))}});var sb={pointerdown:O,pointermove:P,pointerup:Q,pointercancel:R,pointerout:R},tb={2:J,3:K,4:L,5:M},ub="pointerdown",vb="pointermove pointerup pointercancel";a.MSPointerEvent&&(ub="MSPointerDown",vb="MSPointerMove MSPointerUp MSPointerCancel"),p(wb,ab,{handler:function(a){var b=this.store,c=!1,d=a.type.toLowerCase().replace("ms",""),e=sb[d],f=tb[a.pointerType]||a.pointerType,g=f==J,h=y(b,a.pointerId,"pointerId");e&O&&(0===a.button||g)?0>h&&(b.push(a),h=b.length-1):e&(Q|R)&&(c=!0),0>h||(b[h]=a,this.callback(this.manager,e,{pointers:b,changedPointers:[a],pointerType:f,srcEvent:a}),c&&b.splice(h,1))}});var xb={touchstart:O,touchmove:P,touchend:Q,touchcancel:R},yb="touchstart",zb="touchstart touchmove touchend touchcancel";p(Ab,ab,{handler:function(a){var b=xb[a.type];if(b===O&&(this.started=!0),this.started){var c=Bb.call(this,a,b);b&(Q|R)&&0===c[0].length-c[1].length&&(this.started=!1),this.callback(this.manager,b,{pointers:c[0],changedPointers:c[1],pointerType:J,srcEvent:a})}}});var Cb={touchstart:O,touchmove:P,touchend:Q,touchcancel:R},Db="touchstart touchmove touchend touchcancel";p(Eb,ab,{handler:function(a){var b=Cb[a.type],c=Fb.call(this,a,b);c&&this.callback(this.manager,b,{pointers:c[0],changedPointers:c[1],pointerType:J,srcEvent:a})}}),p(Gb,ab,{handler:function(a,b,c){var d=c.pointerType==J,e=c.pointerType==L;if(d)this.mouse.allow=!1;else if(e&&!this.mouse.allow)return;b&(Q|R)&&(this.mouse.allow=!0),this.callback(a,b,c)},destroy:function(){this.touch.destroy(),this.mouse.destroy()}});var Hb=B(f.style,"touchAction"),Ib=Hb!==d,Jb="compute",Kb="auto",Lb="manipulation",Mb="none",Nb="pan-x",Ob="pan-y";Pb.prototype={set:function(a){a==Jb&&(a=this.compute()),Ib&&(this.manager.element.style[Hb]=a),this.actions=a.toLowerCase().trim()},update:function(){this.set(this.manager.options.touchAction)},compute:function(){var a=[];return m(this.manager.recognizers,function(b){r(b.options.enable,[b])&&(a=a.concat(b.getTouchAction()))}),Qb(a.join(" "))},preventDefaults:function(a){if(!Ib){var b=a.srcEvent,c=a.offsetDirection;if(this.manager.session.prevented)return b.preventDefault(),void 0;var d=this.actions,e=w(d,Mb),f=w(d,Ob),g=w(d,Nb);return e||f&&c&X||g&&c&Y?this.preventSrc(b):void 0}},preventSrc:function(a){this.manager.session.prevented=!0,a.preventDefault()}};var Rb=1,Sb=2,Tb=4,Ub=8,Vb=Ub,Wb=16,Xb=32;Yb.prototype={defaults:{},set:function(a){return n(this.options,a),this.manager&&this.manager.touchAction.update(),this},recognizeWith:function(a){if(l(a,"recognizeWith",this))return this;var b=this.simultaneous;return a=_b(a,this),b[a.id]||(b[a.id]=a,a.recognizeWith(this)),this},dropRecognizeWith:function(a){return l(a,"dropRecognizeWith",this)?this:(a=_b(a,this),delete this.simultaneous[a.id],this)},requireFailure:function(a){if(l(a,"requireFailure",this))return this;var b=this.requireFail;return a=_b(a,this),-1===y(b,a)&&(b.push(a),a.requireFailure(this)),this},dropRequireFailure:function(a){if(l(a,"dropRequireFailure",this))return this;a=_b(a,this);var b=y(this.requireFail,a);return b>-1&&this.requireFail.splice(b,1),this},hasRequireFailures:function(){return this.requireFail.length>0},canRecognizeWith:function(a){return!!this.simultaneous[a.id]},emit:function(a){function d(d){b.manager.emit(b.options.event+(d?Zb(c):""),a)}var b=this,c=this.state;Ub>c&&d(!0),d(),c>=Ub&&d(!0)},tryEmit:function(a){return this.canEmit()?this.emit(a):(this.state=Xb,void 0)},canEmit:function(){for(var a=0;a<this.requireFail.length;){if(!(this.requireFail[a].state&(Xb|Rb)))return!1;a++}return!0},recognize:function(a){var b=n({},a);return r(this.options.enable,[this,b])?(this.state&(Vb|Wb|Xb)&&(this.state=Rb),this.state=this.process(b),this.state&(Sb|Tb|Ub|Wb)&&this.tryEmit(b),void 0):(this.reset(),this.state=Xb,void 0)},process:function(){},getTouchAction:function(){},reset:function(){}},p(ac,Yb,{defaults:{pointers:1},attrTest:function(a){var b=this.options.pointers;return 0===b||a.pointers.length===b},process:function(a){var b=this.state,c=a.eventType,d=b&(Sb|Tb),e=this.attrTest(a);return d&&(c&R||!e)?b|Wb:d||e?c&Q?b|Ub:b&Sb?b|Tb:Sb:Xb}}),p(bc,ac,{defaults:{event:"pan",threshold:10,pointers:1,direction:Z},getTouchAction:function(){var a=this.options.direction,b=[];return a&X&&b.push(Ob),a&Y&&b.push(Nb),b},directionTest:function(a){var b=this.options,c=!0,d=a.distance,e=a.direction,f=a.deltaX,g=a.deltaY;return e&b.direction||(b.direction&X?(e=0===f?S:0>f?T:U,c=f!=this.pX,d=Math.abs(a.deltaX)):(e=0===g?S:0>g?V:W,c=g!=this.pY,d=Math.abs(a.deltaY))),a.direction=e,c&&d>b.threshold&&e&b.direction},attrTest:function(a){return ac.prototype.attrTest.call(this,a)&&(this.state&Sb||!(this.state&Sb)&&this.directionTest(a))},emit:function(a){this.pX=a.deltaX,this.pY=a.deltaY;var b=$b(a.direction);b&&this.manager.emit(this.options.event+b,a),this._super.emit.call(this,a)}}),p(cc,ac,{defaults:{event:"pinch",threshold:0,pointers:2},getTouchAction:function(){return[Mb]},attrTest:function(a){return this._super.attrTest.call(this,a)&&(Math.abs(a.scale-1)>this.options.threshold||this.state&Sb)},emit:function(a){if(this._super.emit.call(this,a),1!==a.scale){var b=a.scale<1?"in":"out";this.manager.emit(this.options.event+b,a)}}}),p(dc,Yb,{defaults:{event:"press",pointers:1,time:500,threshold:5},getTouchAction:function(){return[Kb]},process:function(a){var b=this.options,c=a.pointers.length===b.pointers,d=a.distance<b.threshold,e=a.deltaTime>b.time;if(this._input=a,!d||!c||a.eventType&(Q|R)&&!e)this.reset();else if(a.eventType&O)this.reset(),this._timer=k(function(){this.state=Vb,this.tryEmit()},b.time,this);else if(a.eventType&Q)return Vb;return Xb},reset:function(){clearTimeout(this._timer)},emit:function(a){this.state===Vb&&(a&&a.eventType&Q?this.manager.emit(this.options.event+"up",a):(this._input.timeStamp=j(),this.manager.emit(this.options.event,this._input)))}}),p(ec,ac,{defaults:{event:"rotate",threshold:0,pointers:2},getTouchAction:function(){return[Mb]},attrTest:function(a){return this._super.attrTest.call(this,a)&&(Math.abs(a.rotation)>this.options.threshold||this.state&Sb)}}),p(fc,ac,{defaults:{event:"swipe",threshold:10,velocity:.65,direction:X|Y,pointers:1},getTouchAction:function(){return bc.prototype.getTouchAction.call(this)},attrTest:function(a){var c,b=this.options.direction;return b&(X|Y)?c=a.velocity:b&X?c=a.velocityX:b&Y&&(c=a.velocityY),this._super.attrTest.call(this,a)&&b&a.direction&&a.distance>this.options.threshold&&i(c)>this.options.velocity&&a.eventType&Q},emit:function(a){var b=$b(a.direction);b&&this.manager.emit(this.options.event+b,a),this.manager.emit(this.options.event,a)}}),p(gc,Yb,{defaults:{event:"tap",pointers:1,taps:1,interval:300,time:250,threshold:2,posThreshold:10},getTouchAction:function(){return[Lb]},process:function(a){var b=this.options,c=a.pointers.length===b.pointers,d=a.distance<b.threshold,e=a.deltaTime<b.time;if(this.reset(),a.eventType&O&&0===this.count)return this.failTimeout();if(d&&e&&c){if(a.eventType!=Q)return this.failTimeout();var f=this.pTime?a.timeStamp-this.pTime<b.interval:!0,g=!this.pCenter||kb(this.pCenter,a.center)<b.posThreshold;this.pTime=a.timeStamp,this.pCenter=a.center,g&&f?this.count+=1:this.count=1,this._input=a;var h=this.count%b.taps;if(0===h)return this.hasRequireFailures()?(this._timer=k(function(){this.state=Vb,this.tryEmit()},b.interval,this),Sb):Vb}return Xb},failTimeout:function(){return this._timer=k(function(){this.state=Xb},this.options.interval,this),Xb},reset:function(){clearTimeout(this._timer)},emit:function(){this.state==Vb&&(this._input.tapCount=this.count,this.manager.emit(this.options.event,this._input))}}),hc.VERSION="2.0.4",hc.defaults={domEvents:!1,touchAction:Jb,enable:!0,inputTarget:null,inputClass:null,preset:[[ec,{enable:!1}],[cc,{enable:!1},["rotate"]],[fc,{direction:X}],[bc,{direction:X},["swipe"]],[gc],[gc,{event:"doubletap",taps:2},["tap"]],[dc]],cssProps:{userSelect:"default",touchSelect:"none",touchCallout:"none",contentZooming:"none",userDrag:"none",tapHighlightColor:"rgba(0,0,0,0)"}};var ic=1,jc=2;kc.prototype={set:function(a){return n(this.options,a),a.touchAction&&this.touchAction.update(),a.inputTarget&&(this.input.destroy(),this.input.target=a.inputTarget,this.input.init()),this},stop:function(a){this.session.stopped=a?jc:ic},recognize:function(a){var b=this.session;if(!b.stopped){this.touchAction.preventDefaults(a);var c,d=this.recognizers,e=b.curRecognizer;(!e||e&&e.state&Vb)&&(e=b.curRecognizer=null);for(var f=0;f<d.length;)c=d[f],b.stopped===jc||e&&c!=e&&!c.canRecognizeWith(e)?c.reset():c.recognize(a),!e&&c.state&(Sb|Tb|Ub)&&(e=b.curRecognizer=c),f++}},get:function(a){if(a instanceof Yb)return a;for(var b=this.recognizers,c=0;c<b.length;c++)if(b[c].options.event==a)return b[c];return null},add:function(a){if(l(a,"add",this))return this;var b=this.get(a.options.event);return b&&this.remove(b),this.recognizers.push(a),a.manager=this,this.touchAction.update(),a},remove:function(a){if(l(a,"remove",this))return this;var b=this.recognizers;return a=this.get(a),b.splice(y(b,a),1),this.touchAction.update(),this},on:function(a,b){var c=this.handlers;return m(x(a),function(a){c[a]=c[a]||[],c[a].push(b)}),this},off:function(a,b){var c=this.handlers;return m(x(a),function(a){b?c[a].splice(y(c[a],b),1):delete c[a]}),this},emit:function(a,b){this.options.domEvents&&mc(a,b);var c=this.handlers[a]&&this.handlers[a].slice();if(c&&c.length){b.type=a,b.preventDefault=function(){b.srcEvent.preventDefault()};for(var d=0;d<c.length;)c[d](b),d++}},destroy:function(){this.element&&lc(this,!1),this.handlers={},this.session={},this.input.destroy(),this.element=null}},n(hc,{INPUT_START:O,INPUT_MOVE:P,INPUT_END:Q,INPUT_CANCEL:R,STATE_POSSIBLE:Rb,STATE_BEGAN:Sb,STATE_CHANGED:Tb,STATE_ENDED:Ub,STATE_RECOGNIZED:Vb,STATE_CANCELLED:Wb,STATE_FAILED:Xb,DIRECTION_NONE:S,DIRECTION_LEFT:T,DIRECTION_RIGHT:U,DIRECTION_UP:V,DIRECTION_DOWN:W,DIRECTION_HORIZONTAL:X,DIRECTION_VERTICAL:Y,DIRECTION_ALL:Z,Manager:kc,Input:ab,TouchAction:Pb,TouchInput:Eb,MouseInput:rb,PointerEventInput:wb,TouchMouseInput:Gb,SingleTouchInput:Ab,Recognizer:Yb,AttrRecognizer:ac,Tap:gc,Pan:bc,Swipe:fc,Pinch:cc,Rotate:ec,Press:dc,on:t,off:u,each:m,merge:o,extend:n,inherit:p,bindFn:q,prefixed:B}),typeof define==g&&define.amd?define(function(){return hc}):"undefined"!=typeof module&&module.exports?module.exports=hc:a[c]=hc}(window,document,"Hammer");
|
@@ -0,0 +1,11 @@
|
|
1
|
+
// Check for jQuery.
|
2
|
+
if (typeof(jQuery) === 'undefined') {
|
3
|
+
var jQuery;
|
4
|
+
// Check if require is a defined function.
|
5
|
+
if (typeof(require) === 'function') {
|
6
|
+
jQuery = $ = require('jquery');
|
7
|
+
// Else use the dollar sign alias.
|
8
|
+
} else {
|
9
|
+
jQuery = $;
|
10
|
+
}
|
11
|
+
}
|
@@ -0,0 +1,205 @@
|
|
1
|
+
/*
|
2
|
+
* jQuery Easing v1.3 - http://gsgd.co.uk/sandbox/jquery/easing/
|
3
|
+
*
|
4
|
+
* Uses the built in easing capabilities added In jQuery 1.1
|
5
|
+
* to offer multiple easing options
|
6
|
+
*
|
7
|
+
* TERMS OF USE - jQuery Easing
|
8
|
+
*
|
9
|
+
* Open source under the BSD License.
|
10
|
+
*
|
11
|
+
* Copyright © 2008 George McGinley Smith
|
12
|
+
* All rights reserved.
|
13
|
+
*
|
14
|
+
* Redistribution and use in source and binary forms, with or without modification,
|
15
|
+
* are permitted provided that the following conditions are met:
|
16
|
+
*
|
17
|
+
* Redistributions of source code must retain the above copyright notice, this list of
|
18
|
+
* conditions and the following disclaimer.
|
19
|
+
* Redistributions in binary form must reproduce the above copyright notice, this list
|
20
|
+
* of conditions and the following disclaimer in the documentation and/or other materials
|
21
|
+
* provided with the distribution.
|
22
|
+
*
|
23
|
+
* Neither the name of the author nor the names of contributors may be used to endorse
|
24
|
+
* or promote products derived from this software without specific prior written permission.
|
25
|
+
*
|
26
|
+
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY
|
27
|
+
* EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
|
28
|
+
* MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
|
29
|
+
* COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
|
30
|
+
* EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE
|
31
|
+
* GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
|
32
|
+
* AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
|
33
|
+
* NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
|
34
|
+
* OF THE POSSIBILITY OF SUCH DAMAGE.
|
35
|
+
*
|
36
|
+
*/
|
37
|
+
|
38
|
+
// t: current time, b: begInnIng value, c: change In value, d: duration
|
39
|
+
jQuery.easing['jswing'] = jQuery.easing['swing'];
|
40
|
+
|
41
|
+
jQuery.extend( jQuery.easing,
|
42
|
+
{
|
43
|
+
def: 'easeOutQuad',
|
44
|
+
swing: function (x, t, b, c, d) {
|
45
|
+
//alert(jQuery.easing.default);
|
46
|
+
return jQuery.easing[jQuery.easing.def](x, t, b, c, d);
|
47
|
+
},
|
48
|
+
easeInQuad: function (x, t, b, c, d) {
|
49
|
+
return c*(t/=d)*t + b;
|
50
|
+
},
|
51
|
+
easeOutQuad: function (x, t, b, c, d) {
|
52
|
+
return -c *(t/=d)*(t-2) + b;
|
53
|
+
},
|
54
|
+
easeInOutQuad: function (x, t, b, c, d) {
|
55
|
+
if ((t/=d/2) < 1) return c/2*t*t + b;
|
56
|
+
return -c/2 * ((--t)*(t-2) - 1) + b;
|
57
|
+
},
|
58
|
+
easeInCubic: function (x, t, b, c, d) {
|
59
|
+
return c*(t/=d)*t*t + b;
|
60
|
+
},
|
61
|
+
easeOutCubic: function (x, t, b, c, d) {
|
62
|
+
return c*((t=t/d-1)*t*t + 1) + b;
|
63
|
+
},
|
64
|
+
easeInOutCubic: function (x, t, b, c, d) {
|
65
|
+
if ((t/=d/2) < 1) return c/2*t*t*t + b;
|
66
|
+
return c/2*((t-=2)*t*t + 2) + b;
|
67
|
+
},
|
68
|
+
easeInQuart: function (x, t, b, c, d) {
|
69
|
+
return c*(t/=d)*t*t*t + b;
|
70
|
+
},
|
71
|
+
easeOutQuart: function (x, t, b, c, d) {
|
72
|
+
return -c * ((t=t/d-1)*t*t*t - 1) + b;
|
73
|
+
},
|
74
|
+
easeInOutQuart: function (x, t, b, c, d) {
|
75
|
+
if ((t/=d/2) < 1) return c/2*t*t*t*t + b;
|
76
|
+
return -c/2 * ((t-=2)*t*t*t - 2) + b;
|
77
|
+
},
|
78
|
+
easeInQuint: function (x, t, b, c, d) {
|
79
|
+
return c*(t/=d)*t*t*t*t + b;
|
80
|
+
},
|
81
|
+
easeOutQuint: function (x, t, b, c, d) {
|
82
|
+
return c*((t=t/d-1)*t*t*t*t + 1) + b;
|
83
|
+
},
|
84
|
+
easeInOutQuint: function (x, t, b, c, d) {
|
85
|
+
if ((t/=d/2) < 1) return c/2*t*t*t*t*t + b;
|
86
|
+
return c/2*((t-=2)*t*t*t*t + 2) + b;
|
87
|
+
},
|
88
|
+
easeInSine: function (x, t, b, c, d) {
|
89
|
+
return -c * Math.cos(t/d * (Math.PI/2)) + c + b;
|
90
|
+
},
|
91
|
+
easeOutSine: function (x, t, b, c, d) {
|
92
|
+
return c * Math.sin(t/d * (Math.PI/2)) + b;
|
93
|
+
},
|
94
|
+
easeInOutSine: function (x, t, b, c, d) {
|
95
|
+
return -c/2 * (Math.cos(Math.PI*t/d) - 1) + b;
|
96
|
+
},
|
97
|
+
easeInExpo: function (x, t, b, c, d) {
|
98
|
+
return (t==0) ? b : c * Math.pow(2, 10 * (t/d - 1)) + b;
|
99
|
+
},
|
100
|
+
easeOutExpo: function (x, t, b, c, d) {
|
101
|
+
return (t==d) ? b+c : c * (-Math.pow(2, -10 * t/d) + 1) + b;
|
102
|
+
},
|
103
|
+
easeInOutExpo: function (x, t, b, c, d) {
|
104
|
+
if (t==0) return b;
|
105
|
+
if (t==d) return b+c;
|
106
|
+
if ((t/=d/2) < 1) return c/2 * Math.pow(2, 10 * (t - 1)) + b;
|
107
|
+
return c/2 * (-Math.pow(2, -10 * --t) + 2) + b;
|
108
|
+
},
|
109
|
+
easeInCirc: function (x, t, b, c, d) {
|
110
|
+
return -c * (Math.sqrt(1 - (t/=d)*t) - 1) + b;
|
111
|
+
},
|
112
|
+
easeOutCirc: function (x, t, b, c, d) {
|
113
|
+
return c * Math.sqrt(1 - (t=t/d-1)*t) + b;
|
114
|
+
},
|
115
|
+
easeInOutCirc: function (x, t, b, c, d) {
|
116
|
+
if ((t/=d/2) < 1) return -c/2 * (Math.sqrt(1 - t*t) - 1) + b;
|
117
|
+
return c/2 * (Math.sqrt(1 - (t-=2)*t) + 1) + b;
|
118
|
+
},
|
119
|
+
easeInElastic: function (x, t, b, c, d) {
|
120
|
+
var s=1.70158;var p=0;var a=c;
|
121
|
+
if (t==0) return b; if ((t/=d)==1) return b+c; if (!p) p=d*.3;
|
122
|
+
if (a < Math.abs(c)) { a=c; var s=p/4; }
|
123
|
+
else var s = p/(2*Math.PI) * Math.asin (c/a);
|
124
|
+
return -(a*Math.pow(2,10*(t-=1)) * Math.sin( (t*d-s)*(2*Math.PI)/p )) + b;
|
125
|
+
},
|
126
|
+
easeOutElastic: function (x, t, b, c, d) {
|
127
|
+
var s=1.70158;var p=0;var a=c;
|
128
|
+
if (t==0) return b; if ((t/=d)==1) return b+c; if (!p) p=d*.3;
|
129
|
+
if (a < Math.abs(c)) { a=c; var s=p/4; }
|
130
|
+
else var s = p/(2*Math.PI) * Math.asin (c/a);
|
131
|
+
return a*Math.pow(2,-10*t) * Math.sin( (t*d-s)*(2*Math.PI)/p ) + c + b;
|
132
|
+
},
|
133
|
+
easeInOutElastic: function (x, t, b, c, d) {
|
134
|
+
var s=1.70158;var p=0;var a=c;
|
135
|
+
if (t==0) return b; if ((t/=d/2)==2) return b+c; if (!p) p=d*(.3*1.5);
|
136
|
+
if (a < Math.abs(c)) { a=c; var s=p/4; }
|
137
|
+
else var s = p/(2*Math.PI) * Math.asin (c/a);
|
138
|
+
if (t < 1) return -.5*(a*Math.pow(2,10*(t-=1)) * Math.sin( (t*d-s)*(2*Math.PI)/p )) + b;
|
139
|
+
return a*Math.pow(2,-10*(t-=1)) * Math.sin( (t*d-s)*(2*Math.PI)/p )*.5 + c + b;
|
140
|
+
},
|
141
|
+
easeInBack: function (x, t, b, c, d, s) {
|
142
|
+
if (s == undefined) s = 1.70158;
|
143
|
+
return c*(t/=d)*t*((s+1)*t - s) + b;
|
144
|
+
},
|
145
|
+
easeOutBack: function (x, t, b, c, d, s) {
|
146
|
+
if (s == undefined) s = 1.70158;
|
147
|
+
return c*((t=t/d-1)*t*((s+1)*t + s) + 1) + b;
|
148
|
+
},
|
149
|
+
easeInOutBack: function (x, t, b, c, d, s) {
|
150
|
+
if (s == undefined) s = 1.70158;
|
151
|
+
if ((t/=d/2) < 1) return c/2*(t*t*(((s*=(1.525))+1)*t - s)) + b;
|
152
|
+
return c/2*((t-=2)*t*(((s*=(1.525))+1)*t + s) + 2) + b;
|
153
|
+
},
|
154
|
+
easeInBounce: function (x, t, b, c, d) {
|
155
|
+
return c - jQuery.easing.easeOutBounce (x, d-t, 0, c, d) + b;
|
156
|
+
},
|
157
|
+
easeOutBounce: function (x, t, b, c, d) {
|
158
|
+
if ((t/=d) < (1/2.75)) {
|
159
|
+
return c*(7.5625*t*t) + b;
|
160
|
+
} else if (t < (2/2.75)) {
|
161
|
+
return c*(7.5625*(t-=(1.5/2.75))*t + .75) + b;
|
162
|
+
} else if (t < (2.5/2.75)) {
|
163
|
+
return c*(7.5625*(t-=(2.25/2.75))*t + .9375) + b;
|
164
|
+
} else {
|
165
|
+
return c*(7.5625*(t-=(2.625/2.75))*t + .984375) + b;
|
166
|
+
}
|
167
|
+
},
|
168
|
+
easeInOutBounce: function (x, t, b, c, d) {
|
169
|
+
if (t < d/2) return jQuery.easing.easeInBounce (x, t*2, 0, c, d) * .5 + b;
|
170
|
+
return jQuery.easing.easeOutBounce (x, t*2-d, 0, c, d) * .5 + c*.5 + b;
|
171
|
+
}
|
172
|
+
});
|
173
|
+
|
174
|
+
/*
|
175
|
+
*
|
176
|
+
* TERMS OF USE - EASING EQUATIONS
|
177
|
+
*
|
178
|
+
* Open source under the BSD License.
|
179
|
+
*
|
180
|
+
* Copyright © 2001 Robert Penner
|
181
|
+
* All rights reserved.
|
182
|
+
*
|
183
|
+
* Redistribution and use in source and binary forms, with or without modification,
|
184
|
+
* are permitted provided that the following conditions are met:
|
185
|
+
*
|
186
|
+
* Redistributions of source code must retain the above copyright notice, this list of
|
187
|
+
* conditions and the following disclaimer.
|
188
|
+
* Redistributions in binary form must reproduce the above copyright notice, this list
|
189
|
+
* of conditions and the following disclaimer in the documentation and/or other materials
|
190
|
+
* provided with the distribution.
|
191
|
+
*
|
192
|
+
* Neither the name of the author nor the names of contributors may be used to endorse
|
193
|
+
* or promote products derived from this software without specific prior written permission.
|
194
|
+
*
|
195
|
+
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY
|
196
|
+
* EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
|
197
|
+
* MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
|
198
|
+
* COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
|
199
|
+
* EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE
|
200
|
+
* GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
|
201
|
+
* AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
|
202
|
+
* NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
|
203
|
+
* OF THE POSSIBILITY OF SUCH DAMAGE.
|
204
|
+
*
|
205
|
+
*/
|
@@ -0,0 +1,33 @@
|
|
1
|
+
(function(factory) {
|
2
|
+
if (typeof define === 'function' && define.amd) {
|
3
|
+
define(['jquery', 'hammerjs'], factory);
|
4
|
+
} else if (typeof exports === 'object') {
|
5
|
+
factory(require('jquery'), require('hammerjs'));
|
6
|
+
} else {
|
7
|
+
factory(jQuery, Hammer);
|
8
|
+
}
|
9
|
+
}(function($, Hammer) {
|
10
|
+
function hammerify(el, options) {
|
11
|
+
var $el = $(el);
|
12
|
+
if(!$el.data("hammer")) {
|
13
|
+
$el.data("hammer", new Hammer($el[0], options));
|
14
|
+
}
|
15
|
+
}
|
16
|
+
|
17
|
+
$.fn.hammer = function(options) {
|
18
|
+
return this.each(function() {
|
19
|
+
hammerify(this, options);
|
20
|
+
});
|
21
|
+
};
|
22
|
+
|
23
|
+
// extend the emit method to also trigger jQuery events
|
24
|
+
Hammer.Manager.prototype.emit = (function(originalEmit) {
|
25
|
+
return function(type, data) {
|
26
|
+
originalEmit.call(this, type, data);
|
27
|
+
$(this.element).trigger({
|
28
|
+
type: type,
|
29
|
+
gesture: data
|
30
|
+
});
|
31
|
+
};
|
32
|
+
})(Hammer.Manager.prototype.emit);
|
33
|
+
}));
|
@@ -0,0 +1,269 @@
|
|
1
|
+
(function ($) {
|
2
|
+
|
3
|
+
$.fn.materialbox = function () {
|
4
|
+
|
5
|
+
return this.each(function() {
|
6
|
+
|
7
|
+
if ($(this).hasClass('initialized')) {
|
8
|
+
return;
|
9
|
+
}
|
10
|
+
|
11
|
+
$(this).addClass('initialized');
|
12
|
+
|
13
|
+
var overlayActive = false;
|
14
|
+
var doneAnimating = true;
|
15
|
+
var inDuration = 275;
|
16
|
+
var outDuration = 200;
|
17
|
+
var origin = $(this);
|
18
|
+
var placeholder = $('<div></div>').addClass('material-placeholder');
|
19
|
+
var originalWidth = 0;
|
20
|
+
var originalHeight = 0;
|
21
|
+
var ancestorsChanged;
|
22
|
+
var ancestor;
|
23
|
+
origin.wrap(placeholder);
|
24
|
+
|
25
|
+
|
26
|
+
origin.on('click', function(){
|
27
|
+
var placeholder = origin.parent('.material-placeholder');
|
28
|
+
var windowWidth = window.innerWidth;
|
29
|
+
var windowHeight = window.innerHeight;
|
30
|
+
var originalWidth = origin.width();
|
31
|
+
var originalHeight = origin.height();
|
32
|
+
|
33
|
+
|
34
|
+
// If already modal, return to original
|
35
|
+
if (doneAnimating === false) {
|
36
|
+
returnToOriginal();
|
37
|
+
return false;
|
38
|
+
}
|
39
|
+
else if (overlayActive && doneAnimating===true) {
|
40
|
+
returnToOriginal();
|
41
|
+
return false;
|
42
|
+
}
|
43
|
+
|
44
|
+
|
45
|
+
// Set states
|
46
|
+
doneAnimating = false;
|
47
|
+
origin.addClass('active');
|
48
|
+
overlayActive = true;
|
49
|
+
|
50
|
+
// Set positioning for placeholder
|
51
|
+
placeholder.css({
|
52
|
+
width: placeholder[0].getBoundingClientRect().width,
|
53
|
+
height: placeholder[0].getBoundingClientRect().height,
|
54
|
+
position: 'relative',
|
55
|
+
top: 0,
|
56
|
+
left: 0
|
57
|
+
});
|
58
|
+
|
59
|
+
// Find ancestor with overflow: hidden; and remove it
|
60
|
+
ancestorsChanged = undefined;
|
61
|
+
ancestor = placeholder[0].parentNode;
|
62
|
+
var count = 0;
|
63
|
+
while (ancestor !== null && !$(ancestor).is(document)) {
|
64
|
+
var curr = $(ancestor);
|
65
|
+
if (curr.css('overflow') !== 'visible') {
|
66
|
+
curr.css('overflow', 'visible');
|
67
|
+
if (ancestorsChanged === undefined) {
|
68
|
+
ancestorsChanged = curr;
|
69
|
+
}
|
70
|
+
else {
|
71
|
+
ancestorsChanged = ancestorsChanged.add(curr);
|
72
|
+
}
|
73
|
+
}
|
74
|
+
ancestor = ancestor.parentNode;
|
75
|
+
}
|
76
|
+
|
77
|
+
// Set css on origin
|
78
|
+
origin.css({position: 'absolute', 'z-index': 1000})
|
79
|
+
.data('width', originalWidth)
|
80
|
+
.data('height', originalHeight);
|
81
|
+
|
82
|
+
// Add overlay
|
83
|
+
var overlay = $('<div id="materialbox-overlay"></div>')
|
84
|
+
.css({
|
85
|
+
opacity: 0
|
86
|
+
})
|
87
|
+
.click(function(){
|
88
|
+
if (doneAnimating === true)
|
89
|
+
returnToOriginal();
|
90
|
+
});
|
91
|
+
// Animate Overlay
|
92
|
+
// Put before in origin image to preserve z-index layering.
|
93
|
+
origin.before(overlay);
|
94
|
+
overlay.velocity({opacity: 1},
|
95
|
+
{duration: inDuration, queue: false, easing: 'easeOutQuad'} );
|
96
|
+
|
97
|
+
// Add and animate caption if it exists
|
98
|
+
if (origin.data('caption') !== "") {
|
99
|
+
var $photo_caption = $('<div class="materialbox-caption"></div>');
|
100
|
+
$photo_caption.text(origin.data('caption'));
|
101
|
+
$('body').append($photo_caption);
|
102
|
+
$photo_caption.css({ "display": "inline" });
|
103
|
+
$photo_caption.velocity({opacity: 1}, {duration: inDuration, queue: false, easing: 'easeOutQuad'});
|
104
|
+
}
|
105
|
+
|
106
|
+
// Resize Image
|
107
|
+
var ratio = 0;
|
108
|
+
var widthPercent = originalWidth / windowWidth;
|
109
|
+
var heightPercent = originalHeight / windowHeight;
|
110
|
+
var newWidth = 0;
|
111
|
+
var newHeight = 0;
|
112
|
+
|
113
|
+
if (widthPercent > heightPercent) {
|
114
|
+
ratio = originalHeight / originalWidth;
|
115
|
+
newWidth = windowWidth * 0.9;
|
116
|
+
newHeight = windowWidth * 0.9 * ratio;
|
117
|
+
}
|
118
|
+
else {
|
119
|
+
ratio = originalWidth / originalHeight;
|
120
|
+
newWidth = (windowHeight * 0.9) * ratio;
|
121
|
+
newHeight = windowHeight * 0.9;
|
122
|
+
}
|
123
|
+
|
124
|
+
// Animate image + set z-index
|
125
|
+
if(origin.hasClass('responsive-img')) {
|
126
|
+
origin.velocity({'max-width': newWidth, 'width': originalWidth}, {duration: 0, queue: false,
|
127
|
+
complete: function(){
|
128
|
+
origin.css({left: 0, top: 0})
|
129
|
+
.velocity(
|
130
|
+
{
|
131
|
+
height: newHeight,
|
132
|
+
width: newWidth,
|
133
|
+
left: $(document).scrollLeft() + windowWidth/2 - origin.parent('.material-placeholder').offset().left - newWidth/2,
|
134
|
+
top: $(document).scrollTop() + windowHeight/2 - origin.parent('.material-placeholder').offset().top - newHeight/ 2
|
135
|
+
},
|
136
|
+
{
|
137
|
+
duration: inDuration,
|
138
|
+
queue: false,
|
139
|
+
easing: 'easeOutQuad',
|
140
|
+
complete: function(){doneAnimating = true;}
|
141
|
+
}
|
142
|
+
);
|
143
|
+
} // End Complete
|
144
|
+
}); // End Velocity
|
145
|
+
}
|
146
|
+
else {
|
147
|
+
origin.css('left', 0)
|
148
|
+
.css('top', 0)
|
149
|
+
.velocity(
|
150
|
+
{
|
151
|
+
height: newHeight,
|
152
|
+
width: newWidth,
|
153
|
+
left: $(document).scrollLeft() + windowWidth/2 - origin.parent('.material-placeholder').offset().left - newWidth/2,
|
154
|
+
top: $(document).scrollTop() + windowHeight/2 - origin.parent('.material-placeholder').offset().top - newHeight/ 2
|
155
|
+
},
|
156
|
+
{
|
157
|
+
duration: inDuration,
|
158
|
+
queue: false,
|
159
|
+
easing: 'easeOutQuad',
|
160
|
+
complete: function(){doneAnimating = true;}
|
161
|
+
}
|
162
|
+
); // End Velocity
|
163
|
+
}
|
164
|
+
|
165
|
+
}); // End origin on click
|
166
|
+
|
167
|
+
|
168
|
+
// Return on scroll
|
169
|
+
$(window).scroll(function() {
|
170
|
+
if (overlayActive) {
|
171
|
+
returnToOriginal();
|
172
|
+
}
|
173
|
+
});
|
174
|
+
|
175
|
+
// Return on ESC
|
176
|
+
$(document).keyup(function(e) {
|
177
|
+
|
178
|
+
if (e.keyCode === 27 && doneAnimating === true) { // ESC key
|
179
|
+
if (overlayActive) {
|
180
|
+
returnToOriginal();
|
181
|
+
}
|
182
|
+
}
|
183
|
+
});
|
184
|
+
|
185
|
+
|
186
|
+
// This function returns the modaled image to the original spot
|
187
|
+
function returnToOriginal() {
|
188
|
+
|
189
|
+
doneAnimating = false;
|
190
|
+
|
191
|
+
var placeholder = origin.parent('.material-placeholder');
|
192
|
+
var windowWidth = window.innerWidth;
|
193
|
+
var windowHeight = window.innerHeight;
|
194
|
+
var originalWidth = origin.data('width');
|
195
|
+
var originalHeight = origin.data('height');
|
196
|
+
|
197
|
+
origin.velocity("stop", true);
|
198
|
+
$('#materialbox-overlay').velocity("stop", true);
|
199
|
+
$('.materialbox-caption').velocity("stop", true);
|
200
|
+
|
201
|
+
|
202
|
+
$('#materialbox-overlay').velocity({opacity: 0}, {
|
203
|
+
duration: outDuration, // Delay prevents animation overlapping
|
204
|
+
queue: false, easing: 'easeOutQuad',
|
205
|
+
complete: function(){
|
206
|
+
// Remove Overlay
|
207
|
+
overlayActive = false;
|
208
|
+
$(this).remove();
|
209
|
+
}
|
210
|
+
});
|
211
|
+
|
212
|
+
// Resize Image
|
213
|
+
origin.velocity(
|
214
|
+
{
|
215
|
+
width: originalWidth,
|
216
|
+
height: originalHeight,
|
217
|
+
left: 0,
|
218
|
+
top: 0
|
219
|
+
},
|
220
|
+
{
|
221
|
+
duration: outDuration,
|
222
|
+
queue: false, easing: 'easeOutQuad'
|
223
|
+
}
|
224
|
+
);
|
225
|
+
|
226
|
+
// Remove Caption + reset css settings on image
|
227
|
+
$('.materialbox-caption').velocity({opacity: 0}, {
|
228
|
+
duration: outDuration, // Delay prevents animation overlapping
|
229
|
+
queue: false, easing: 'easeOutQuad',
|
230
|
+
complete: function(){
|
231
|
+
placeholder.css({
|
232
|
+
height: '',
|
233
|
+
width: '',
|
234
|
+
position: '',
|
235
|
+
top: '',
|
236
|
+
left: ''
|
237
|
+
});
|
238
|
+
|
239
|
+
origin.css({
|
240
|
+
height: '',
|
241
|
+
top: '',
|
242
|
+
left: '',
|
243
|
+
width: '',
|
244
|
+
'max-width': '',
|
245
|
+
position: '',
|
246
|
+
'z-index': ''
|
247
|
+
});
|
248
|
+
|
249
|
+
// Remove class
|
250
|
+
origin.removeClass('active');
|
251
|
+
doneAnimating = true;
|
252
|
+
$(this).remove();
|
253
|
+
|
254
|
+
// Remove overflow overrides on ancestors
|
255
|
+
if (ancestorsChanged) {
|
256
|
+
ancestorsChanged.css('overflow', '');
|
257
|
+
}
|
258
|
+
}
|
259
|
+
});
|
260
|
+
|
261
|
+
}
|
262
|
+
});
|
263
|
+
};
|
264
|
+
|
265
|
+
$(document).ready(function(){
|
266
|
+
$('.materialboxed').materialbox();
|
267
|
+
});
|
268
|
+
|
269
|
+
}( jQuery ));
|