Use document element (base is deprecated).
Use timeout (updating URL hash, among others, resets scroll position).
This commit is contained in:
parent
710416015c
commit
45bf995773
1 changed files with 17 additions and 9 deletions
22
js/App.js
22
js/App.js
|
@ -135,18 +135,26 @@ App.prototype.changeToPage = function(page) {
|
||||||
|
|
||||||
// FIXME
|
// FIXME
|
||||||
var active = $(".active");
|
var active = $(".active");
|
||||||
|
|
||||||
|
// Save old position
|
||||||
if (active.id == "list") {
|
if (active.id == "list") {
|
||||||
this.saveScrollTop = document.body.scrollTop;
|
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) {
|
||||||
|
|
Reference in a new issue