chiark / gitweb /
wip try to fix scroll
authorIan Jackson <ijackson@chiark.greenend.org.uk>
Thu, 26 Nov 2020 21:13:38 +0000 (21:13 +0000)
committerIan Jackson <ijackson@chiark.greenend.org.uk>
Thu, 26 Nov 2020 21:13:38 +0000 (21:13 +0000)
Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
templates/script.ts
templates/session.tera

index 377a814464b69e6c76d6563012f22c0bd264b9ea..57bc9fea3c4047637d3186846e954abfd7f85c8d 100644 (file)
@@ -110,7 +110,7 @@ var space : SVGGraphicsElement;
 var pieces_marker : SVGGraphicsElement;
 var defs_marker : SVGGraphicsElement;
 var log_elem : HTMLElement;
-var logouter_elem : HTMLElement;
+var logscroll_elem : HTMLElement;
 var status_node : HTMLElement;
 var uos_node : HTMLElement;
 var wresting: boolean;
@@ -832,7 +832,7 @@ function add_timestamped_log_message(ts_html: string, msg_html: string) {
       (() => {
        let le_top = lastent.getBoundingClientRect()!.top;
        let le_bot = lastent.getBoundingClientRect()!.bottom;
-       let ld_bot = logouter_elem.getBoundingClientRect()!.bottom;
+       let ld_bot = logscroll_elem.getBoundingClientRect()!.bottom;
        console.log("ADD_LOG_MESSAGE bboxes: le t b, bb",
                    le_top, le_bot, ld_bot);
        return 0.5 * (le_bot + le_top) > ld_bot;
@@ -865,8 +865,9 @@ function add_timestamped_log_message(ts_html: string, msg_html: string) {
   log_elem.appendChild(ne);
 
   if (!in_scrollback) {
+    let by = ne.getBoundingClientRect()!.height;
     lastent = log_elem.lastElementChild!;
-    lastent.scrollIntoView();
+    logscroll_elem.scrollBy(0, by);
   }
 }
 
@@ -1087,7 +1088,7 @@ function startup() {
   let sse_url_prefix = body.dataset.sseUrlPrefix!;
   status_node = document.getElementById('status')!;
   status_node.innerHTML = 'js-done';
-  logouter_elem = document.getElementById("logouter")!;
+  logscroll_elem = document.getElementById("logscroll") || log_elem;
   log_elem = document.getElementById("log")!;
   let dataload = JSON.parse(body.dataset.load!);
   players = dataload.players!;
index 4159567aae332d1d18663b68288304a213337be4..9834eb577d2c6be89294f30a14bd9874d8f70bcd 100644 (file)
@@ -43,8 +43,7 @@
 <p>{{ m::uos() }}
 
 <p>
-<div id="logouter">
-  <div style="overflow-y: scroll; height: 200px;">
+  <div id="logscroll" style="overflow-y: scroll; height: 200px;">
     <table id="log">
       {% for ent in log %}
       <tr><td class="logmsg">{{ ent.logent.logent.html | safe }}</td><td class="logts">{{ent.when}}</td></tr>
@@ -52,5 +51,4 @@
     </table>
   </div>
 </div>
-</div>
 {{ m::footer() }}