Use document element (base is deprecated).

Use timeout (updating URL hash, among others, resets scroll position).
This commit is contained in:
Andy Valencia 2016-02-18 20:58:07 -08:00
parent 710416015c
commit 45bf995773

View file

@ -37,7 +37,7 @@ App.prototype.after_login = function(backend) {
var url = window.location.hash; var url = window.location.hash;
if(url == "#list") { if (url == "#list") {
_this.setCurrentRead(); _this.setCurrentRead();
_this.changeToPage("#list"); _this.changeToPage("#list");
} else if(url == "#reload") { } else if(url == "#reload") {
@ -135,18 +135,26 @@ App.prototype.changeToPage = function(page) {
// FIXME // FIXME
var active = $(".active"); var active = $(".active");
if(active.id == "list") {
this.saveScrollTop = document.body.scrollTop; // Save old position
} if (active.id == "list") {
this.saveScrollTop = document.documentElement.scrollTop;
if(page == "#list") {
document.body.scrollTop = this.saveScrollTop;
} else {
window.scroll(0, 0);
} }
// Switch displays
active.removeClass("active"); active.removeClass("active");
$(page).addClass("active"); $(page).addClass("active");
if (page == "#list") {
var elem = document.documentElement;
var posit = this.saveScrollTop;
// Restore old position, after display settles
setTimeout(function() { elem.scrollTop = posit; }, 500);
} else {
// Else top of page
window.scroll(0, 0);
}
}; };
App.prototype.setColor = function(color) { App.prototype.setColor = function(color) {