Skip to content

Instantly share code, notes, and snippets.

View addyosmani's full-sized avatar
🎯
Focusing

Addy Osmani addyosmani

🎯
Focusing
View GitHub Profile
@bmeck
bmeck / partial_application.js
Last active August 29, 2015 14:10
simple tagged template functions
let tee = (a) => {console.log(String(a)); return a}
// our applicator
let $_ = (n) => {
let args = new Array(n);
for (let i = 1; i <= n; i++) {
args[i-1] = `$${i}`
}
return (raw, ...values) =>
Function(...args.concat(tee('return ' + raw.reduce(
@cowboy
cowboy / jquery_plugin_org_1.js
Created January 8, 2010 20:52
View revisions from oldest -> newest
// Creating a plugin with $.myNS.public_method1() and $.myNS.public_method2() methods, a few different ways.
(function($){
var private_var,
myNS = $.myNS = {},
public_method2;
myNS.public_method1 = function(){
private_method();
(function(){
var supported;
if (document.body.setAttribute) {
var el = document.createElement('div');
el.setAttribute('onhashchange','return;');
supported = typeof el.onhashchange == 'function';
} else {
supported = 'onhashchange' in document.documentElement;
}
if (!supported) {
@ebello
ebello / gist:330358
Created March 12, 2010 14:32 — forked from remy/gist:330318
Placeholder fixer
/**
* Add this script to the end of your document that use <input autofocus type="text" />
* or <input type="text" placeholder="username" /> and it'll plug support for browser
* without these attributes
* Minified version at the bottom
*/
(function () {
function each(list, fn) {
var l = list.length;
@mattmccray
mattmccray / jquery.anim8.js
Created April 25, 2010 08:19
platform.js -- Memoize functions base on browser type.
// (Simple example of using platform.js in a jQuery plugin.)
// Usage: $('#block').anim8({ top:50, left:350 }, 250);
$.fn.anim8 = (function($){ return platform({
// For Webkit browsers it will use CSS animations
webkit: function(props, speed, transition) {
return this.each(function(){
var elem = $(this),
transition = transition || 'ease-out',
@keeto
keeto / Mediator.js
Created June 26, 2010 17:40
Mediator: Object grouping and brokering
/*
Script: Mediator
Object grouping and brokering
Copyright and License:
Copyright 2010, Mark Obcena. MIT-Style License
*/
(function(){
@cowboy
cowboy / newtwitter-hashchange.js
Created September 16, 2010 00:07
How does IE6/7 "back button" support work?
// From http://a5.twimg.com/a/1284588078/javascripts/phoenix.bundle.js
(function (B) {
var A = (function () {
var E = {
select: "input",
change: "input",
submit: "form",
reset: "form",
error: "img",
// Handles JavaScript history management and callbacks. To use, register a
// regexp that matches the history hash with its corresponding callback.
window.HashHistory = {
// The interval at which the window location is polled.
URL_CHECK_INTERVAL : 500,
// We need to use an iFrame to save history if we're in an old version of IE.
USE_IFRAME : jQuery.browser.msie && jQuery.browser.version < 8,
// Handles JavaScript history management and callbacks. To use, register a
// regexp that matches the history hash with its corresponding callback.
window.HashHistory = {
// The interval at which the window location is polled.
URL_CHECK_INTERVAL : 500,
// We need to use an iFrame to save history if we're in an old version of IE.
USE_IFRAME : jQuery.browser.msie && jQuery.browser.version < 8,
/* View documents with Google Docs ...
* because my laptop can't handle Word and Chrome at the same time. */
$(document).ready(function(){
// I'm sure there's a more efficient selector for this.
$('a[href$=doc], a[href$=docx], a[href$=pdf], a[href$=rtf]').attr(
'href',
function(){
return 'http://docs.google.com/viewer?url=' + this.href;
}