This is how GitHub's new AJAX file browser works.
GitHub.TreeSlider = function () { | |
if (window.history && window.history.pushState) { | |
function a() { | |
if (e.sliding) { | |
e.sliding = false; | |
$(".frame-right").hide(); | |
$(".frame-loading:visible").removeClass("frame-loading") | |
} | |
} | |
if (!($("#slider").length == 0 || !GitHub.shouldSlide)) if (!navigator.userAgent.match(/(iPod|iPhone|iPad)/)) { | |
window.history.replaceState({ | |
path: this.pathFromURL(location.pathname) | |
}, ""); | |
var e = this; | |
$(".frames a.js-slide-to, .breadcrumb a").live("click", function (b) { | |
if (b.which == 2 || b.metaKey || b.ctrlKey) return true; | |
else { | |
e.clickHandler(b); | |
return false | |
} | |
}); | |
$(window).bind("popstate", function (b) { | |
e.popStateHandler(b.originalEvent) | |
}); | |
$(".frames .frame").live("webkitTransitionEnd", a).live("transitionend", a) | |
} | |
} | |
}; |
This comment has been minimized.
This comment has been minimized.
Is GitHubs slider free for reuse on my own site? |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
This comment has been minimized.
nice finding! Doc to replaceState(): https://developer.mozilla.org/en/DOM/Manipulating_the_browser_history