summaryrefslogtreecommitdiff
path: root/_includes/scripts/lib/throttle.js
diff options
context:
space:
mode:
authorKarl Hallsby <karl@hallsby.com>2020-09-27 17:45:13 -0500
committerKarl Hallsby <karl@hallsby.com>2020-09-27 17:45:13 -0500
commitc6bf5f7c895287d2028f6024265913b59784a154 (patch)
tree3a298df17d9472a679411dd81ea00a1239652477 /_includes/scripts/lib/throttle.js
parent50dafcddc0392b99b228824274b1b97d0e72e423 (diff)
Bring all of jekyll-text-theme _includes into site
Diffstat (limited to '_includes/scripts/lib/throttle.js')
-rw-r--r--_includes/scripts/lib/throttle.js28
1 files changed, 28 insertions, 0 deletions
diff --git a/_includes/scripts/lib/throttle.js b/_includes/scripts/lib/throttle.js
new file mode 100644
index 0000000..2add23c
--- /dev/null
+++ b/_includes/scripts/lib/throttle.js
@@ -0,0 +1,28 @@
+(function() {
+ window.throttle = function(func, wait) {
+ var args, result, thisArg, timeoutId, lastCalled = 0;
+
+ function trailingCall() {
+ lastCalled = new Date;
+ timeoutId = null;
+ result = func.apply(thisArg, args);
+ }
+ return function() {
+ var now = new Date,
+ remaining = wait - (now - lastCalled);
+
+ args = arguments;
+ thisArg = this;
+
+ if (remaining <= 0) {
+ clearTimeout(timeoutId);
+ timeoutId = null;
+ lastCalled = now;
+ result = func.apply(thisArg, args);
+ } else if (!timeoutId) {
+ timeoutId = setTimeout(trailingCall, remaining);
+ }
+ return result;
+ };
+ };
+})();