Skip to content

Instantly share code, notes, and snippets.

Embed
What would you like to do?
Normalized hide address bar for iOS & Android (JSLint compliant)
/*jslint browser: true, indent: 4 */
/*
* Normalized hide address bar for iOS & Android
* (c) Scott Jehl, scottjehl.com
* MIT License
*/
(function (win) {
'use strict';
var doc = win.document,
scrollTop = 1,
getScrollTop,
bodycheck;
// If there's a hash, or addEventListener is undefined, stop here
if (!location.hash && win.addEventListener) {
//scroll to 1
window.scrollTo(0, 1);
getScrollTop = function () {
return ((((win.pageYOffset || doc.compatMode === "CSS1Compat") && doc.documentElement.scrollTop) || doc.body.scrollTop) || 0);
};
//reset to 0 on bodyready, if needed
bodycheck = setInterval(function () {
if (doc.body) {
clearInterval(bodycheck);
scrollTop = getScrollTop();
win.scrollTo(0, scrollTop === 1 ? 0 : 1);
}
}, 15);
win.addEventListener("load", function () {
setTimeout(function () {
//at load, if user hasn't scrolled more than 20 or so...
if (getScrollTop() < 20) {
//reset to hide addr bar at onload
win.scrollTo(0, scrollTop === 1 ? 0 : 1);
}
}, 0);
});
}
}(this));
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment