Skip to content

Instantly share code, notes, and snippets.

View arturparkhisenko's full-sized avatar
:octocat:
www. www always changes

Artur Parkhisenko arturparkhisenko

:octocat:
www. www always changes
View GitHub Profile
@arturparkhisenko
arturparkhisenko / rAF.js
Last active August 29, 2015 14:23 — forked from paulirish/rAF.js
Updated and linted fork of requestAnimationFrame polyfill
// http://paulirish.com/2011/requestanimationframe-for-smart-animating/
// http://my.opera.com/emoller/blog/2011/12/20/requestanimationframe-for-smart-er-animating
// requestAnimationFrame polyfill by Erik Möller. fixes from Paul Irish and Tino Zijdel
// MIT license
(function() {
var lastTime = 0;
var vendors = ['ms', 'moz', 'webkit', 'o'];
for (var x = 0; x < vendors.length && !window.requestAnimationFrame; x++) {
window.requestAnimationFrame = window[vendors[x] + 'RequestAnimationFrame'];
window.cancelAnimationFrame = window[vendors[x] + 'CancelAnimationFrame'] || window[vendors[x] + 'CancelRequestAnimationFrame'];
// Example 1
mediator.name = 'Doug';
mediator.subscribe('nameChange', function(arg){
console.log(this.name);
this.name = arg;
console.log(this.name);
});
mediator.publish('nameChange', 'Jorn');
@arturparkhisenko
arturparkhisenko / json.js
Last active August 29, 2015 14:26 — forked from geuis/json.js
Better error handling for JSON.parse (javascript)
(function(){
var parse = JSON.parse;
JSON = {
stringify: JSON.stringify,
validate: function(str){
// a simple facade that masks the various browser-specific methods
function addEvent( element, event, callback ) {
if( window.addEventListener ) {
element.addEventListener( event, callback, false );
} else if( document.attachEvent ) {
element.attachEvent( 'on' + event, callback );
} else {
element[ 'on' + event ] = callback;
}
var MyModule = ( function( window, undefined ) {
// revealing module pattern ftw
function MyModule() {
function someMethod() {
alert( 'some method' );
}
function someOtherMethod() {
@arturparkhisenko
arturparkhisenko / functions.php
Last active September 10, 2015 14:38
wp excerpt lenght limit
function excerpt($limit) {
$excerpt = explode(' ', get_the_excerpt(), $limit);
if (count($excerpt)>=$limit) {
array_pop($excerpt);
$excerpt = implode(" ",$excerpt).'...';
} else {
$excerpt = implode(" ",$excerpt);
}
$excerpt = preg_replace('`\[[^\]]*\]`','',$excerpt);
@arturparkhisenko
arturparkhisenko / fitelement.js
Last active September 21, 2015 18:16
fitelement(something with aspect), script for rAF.js
var fitElement = function fitElement(elementSelector, elementAspect) {
var element = (typeof elementSelector === 'string' || elementSelector instanceof String) ? document.querySelector(elementSelector) : elementSelector,
parW = element.parentNode.clientWidth,
parH = element.parentNode.clientHeight,
parAsp = parW / parH,
aspect = elementAspect || 16 / 9,
elW, elH;
if (aspect > parAsp) {
elW = parW;
elH = elW / aspect;
@arturparkhisenko
arturparkhisenko / js-remove-hash.js
Last active September 21, 2015 18:29
remove hash from url
//source: http://stackoverflow.com/questions/4508574/remove-hash-from-url
//Best is Homero Barbosa's answer below:
history.pushState('', document.title, window.location.pathname);
//... or, if you want to maintain the search parameters:
history.pushState('', document.title, window.location.pathname + window.location.search);
//Old, do not use, badwrongfun:
// var loc = window.location.href,
// index = loc.indexOf('#');
// if (index > 0) {
@arturparkhisenko
arturparkhisenko / append-prepend.js
Created October 3, 2015 20:24
append-and-prepend-elements-js
//Setup
let el = document.getElementById('thingy');
let elChild = document.createElement('div');
elChild.innerHTML = 'Content';
//Append
el.appendChild(elChild);
//Prepend
el.insertBefore(elChild, el.firstChild);
@arturparkhisenko
arturparkhisenko / ri-feature-detection.js
Created October 9, 2015 05:56 — forked from gregwhitworth/ri-feature-detection.js
Responsive images feature detection
(function (window) {
document.addEventListener("DOMContentLoaded", function (e) {
var supports = {
srcset: false,
currentSrc: false,
sizes: false,
picture: false
};
var img = new Image();