This commit is contained in:
Julie Blanc 2026-04-12 23:47:04 +02:00
parent 6a45e2bf36
commit 2cf88dffde
11 changed files with 177 additions and 154 deletions

View file

@ -16,22 +16,22 @@ class subtitlesDecor extends Paged.Handler {
return div;
}
createLine(symbol, nodes) {
createLine(symbol, nodes, prefix = "subtitle") {
const line = document.createElement("span");
line.className = "subtitle-line";
line.className = `${prefix}-line`;
const spanBefore = document.createElement("span");
spanBefore.className = "subtitle-before";
spanBefore.className = `${prefix}-before`;
spanBefore.textContent = symbol.repeat(3);
line.appendChild(spanBefore);
const spanText = document.createElement("span");
spanText.className = "subtitle-text";
spanText.className = `${prefix}-text`;
nodes.forEach(node => spanText.appendChild(node));
line.appendChild(spanText);
const spanAfter = document.createElement("span");
spanAfter.className = "subtitle-after";
spanAfter.className = `${prefix}-after`;
spanAfter.textContent = "";
line.appendChild(spanAfter);
@ -39,8 +39,8 @@ class subtitlesDecor extends Paged.Handler {
}
processTitle(subtitle, symbol, withDecor, isLeft) {
if (subtitle.querySelector(".subtitle-line")) return;
processTitle(subtitle, symbol, withDecor, isLeft, prefix = "subtitle") {
if (subtitle.querySelector(`.${prefix}-line`)) return;
const children = Array.from(subtitle.childNodes);
@ -57,16 +57,15 @@ class subtitlesDecor extends Paged.Handler {
});
segments.push(current);
// Reconstruire le titre avec des .subtitle-line
// Reconstruire le titre avec des .{prefix}-line
subtitle.innerHTML = "";
segments.filter(seg => seg.length > 0).forEach(nodes => {
const line = this.createLine(symbol, nodes);
const line = this.createLine(symbol, nodes, prefix);
subtitle.appendChild(line);
const spanAfter = line.querySelector(".subtitle-after");
const spanAfter = line.querySelector(`.${prefix}-after`);
const baseHeight = line.offsetHeight;
let count = 0;
// subtitle-after → Ajouter des symboles à la ligne en vérifiant la hauteur de la ligne, si la ligne devient plus haute, supprimer le dernier symbole ajouté
while (count < 300) {
count++;
spanAfter.textContent = symbol.repeat(count);