diff --git a/src/components/Combat.vue b/src/components/Combat.vue index 1b77d65..ca005a7 100644 --- a/src/components/Combat.vue +++ b/src/components/Combat.vue @@ -12,6 +12,7 @@
+
@@ -116,7 +117,8 @@ export default class Combat extends Vue { const elements = entry.render() if (elements.length > 0) { - const before = log.querySelector("div.log-entry") + const before = log.querySelector("div.log-entry") as HTMLElement|null + const holder = document.createElement("div") holder.classList.add("log-entry") entry.render().forEach(element => { @@ -135,7 +137,12 @@ export default class Combat extends Vue { log.insertBefore(hline, before) log.insertBefore(holder, hline) - log.scrollTo({ top: 0, left: 0 }) + // TODO this behaves a bit inconsistent -- sometimes it jerks and doesn't scroll to the top + if (log.scrollTop === 0 && before !== null) { + log.scrollTo({ top: before.offsetTop, left: 0 }) + } + + log.scrollTo({ top: 0, left: 0, behavior: "smooth" }) } } } @@ -292,6 +299,7 @@ export default class Combat extends Vue { } .log { + position: relative; grid-area: main-row-start / main-col-start / main-row-end / main-col-end; overflow-y: scroll; overflow-x: hidden; @@ -301,6 +309,11 @@ export default class Combat extends Vue { width: 70vw; max-width: 1000px; align-self: flex-start; + height: 100%; +} + +.log-filler { + height: 100%; } .left-stats, @@ -449,6 +462,7 @@ a { } .log > div.log-entry { + position: relative; color: #888; padding-top: 4pt; padding-bottom: 4pt; diff --git a/src/components/Explore.vue b/src/components/Explore.vue index 3748c23..3e29d87 100644 --- a/src/components/Explore.vue +++ b/src/components/Explore.vue @@ -1,7 +1,7 @@