Skip to content

Instantly share code, notes, and snippets.

View edgarberm's full-sized avatar
:octocat:
NaN

Edgar Bermejo edgarberm

:octocat:
NaN
View GitHub Profile
@edgarberm
edgarberm / deepExtend.js
Last active August 29, 2015 14:18
Extend method
Object.deepExtend = function ( opt, src ) {
for ( var p in src ) {
if ( src[ p ] && src[ p ].constructor && src[ p ].constructor === Object ) {
opt[ p] = opt[ p ] || {};
arguments.callee( opt[ p ], src[ p ] );
} else {
@edgarberm
edgarberm / mobileDetect.js
Last active August 29, 2015 14:18
Detect mobile devices
var mobileDetect = function() {
var check = false;
(function(a){if(/(android|bb\d+|meego).+mobile|avantgo|bada\/|blackberry|blazer|compal|elaine|fennec|hiptop|iemobile|ip(hone|od)|iris|kindle|lge |maemo|midp|mmp|netfront|opera m(ob|in)i|palm( os)?|phone|p(ixi|re)\/|plucker|pocket|psp|series(4|6)0|symbian|treo|up\.(browser|link)|vodafone|wap|windows (ce|phone)|xda|xiino/i.test(a)||/1207|6310|6590|3gso|4thp|50[1-6]i|770s|802s|a wa|abac|ac(er|oo|s\-)|ai(ko|rn)|al(av|ca|co)|amoi|an(ex|ny|yw)|aptu|ar(ch|go)|as(te|us)|attw|au(di|\-m|r |s )|avan|be(ck|ll|nq)|bi(lb|rd)|bl(ac|az)|br(e|v)w|bumb|bw\-(n|u)|c55\/|capi|ccwa|cdm\-|cell|chtm|cldc|cmd\-|co(mp|nd)|craw|da(it|ll|ng)|dbte|dc\-s|devi|dica|dmob|do(c|p)o|ds(12|\-d)|el(49|ai)|em(l2|ul)|er(ic|k0)|esl8|ez([4-7]0|os|wa|ze)|fetc|fly(\-|_)|g1 u|g560|gene|gf\-5|g\-mo|go(\.w|od)|gr(ad|un)|haie|hcit|hd\-(m|p|t)|hei\-|hi(pt|ta)|hp( i|ip)|hs\-c|ht(c(\-| |_|a|g|p|s|t)|tp)|hu(aw|tc)|i\-(20|go|ma)|i230|iac( |\-|\/)|ibro|idea|ig01|ikom|im1k|inno|ipaq|iris|ja(t|v)a|jbro|je
@edgarberm
edgarberm / getElementPosition.js
Last active August 29, 2015 14:19
Convert the returned position from document coordinates to viewport coordinates.
function getElementPosition ( element ) {
var x = 0,
y = 0;
for ( var e = element; e != null; e = e.offsetParent ) {
x += e.offsetLeft;
y += e.offsetTop;
/*
CSS:
.stick {
position: fixed;
margin: 30px 0 0 0;
top: 0;
}
.stick-bottom {
@edgarberm
edgarberm / SublimeOnSaveBuild partials
Last active August 29, 2015 14:21
No compile SASS partials from SublimeOnSaveBuild
{
"filename_filter": "(/|\\\\|^)(?!_)(\\w+)\\.(css|js|sass|less|scss)$",
"build_on_save": 1
}
@function prefix ( $property, $prefixes: ( webkit moz o ms ) ) {
$vendor-prefixed-properties: transform background-clip background-size;
$result: ();
@each $prefix in $prefixes {
@if index( $vendor-prefixed-properties, $property ) {
$property: -#{ $prefix }-#{ $property }
}
$result: append($result, $property);
}
@return $result;
@edgarberm
edgarberm / isMobile.js
Last active March 18, 2016 07:24
Mobile and tablet detection
var isMobile = (function(a){
return /(android|bb\d+|meego).+mobile|avantgo|bada\/|blackberry|blazer|compal|elaine|fennec|hiptop|iemobile|ip(hone|od)|iris|kindle|lge |maemo|midp|mmp|mobile.+firefox|netfront|opera m(ob|in)i|palm( os)?|phone|p(ixi|re)\/|plucker|pocket|psp|series(4|6)0|symbian|treo|up\.(browser|link)|vodafone|wap|windows ce|xda|xiino/i.test(a)||/1207|6310|6590|3gso|4thp|50[1-6]i|770s|802s|a wa|abac|ac(er|oo|s\-)|ai(ko|rn)|al(av|ca|co)|amoi|an(ex|ny|yw)|aptu|ar(ch|go)|as(te|us)|attw|au(di|\-m|r |s )|avan|be(ck|ll|nq)|bi(lb|rd)|bl(ac|az)|br(e|v)w|bumb|bw\-(n|u)|c55\/|capi|ccwa|cdm\-|cell|chtm|cldc|cmd\-|co(mp|nd)|craw|da(it|ll|ng)|dbte|dc\-s|devi|dica|dmob|do(c|p)o|ds(12|\-d)|el(49|ai)|em(l2|ul)|er(ic|k0)|esl8|ez([4-7]0|os|wa|ze)|fetc|fly(\-|_)|g1 u|g560|gene|gf\-5|g\-mo|go(\.w|od)|gr(ad|un)|haie|hcit|hd\-(m|p|t)|hei\-|hi(pt|ta)|hp( i|ip)|hs\-c|ht(c(\-| |_|a|g|p|s|t)|tp)|hu(aw|tc)|i\-(20|go|ma)|i230|iac( |\-|\/)|ibro|idea|ig01|ikom|im1k|inno|ipaq|iris|ja(t|v)a|jbro|jemu|jigs|kddi|keji|kgt( |\/)
var forEach = function (collection, callback, scope) {
if (Object.prototype.toString.call(collection) === '[object Object]') {
for (var prop in collection) {
if (Object.prototype.hasOwnProperty.call(collection, prop)) {
callback.call(scope, collection[prop], prop, collection);
}
}
} else {
for (var i = 0, len = collection.length; i < len; i++) {
callback.call(scope, collection[i], i, collection);
@edgarberm
edgarberm / addClass.js
Created June 10, 2015 09:41
hasClass, addClass, removeClass
Element.prototype.hasClass = Element.prototype.hasClass || function ( className ) {
return new RegExp( ' ' + className + ' ' ).test( ' ' + this.className + ' ' );
};
Element.prototype.addClass = Element.prototype.addClass || function ( className ) {
if ( !this.hasClass( className ) ) {
this.className += ' ' + className;
}
return this;
};
@edgarberm
edgarberm / everythingIsLoaded.js
Created August 24, 2015 12:28
Check if everything has fully loaded in our document
var everythingIsLoaded = setInterval( function () {
if ( /loaded|complete/.test( document.readyState ) ) {
clearInterval( everythingIsLoaded );
// Initialize our code..
}
}, 10 );