add autoscrolling

This commit is contained in:
wareya committed 2018-10-22 19:41:29 -04:00
1 parent 99e9e84731
commit e37d086611
2 files changed
+22 -1

No files matched your search

+9
View File
@@ -249,6 +249,15 @@ function defaults()
default: false, default: false,
label: "Reader insert at bottom (not recommended)" label: "Reader insert at bottom (not recommended)"
}); });
settings.push({
id: "reader_reverse",
kind: "number",
min: 0,
max: 10000,
step: 1,
default: 200,
label: "Reader autoscroll leeway (when \"insert at bottom\" is enabled) (0 disables)"
});
// other (added imperatively) // other (added imperatively)
settings.push({ settings.push({
+13 -1
View File
@@ -6,7 +6,8 @@
// we only use a tiny number of settings here // we only use a tiny number of settings here
let settings = { let settings = {
reader_reverse: false reader_reverse: false,
reader_leeway: 200
}; };
async function settings_init() async function settings_init()
@@ -21,6 +22,7 @@ async function settings_init()
settings[name] = temp; settings[name] = temp;
} }
getvar("reader_reverse", false); getvar("reader_reverse", false);
getvar("reader_leeway", 200);
} catch(err) {} // options not stored yet } catch(err) {} // options not stored yet
} }
@@ -60,7 +62,17 @@ function update(text)
if(!settings.reader_reverse) if(!settings.reader_reverse)
target.insertBefore(newnode, document.body.firstChild); target.insertBefore(newnode, document.body.firstChild);
else else
{
target.appendChild(newnode); target.appendChild(newnode);
if(settings.reader_leeway != 0)
{
let scroll_end_distance = -document.body.scrollHeight + -document.body.clientHeight + 2*document.body.offsetHeight - document.body.scrollTop;
if (scroll_end_distance < settings.reader_leeway)
window.scrollTo(0, document.body.scrollHeight);
}
}
document.getElementById("linecount").innerText = parseInt(document.getElementById("linecount").innerText)+1; document.getElementById("linecount").innerText = parseInt(document.getElementById("linecount").innerText)+1;
} }