X-Git-Url: https://git.auder.net/?a=blobdiff_plain;ds=sidebyside;f=utils%2FdrawDiagrams.js;fp=utils%2FdrawDiagrams.js;h=ec55d50a2659e5bda2ae904205c3af4c79969e0b;hb=549ca151c2c1a5d0c76cc1ab249d1687c5a18f62;hp=46726431f74aa36f81f60cc89f27c891314e5324;hpb=5abaabb3061f9c2927e2204a33a58c309f3a0082;p=xogo.git diff --git a/utils/drawDiagrams.js b/utils/drawDiagrams.js index 4672643..ec55d50 100644 --- a/utils/drawDiagrams.js +++ b/utils/drawDiagrams.js @@ -3,35 +3,51 @@ function fenToDiag(vname) { window.V = module.default; for (const [k, v] of Object.entries(V.Aliases)) window[k] = v; - drawDiagrams(); + re_drawDiagrams(); }); } // TODO: heuristic to improve for ratio != 1 (how?) -function getDiagSize() { - if (window.innerWidth > 1000) - return 500; - if (window.innerWidth < 800) - return window.innerWidth; - return window.innerWidth / 2; +function getDiagSize(elt) { + const baseWidth = Math.min(window.innerWidth, 800); + let multFact = 1; + if (elt.classList.contains("left") || elt.classList.contains("right")) + multFact = 0.45; + else if (baseWidth > 630) + multFact = 0.5; + else + multFact = 0.7; + return multFact * baseWidth; } -function drawDiagrams() { +let vr = null; +function re_drawDiagrams() { const diagrams = document.getElementsByClassName("diag"); + if (diagrams.length == 0) + return; + const redrawing = !!vr; + if (!redrawing) + vr = new Array(diagrams.length); for (let i=0; i