summaryrefslogtreecommitdiff
path: root/_includes/scripts/utils
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/utils
parent50dafcddc0392b99b228824274b1b97d0e72e423 (diff)
Bring all of jekyll-text-theme _includes into site
Diffstat (limited to '_includes/scripts/utils')
-rw-r--r--_includes/scripts/utils/imagesLoad.js28
-rw-r--r--_includes/scripts/utils/utils.js39
2 files changed, 67 insertions, 0 deletions
diff --git a/_includes/scripts/utils/imagesLoad.js b/_includes/scripts/utils/imagesLoad.js
new file mode 100644
index 0000000..63a6bdf
--- /dev/null
+++ b/_includes/scripts/utils/imagesLoad.js
@@ -0,0 +1,28 @@
+(function() {
+ window.imagesLoad = function(images) {
+ images = images || document.getElementsByTagName('img');
+ var imagesCount = images.length, loadedCount = 0, image;
+ var i, j, loaded = false, cbs = [];
+ imagesCount < 1 && (loaded = true);
+ for (i = 0; i < imagesCount; i++) {
+ image = images[i];
+ image.complete ? handleImageLoad() : image.addEventListener('load', handleImageLoad);
+ }
+ function handleImageLoad() {
+ loadedCount++;
+ if (loadedCount === imagesCount) {
+ loaded = true;
+ if (cbs.length > 0) {
+ for (j = 0; j < cbs.length; j++) {
+ cbs[j]();
+ }
+ }
+ }
+ }
+ return {
+ then: function(cb) {
+ cb && (loaded ? cb() : (cbs.push(cb)));
+ }
+ };
+ };
+})();
diff --git a/_includes/scripts/utils/utils.js b/_includes/scripts/utils/utils.js
new file mode 100644
index 0000000..e7bce45
--- /dev/null
+++ b/_includes/scripts/utils/utils.js
@@ -0,0 +1,39 @@
+(function() {
+ window.isArray = function(val) {
+ return Object.prototype.toString.call(val) === '[object Array]';
+ };
+ window.isString = function(val) {
+ return typeof val === 'string';
+ };
+
+ window.hasEvent = function(event) {
+ return 'on'.concat(event) in window.document;
+ };
+
+ window.isOverallScroller = function(node) {
+ return node === document.documentElement || node === document.body || node === window;
+ };
+
+ window.isFormElement = function(node) {
+ var tagName = node.tagName;
+ return tagName === 'INPUT' || tagName === 'SELECT' || tagName === 'TEXTAREA';
+ };
+
+ window.pageLoad = (function () {
+ var loaded = false, cbs = [];
+ window.addEventListener('load', function () {
+ var i;
+ loaded = true;
+ if (cbs.length > 0) {
+ for (i = 0; i < cbs.length; i++) {
+ cbs[i]();
+ }
+ }
+ });
+ return {
+ then: function(cb) {
+ cb && (loaded ? cb() : (cbs.push(cb)));
+ }
+ };
+ })();
+})();