This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
/** | |
see https://codepen.io/chrisbfusion/pen/oNbyppO | |
sample tree visual | |
30 | |
| | |
------- | |
| | | |
8 52 | |
| |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
/* Returns the absolute page position | |
* of a given element. | |
*/ | |
const absoluteElementPosition = node => { | |
if (isEmpty(node)) return null | |
let element = node | |
let left = 0 | |
let top = 0 | |
do { |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
/* Locates the first parent element | |
* that has a given attribute. | |
*/ | |
const findParentElement = (node, attribute) => { | |
if (isEmpty(node) || isEmpty(attribute)) return null; | |
let element = node; | |
/* eslint-disable no-cond-assign, no-empty */ | |
while ( | |
(element = element.parentElement) && |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
/** Determines if passed value is empty or not. | |
* Works on multiple data types. | |
**/ | |
const isEmpty = data => { | |
let count = 0; | |
if (typeof (data) === 'number' || typeof (data) === 'boolean') { return false; } | |
if (typeof (data) === 'undefined' || data === null) { return true; } | |
if (typeof (data.length) !== 'undefined') { return data.length === 0; } | |
Object.keys(data).forEach(() => { count += 1; }); | |
return count === 0; |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
<!DOCTYPE html> | |
<!--[if lt IE 7]> <html class="no-js lt-ie9 lt-ie8 lt-ie7"> <![endif]--> | |
<!--[if IE 7]> <html class="no-js lt-ie9 lt-ie8"> <![endif]--> | |
<!--[if IE 8]> <html class="no-js lt-ie9"> <![endif]--> | |
<!--[if gt IE 8]><!--> <html class="no-js"> <!--<![endif]--> | |
<head> | |
<meta charset="utf-8"> | |
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1"> | |
<title></title> | |
<meta name="description" content=""> |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
// Make sure focused elements aren't hidden by fixed positioned header or footer | |
function unhideInput(formelement) { | |
formelement.onfocus = function () { | |
var paddingheight = 30; | |
var headerheight = document.getElementsByTagName('header')[0].offsetHeight; | |
var footerheight = document.getElementsByTagName('footer')[document.getElementsByTagName('footer').length - 1].offsetHeight; | |
var viewportheight = window.innerHeight; | |
var elementpos = this.getBoundingClientRect(); | |
if ((elementpos.top <= (headerheight + paddingheight)) || (elementpos.bottom >= (viewportheight - footerheight))) { |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
<div class="modal-trigger"> | |
<canvas></canvas> | |
<video preload="auto" controls="controls" poster="img/why-autologel-poster.png"> | |
<source src="media/why-autologel.mp4" type='video/mp4'> | |
<source src="media/why-autologel.webm" type='video/webm'> | |
</video> | |
</div> | |
<!-- Modal Window --> | |
<div class="modal fade" id="modal-window" tabindex="-1" role="dialog" aria-labelledby="myModalLabel" aria-hidden="true"> | |
<div class="modal-dialog"> |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
// Play very small videos in modal box | |
if ($(window).width() > 750) { | |
var allvideos = $('video'); | |
// Hide controls for very small videos | |
for (var i = 0; i < allvideos.length; i++) { | |
if ($(allvideos[i]).width() < 470) { | |
$(allvideos[i]).removeAttr('controls'); | |
// Insert poster image for IE 9 | |
if ($('html').hasClass('IE-9')) { |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
// Remove no-js class | |
var tag = document.getElementsByTagName('html')[0]; | |
if (tag.className.length > 0 && /no-js/i.test(tag.className)) { | |
tag.className = tag.className.replace(/\s?no-js\s?/i, ''); | |
} else { | |
tag.className = ''; | |
} |
NewerOlder