Skip to content

Instantly share code, notes, and snippets.

@ianpgall
ianpgall / string-pad.js
Last active December 20, 2015 17:19
JavaScript function that pads the left side of a string/number with a specific prefix, up to a specific length
var PadText = (function () {
"use strict";
var func;
func = function (text, prefix, finalLength) {
return (new Array(finalLength).join(prefix.charAt(0)) + text).slice(-finalLength);
};
return func;
@ianpgall
ianpgall / date-leapyear.js
Last active December 20, 2015 21:59
JavaScript function that determines if a specific year is a leap year
var IsLeapYear = (function () {
"use strict";
var func;
func = function (year) {
return (year % 400) ? ((year % 100) ? ((year % 4) ? false : true) : false) : true;
};
return func;
@ianpgall
ianpgall / element-inviewport.js
Last active December 20, 2015 21:59
JavaScript function that determines if an element is in the window's viewport
var IsInViewport = (function () {
"use strict";
var func;
func = function (el, par) {
var ret, elRect, parRect;
elRect = el.getBoundingClientRect();
if (par) {
parRect = par.getBoundingClientRect();
@ianpgall
ianpgall / array-removedupes.js
Last active December 20, 2015 21:59
JavaScript functions that remove duplicates from an array
var RemoveDuplicates = (function () {
"use strict";
var inPlace, getCopy;
inPlace = function (arr) {
var i, j, cur, found;
for (i = arr.length - 1; i >= 0; i--) {
cur = arr[i];
found = false;
@ianpgall
ianpgall / string-camelcase.js
Last active December 20, 2015 21:59
JavaScript functions that converts strings to camel case, or to a hyphenated version
var Format = (function () {
"use strict";
var toCamelCase, toHyphenated;
toCamelCase = (function () {
var re, ret;
re = /-([a-z])/g;
ret = function (str) {
str = str.replace(re, function (match, lower) {
@ianpgall
ianpgall / object-each.js
Last active December 20, 2015 21:59
JavaScript function that iterates over an object (Object or Array)
var Each = (function () {
"use strict";
var O, toString, is, ret;
O = {};
toString = O.toString;
is = function (o, t) {
return (toString.call(o) === "[object " + t + "]");
};
@ianpgall
ianpgall / array-slice.js
Last active December 21, 2015 04:09
JavaScript function to slice an Array-like object (same arguments as native Array.slice)
var Slice = (function () {
"use strict";
var func;
func = function (arr, start, howMany) {
var stop, newArr, i, j, cur;
start = +start || 0;
howMany = +howMany || Infinity;
@ianpgall
ianpgall / element-classes.js
Last active December 21, 2015 05:18
JavaScript function to manage CSS classes (detects native browser support)
var Classes = (function () {
"use strict";
var E, trim, containsClass, addClass, removeClass, toggleClass;
E = document.createElement("div");
if (E.classList && !E.hasOwnProperty("classList")) {
containsClass = function (el, cls) {
return el.classList.contains(cls);
@ianpgall
ianpgall / subscriber.js
Last active December 21, 2015 05:18
JavaScript constructor library to listen for and trigger events
var Subscriber = (function () {
"use strict";
var F, allSubscribers, SubClass, PublicClass, handleOn, slice, ret;
F = function () { return undefined; };
allSubscribers = {};
SubClass = function (opts) {
var me, events;
@ianpgall
ianpgall / number-odd.js
Created March 11, 2014 17:32
JavaScript function that determines whether a number is odd
function isOdd(num) {
return !!(num & 1);
}