Skip to content

Instantly share code, notes, and snippets.

View Martin-Pitt's full-sized avatar

Martin "Nexii" Pitt Martin-Pitt

View GitHub Profile
04912dac406c035a8b4d6387611c745194fd85ab3de591bb3fe21f5c13b1cbf5bd336469ac1b28aba064b5b20a5efc3357a78edef08e4df8175fe6a35d4bfa872f
/// Self-Contained JavaScript to prevent window scroll overflow bounce on iOS devices
/// Checks for whitelisted native scrolling via .scrollable class or if -webkit-overflow-scrolling is an inline-style
window.PreventWindowBounce = {
handleEvent: function EventListenerInterface (ev) { if(ev.type in this) this[ev.type](ev); },
bindEvents: function () {
document.addEventListener('touchstart', PreventWindowBounce);
document.addEventListener('touchmove', PreventWindowBounce);
},
/// The code works by checking whether the scroll area is against
@Martin-Pitt
Martin-Pitt / rescaling.js
Created September 7, 2017 14:20
A very simple but powerful primitive that lets you make awesome UI or 2D/3D movement very quickly
function rescale(from_min, from_max, to_min, to_max, from) {
return to_min + ((to_max-to_min) * ((from_min-from) / (from_min-from_max)));
}
rescale.clamped = function(fMin, fMax, tMin, tMax, f) {
f = this(fMin, fMax, tMin, tMax, f);
if(tMin < tMax) { if(f < tMin) return tMin; else if(f > tMax) return tMax; }
else { if(f < tMax) return tMax; else if(f > tMin) return tMin; }
return f;
}
@Martin-Pitt
Martin-Pitt / README.md
Last active December 10, 2015 23:38 — forked from clhenrick/README.md
updating data in a d3 histogram

updating data in a d3 histogram

/// Transform.js
/*
http://www.w3.org/TR/css3-transforms/#interpolation-of-transforms
Four rules for interpolating transform lists:
* If both lists are none, return nothing.
* If one of the lists is none, create a equivalent identity list, continue to next rule.
* If both lists have the same amount of arguments (having a common primitive), interpolate each pair of transform function and return computed value.
* else in worst case, convert both lists to matrices and interpolate those, return computed value.
To minimize GC, we have only one static object.