Skip to content

Instantly share code, notes, and snippets.

@ierhyna
Created April 22, 2016 08:54
Show Gist options
  • Save ierhyna/5cbaf3a64cd5f7de6e63c4da30d04df3 to your computer and use it in GitHub Desktop.
Save ierhyna/5cbaf3a64cd5f7de6e63c4da30d04df3 to your computer and use it in GitHub Desktop.
DOM.js
/**
* Get element by ID shortcode
* @param {Node} selector
* @return {Node}
*/
export function id(selector) {
return document.getElementById(selector);
}
/**
* Get element by class shortcode
* @param {Node} selector
* @return {Node}
*/
export function cl(selector) {
return document.getElementsByClassName(selector);
}
/**
* addEventListener shortcode
* @param {Array, Node} element
* @param {String} event
* @param {Function} callback
* @return {Function}
*/
export function listen(element, event, callback) {
if (element) {
if (element.length) {
for (let i = 0, max = element.length; i < max; i += 1) {
element[i].addEventListener(event, (e) => {
e.stopPropagation();
return callback(element[i]);
}, false);
}
} else {
element.addEventListener(event, (e) => {
e.stopPropagation();
return callback(element);
}, false);
}
}
}
/**
* fadeIn Add is-visible class to element
* @param {Node} element
*/
export function fadeIn(element) {
element.classList.remove('is-hidden');
element.classList.add('is-visible');
}
/**
* fadeOut Add is-hidden class to element
* @param {Node} element
*/
export function fadeOut(element) {
element.classList.remove('is-visible');
element.classList.add('is-hidden');
}
/**
* Get value of a field or textarea
* @param {Node} element
* @return {String}
*/
export function value(element) {
return element.value;
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment