aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--ext/mixed/css/display.css5
-rw-r--r--ext/mixed/js/display.js36
2 files changed, 21 insertions, 20 deletions
diff --git a/ext/mixed/css/display.css b/ext/mixed/css/display.css
index ce64cc49..4db17264 100644
--- a/ext/mixed/css/display.css
+++ b/ext/mixed/css/display.css
@@ -42,6 +42,7 @@ body {
margin: 0;
border: 0;
padding: 0;
+ overflow-y: scroll; /* always show scroll bar */
}
ol, ul {
@@ -132,10 +133,6 @@ html:root[data-yomichan-page=float] .navigation-header {
margin-right: 0.2em;
}
-html:root[data-yomichan-page=search] body {
- overflow-y: scroll; /* always show scroll bar to avoid scanning problems */
-}
-
/*
* Entries
diff --git a/ext/mixed/js/display.js b/ext/mixed/js/display.js
index 5238661b..efe33ee6 100644
--- a/ext/mixed/js/display.js
+++ b/ext/mixed/js/display.js
@@ -372,16 +372,18 @@ class Display {
this.updateNavigation(this.context.previous, this.context.next);
this.setNoContentVisible(definitions.length === 0);
- const fragment = document.createDocumentFragment();
- for (const definition of definitions) {
- fragment.appendChild(this.displayGenerator.createTermEntry(definition));
- }
+ const container = this.container;
+ container.textContent = '';
- await Promise.resolve(); // Delay to help avoid forced reflow warnings in Chrome
- if (this.setContentToken !== token) { return; }
+ for (let i = 0, ii = definitions.length; i < ii; ++i) {
+ if (i > 0) {
+ await promiseTimeout(1);
+ if (this.setContentToken !== token) { return; }
+ }
- this.container.textContent = '';
- this.container.appendChild(fragment);
+ const entry = this.displayGenerator.createTermEntry(definitions[i]);
+ container.appendChild(entry);
+ }
const {index, scroll, disableScroll} = context;
if (!disableScroll) {
@@ -429,16 +431,18 @@ class Display {
this.updateNavigation(this.context.previous, this.context.next);
this.setNoContentVisible(definitions.length === 0);
- const fragment = document.createDocumentFragment();
- for (const definition of definitions) {
- fragment.appendChild(this.displayGenerator.createKanjiEntry(definition));
- }
+ const container = this.container;
+ container.textContent = '';
- await Promise.resolve(); // Delay to help avoid forced reflow warnings in Chrome
- if (this.setContentToken !== token) { return; }
+ for (let i = 0, ii = definitions.length; i < ii; ++i) {
+ if (i > 0) {
+ await promiseTimeout(0);
+ if (this.setContentToken !== token) { return; }
+ }
- this.container.textContent = '';
- this.container.appendChild(fragment);
+ const entry = this.displayGenerator.createKanjiEntry(definitions[i]);
+ container.appendChild(entry);
+ }
const {index, scroll} = context;
this.entryScrollIntoView(index || 0, scroll);