-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
- Loading branch information
There are no files selected for viewing
Large diffs are not rendered by default.
Large diffs are not rendered by default.
Large diffs are not rendered by default.
Large diffs are not rendered by default.
Large diffs are not rendered by default.
Large diffs are not rendered by default.
Large diffs are not rendered by default.
Large diffs are not rendered by default.
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,123 @@ | ||
/*! | ||
* jquery.counterup.js 2.1.0 | ||
* | ||
* Copyright 2013, Benjamin Intal http://gambit.ph @bfintal | ||
* Released under the GPL v2 License | ||
* | ||
* Amended by Jeremy Paris, Ciro Mattia Gonano and others | ||
* | ||
* Date: Feb 24, 2017 | ||
*/ | ||
(function ($) { | ||
"use strict"; | ||
|
||
$.fn.counterUp = function (options) { | ||
|
||
// Defaults | ||
var settings = $.extend({ | ||
'time': 400, | ||
'delay': 10, | ||
'offset': 100, | ||
'beginAt': 0, | ||
'formatter': false, | ||
'context': 'window', | ||
callback: function () { | ||
} | ||
}, options), | ||
s; | ||
|
||
return this.each(function () { | ||
|
||
// Store the object | ||
var $this = $(this), | ||
counter = { | ||
time: $(this).data('counterup-time') || settings.time, | ||
delay: $(this).data('counterup-delay') || settings.delay, | ||
offset: $(this).data('counterup-offset') || settings.offset, | ||
beginAt: $(this).data('counterup-beginat') || settings.beginAt, | ||
context: $(this).data('counterup-context') || settings.context | ||
}; | ||
|
||
var counterUpper = function () { | ||
var nums = []; | ||
var divisions = counter.time / counter.delay; | ||
var num = $this.attr('data-num') ? $this.attr('data-num') : $this.text(); | ||
var isComma = /[0-9]+,[0-9]+/.test(num); | ||
num = num.replace(/,/g, ''); | ||
var decimalPlaces = (num.split('.')[1] || []).length; | ||
if (counter.beginAt > num) | ||
counter.beginAt = num; | ||
|
||
var isTime = /[0-9]+:[0-9]+:[0-9]+/.test(num); | ||
|
||
// Convert time to total seconds | ||
if (isTime) { | ||
var times = num.split(':'), | ||
m = 1; | ||
s = 0; | ||
while (times.length > 0) { | ||
s += m * parseInt(times.pop(), 10); | ||
m *= 60; | ||
} | ||
} | ||
|
||
// Generate list of incremental numbers to display | ||
for (var i = divisions; i >= counter.beginAt / num * divisions; i--) { | ||
|
||
var newNum = parseFloat(num / divisions * i).toFixed(decimalPlaces); | ||
|
||
// Add incremental seconds and convert back to time | ||
if (isTime) { | ||
newNum = parseInt(s / divisions * i); | ||
var hours = parseInt(newNum / 3600) % 24; | ||
var minutes = parseInt(newNum / 60) % 60; | ||
var seconds = parseInt(newNum % 60, 10); | ||
newNum = (hours < 10 ? "0" + hours : hours) + ":" + (minutes < 10 ? "0" + minutes : minutes) + ":" + (seconds < 10 ? "0" + seconds : seconds); | ||
} | ||
|
||
// Preserve commas if input had commas | ||
if (isComma) { | ||
while (/(\d+)(\d{3})/.test(newNum.toString())) { | ||
newNum = newNum.toString().replace(/(\d+)(\d{3})/, '$1' + ',' + '$2'); | ||
} | ||
} | ||
if (settings.formatter) { | ||
newNum = settings.formatter.call(this, newNum); | ||
} | ||
nums.unshift(newNum); | ||
} | ||
|
||
$this.data('counterup-nums', nums); | ||
$this.text(counter.beginAt); | ||
|
||
// Updates the number until we're done | ||
var f = function () { | ||
if (!$this.data('counterup-nums')) { | ||
settings.callback.call(this); | ||
return; | ||
} | ||
$this.html($this.data('counterup-nums').shift()); | ||
if ($this.data('counterup-nums').length) { | ||
setTimeout($this.data('counterup-func'), counter.delay); | ||
} else { | ||
$this.data('counterup-nums', null); | ||
$this.data('counterup-func', null); | ||
settings.callback.call(this); | ||
} | ||
}; | ||
$this.data('counterup-func', f); | ||
|
||
// Start the count up | ||
setTimeout($this.data('counterup-func'), counter.delay); | ||
}; | ||
|
||
// Perform counts when the element gets into view | ||
$this.waypoint(function (direction) { | ||
counterUpper(); | ||
this.destroy(); //-- Waypoint 3.0 version of triggerOnce | ||
}, {offset: counter.offset + "%", context: counter.context}); | ||
}); | ||
|
||
}; | ||
|
||
})(jQuery); |
Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.
Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,168 @@ | ||
/* | ||
* jQuery Easing v1.4.1 - http://gsgd.co.uk/sandbox/jquery/easing/ | ||
* Open source under the BSD License. | ||
* Copyright © 2008 George McGinley Smith | ||
* All rights reserved. | ||
* https://raw.github.com/gdsmith/jquery-easing/master/LICENSE | ||
*/ | ||
|
||
(function (factory) { | ||
if (typeof define === "function" && define.amd) { | ||
define(['jquery'], function ($) { | ||
return factory($); | ||
}); | ||
} else if (typeof module === "object" && typeof module.exports === "object") { | ||
exports = factory(require('jquery')); | ||
} else { | ||
factory(jQuery); | ||
} | ||
})(function($){ | ||
|
||
// Preserve the original jQuery "swing" easing as "jswing" | ||
if (typeof $.easing !== 'undefined') { | ||
$.easing['jswing'] = $.easing['swing']; | ||
} | ||
|
||
var pow = Math.pow, | ||
sqrt = Math.sqrt, | ||
sin = Math.sin, | ||
cos = Math.cos, | ||
PI = Math.PI, | ||
c1 = 1.70158, | ||
c2 = c1 * 1.525, | ||
c3 = c1 + 1, | ||
c4 = ( 2 * PI ) / 3, | ||
c5 = ( 2 * PI ) / 4.5; | ||
|
||
// x is the fraction of animation progress, in the range 0..1 | ||
function bounceOut(x) { | ||
var n1 = 7.5625, | ||
d1 = 2.75; | ||
if ( x < 1/d1 ) { | ||
return n1*x*x; | ||
} else if ( x < 2/d1 ) { | ||
return n1*(x-=(1.5/d1))*x + .75; | ||
} else if ( x < 2.5/d1 ) { | ||
return n1*(x-=(2.25/d1))*x + .9375; | ||
} else { | ||
return n1*(x-=(2.625/d1))*x + .984375; | ||
} | ||
} | ||
|
||
$.extend( $.easing, | ||
{ | ||
def: 'easeOutQuad', | ||
swing: function (x) { | ||
return $.easing[$.easing.def](x); | ||
}, | ||
easeInQuad: function (x) { | ||
return x * x; | ||
}, | ||
easeOutQuad: function (x) { | ||
return 1 - ( 1 - x ) * ( 1 - x ); | ||
}, | ||
easeInOutQuad: function (x) { | ||
return x < 0.5 ? | ||
2 * x * x : | ||
1 - pow( -2 * x + 2, 2 ) / 2; | ||
}, | ||
easeInCubic: function (x) { | ||
return x * x * x; | ||
}, | ||
easeOutCubic: function (x) { | ||
return 1 - pow( 1 - x, 3 ); | ||
}, | ||
easeInOutCubic: function (x) { | ||
return x < 0.5 ? | ||
4 * x * x * x : | ||
1 - pow( -2 * x + 2, 3 ) / 2; | ||
}, | ||
easeInQuart: function (x) { | ||
return x * x * x * x; | ||
}, | ||
easeOutQuart: function (x) { | ||
return 1 - pow( 1 - x, 4 ); | ||
}, | ||
easeInOutQuart: function (x) { | ||
return x < 0.5 ? | ||
8 * x * x * x * x : | ||
1 - pow( -2 * x + 2, 4 ) / 2; | ||
}, | ||
easeInQuint: function (x) { | ||
return x * x * x * x * x; | ||
}, | ||
easeOutQuint: function (x) { | ||
return 1 - pow( 1 - x, 5 ); | ||
}, | ||
easeInOutQuint: function (x) { | ||
return x < 0.5 ? | ||
16 * x * x * x * x * x : | ||
1 - pow( -2 * x + 2, 5 ) / 2; | ||
}, | ||
easeInSine: function (x) { | ||
return 1 - cos( x * PI/2 ); | ||
}, | ||
easeOutSine: function (x) { | ||
return sin( x * PI/2 ); | ||
}, | ||
easeInOutSine: function (x) { | ||
return -( cos( PI * x ) - 1 ) / 2; | ||
}, | ||
easeInExpo: function (x) { | ||
return x === 0 ? 0 : pow( 2, 10 * x - 10 ); | ||
}, | ||
easeOutExpo: function (x) { | ||
return x === 1 ? 1 : 1 - pow( 2, -10 * x ); | ||
}, | ||
easeInOutExpo: function (x) { | ||
return x === 0 ? 0 : x === 1 ? 1 : x < 0.5 ? | ||
pow( 2, 20 * x - 10 ) / 2 : | ||
( 2 - pow( 2, -20 * x + 10 ) ) / 2; | ||
}, | ||
easeInCirc: function (x) { | ||
return 1 - sqrt( 1 - pow( x, 2 ) ); | ||
}, | ||
easeOutCirc: function (x) { | ||
return sqrt( 1 - pow( x - 1, 2 ) ); | ||
}, | ||
easeInOutCirc: function (x) { | ||
return x < 0.5 ? | ||
( 1 - sqrt( 1 - pow( 2 * x, 2 ) ) ) / 2 : | ||
( sqrt( 1 - pow( -2 * x + 2, 2 ) ) + 1 ) / 2; | ||
}, | ||
easeInElastic: function (x) { | ||
return x === 0 ? 0 : x === 1 ? 1 : | ||
-pow( 2, 10 * x - 10 ) * sin( ( x * 10 - 10.75 ) * c4 ); | ||
}, | ||
easeOutElastic: function (x) { | ||
return x === 0 ? 0 : x === 1 ? 1 : | ||
pow( 2, -10 * x ) * sin( ( x * 10 - 0.75 ) * c4 ) + 1; | ||
}, | ||
easeInOutElastic: function (x) { | ||
return x === 0 ? 0 : x === 1 ? 1 : x < 0.5 ? | ||
-( pow( 2, 20 * x - 10 ) * sin( ( 20 * x - 11.125 ) * c5 )) / 2 : | ||
pow( 2, -20 * x + 10 ) * sin( ( 20 * x - 11.125 ) * c5 ) / 2 + 1; | ||
}, | ||
easeInBack: function (x) { | ||
return c3 * x * x * x - c1 * x * x; | ||
}, | ||
easeOutBack: function (x) { | ||
return 1 + c3 * pow( x - 1, 3 ) + c1 * pow( x - 1, 2 ); | ||
}, | ||
easeInOutBack: function (x) { | ||
return x < 0.5 ? | ||
( pow( 2 * x, 2 ) * ( ( c2 + 1 ) * 2 * x - c2 ) ) / 2 : | ||
( pow( 2 * x - 2, 2 ) *( ( c2 + 1 ) * ( x * 2 - 2 ) + c2 ) + 2 ) / 2; | ||
}, | ||
easeInBounce: function (x) { | ||
return 1 - bounceOut( 1 - x ); | ||
}, | ||
easeOutBounce: bounceOut, | ||
easeInOutBounce: function (x) { | ||
return x < 0.5 ? | ||
( 1 - bounceOut( 1 - 2 * x ) ) / 2 : | ||
( 1 + bounceOut( 2 * x - 1 ) ) / 2; | ||
} | ||
}); | ||
|
||
}); |