fix/simplify fitSelectBox
This commit is contained in:
parent
11d311d1e8
commit
1308efb8d0
|
@ -229,7 +229,7 @@ function fitSelectBox(...elems) {
|
||||||
const data = [];
|
const data = [];
|
||||||
for (const el of elems) {
|
for (const el of elems) {
|
||||||
const sel = el.selectedOptions[0];
|
const sel = el.selectedOptions[0];
|
||||||
if (!sel) return;
|
if (!sel) continue;
|
||||||
const oldWidth = parseFloat(el.style.width);
|
const oldWidth = parseFloat(el.style.width);
|
||||||
const text = [];
|
const text = [];
|
||||||
data.push({el, text, oldWidth});
|
data.push({el, text, oldWidth});
|
||||||
|
@ -237,15 +237,13 @@ function fitSelectBox(...elems) {
|
||||||
text.push(elOpt.textContent);
|
text.push(elOpt.textContent);
|
||||||
if (elOpt !== sel) elOpt.textContent = '';
|
if (elOpt !== sel) elOpt.textContent = '';
|
||||||
}
|
}
|
||||||
el.style.width = '';
|
el.style.width = 'min-content';
|
||||||
|
}
|
||||||
|
for (const {el, text, oldWidth} of data) {
|
||||||
|
const w = el.offsetWidth;
|
||||||
|
if (w && oldWidth !== w) el.style.width = w + 'px';
|
||||||
|
text.forEach((t, i) => (el.options[i].textContent = t));
|
||||||
}
|
}
|
||||||
requestAnimationFrame(() => {
|
|
||||||
for (const {el, text, oldWidth} of data) {
|
|
||||||
const w = el.offsetWidth;
|
|
||||||
if (w && oldWidth !== w) el.style.width = w + 'px';
|
|
||||||
text.forEach((t, i) => (el[i].textContent = t));
|
|
||||||
}
|
|
||||||
});
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/* exported fitSelectBoxesIn */
|
/* exported fitSelectBoxesIn */
|
||||||
|
|
Loading…
Reference in New Issue
Block a user