Skip to content

Instantly share code, notes, and snippets.

@Takazudo
Takazudo / detectPositionFixed.js
Last active February 17, 2018 13:58
position fixed detection
// a little modified version of
// position: fixed support detection from jQuery mobile.
//
// This script also defines Android2.x as out of support.
//
// https://github.com/jquery/jquery-mobile/blob/master/js/support.js
// http://demos.jquerymobile.com/1.4.4/toolbar-fixed/
// http://jimbergman.net/webkit-version-in-android-version/
Modernizr.addTest('positionfixed', function() {
@Takazudo
Takazudo / head.js
Created June 20, 2014 08:57
html class tweaking
/**
* `html` class tweaking
*/
(function() {
var html = document.getElementsByTagName("html")[0];
/* helpers */
var hasClass = function(node, cls) {
@Takazudo
Takazudo / createSinglePipeRequestFn.js
Created June 17, 2014 11:32
createSinglePipeRequestFn.js
//===========================================
// API
app.api._createSinglePipeRequestFn = function(options) {
/*
options should have...
type: 'GET' // or 'POST'
url: '/blahblah/'
*/
return (function() {
@Takazudo
Takazudo / htmlDprTweak.js
Created February 20, 2014 08:31
devicePixelRatio className tweak
/**
* `html` class tweaking
* if `devicePixelRatio` was 2, switch html's class
* from `dpr-1` to `dpr-2`
*/
(function() {
var html = document.getElementsByTagName("html")[0];
/* helpers */
var legacyIE = (function() {
var ua = navigator.userAgent;
var matchRes = ua.match(/msie\s?(\d+)/i);
// '.... MSIE 7.0; Windows....'
// => ["MSIE 7", "7"]
if(!matchRes) { return false; }
var version = matchRes[1];
var win8orhigher = (function() {
// windows browsers has str like "Windows NT 6.2" in its UA
// Win8 UAs' version is "6.2"
// browsers above this version may has touch events.
var ua = navigator.userAgent;
var matched = ua.match(/Windows NT ([\d\.]+)/);
if(!matched) { return false; }
var version = matched[1] * 1;
if(version < 6.2) { return false; }
return true;
# transitionEnd event name detection from Modernizr
# http://modernizr.com/docs/
transEndEventName = do ->
names =
WebkitTransition: "webkitTransitionEnd"
MozTransition: "transitionend"
OTransition: "oTransitionEnd"
msTransition: "MSTransitionEnd"
transition: "transitionend"
@Takazudo
Takazudo / eventmodule.coffee
Created December 10, 2012 10:42
lazy event implementation with jQuery
/* lazy eventy implementation with jQuery */
class Module
on: (evName, callback) ->
@_observer = $({}) unless @_observer?
@_observer.on evName, (args...) =>
args.shift() # we don't want event object
callback.apply @_observer, args
@
one: (evName, callback) ->
@Takazudo
Takazudo / audiopreloader.coffee
Created December 5, 2012 07:44
audio on the fly doesn't fire events correctly
class Module
_.extend Module::, Backbone.Events
class AudioPreloader extends Module
constructor: (options) ->
@options = options
@playableSrc = @_detectPlayableSrc()
@Takazudo
Takazudo / requestAnimationFramePolyfill.coffee
Created November 27, 2012 10:09
requestAnimationFrame polyfill
window.requestAnimFrame = do ->
window.requestAnimationFrame or
window.webkitRequestAnimationFrame or
window.mozRequestAnimationFrame or
window.oRequestAnimationFrame or
window.msRequestAnimationFrame or
(callback, element) ->
window.setTimeout callback, 1000 / 60