29. november 2001 - 14:47Der er
6 kommentarer og 1 løsning
Pixelstørrelse på en streng
Mig bekendt er der ingen metode på et String objekt, som kan returnere pixelstørrelsen på en streng!?
Er der nogen, som har en genial idé til, hvordan man kan lave en sådan metode?
Jeg tænkte på at lave et array med samtlige tegn, og i arrayet gemme information om, hvor mange pixels hver enkelt tegn er.
En metode skulle således tage en String som argument. Metoden skulle så gennemløbe strengen tegn for tegn, slå pixelstørrelsen op i arrayet for hvert tegn, og til sidst har jeg den samlede pixelstørrelse på strengen, som metoden skal returnere.
Hvad siger eksperterne? Er det en tåbelig idé. Kan det gøres smartere?
Det forudsættes at skrifttype og fontsize er statiske størrelser, så det behøver en eventuel løsning ikke at tage højde for. Tja....hvis det var ønskeligt at kunne benytte flere skrifttyper, kunne man tilføje en ekstra dimension til arrayet for at kunne håndtere flere skrifttyper.
Nå, men jeg glæder mig til at høre en masse gode forslag :-)
Tja, den absolut ENESTE måde du kan aflæse pixelstørrelsen på en streng er ved at smide den ind i et element på siden og aflæse dennes størrelse - ellers giver begrebet \"pixel\" ingen mening ;o)
Laver lige lidt kode til dig.. behøves det virke i andet end IE ?
function getFontHeight(sContent,sFont){ var EL = document.getElementById(\"PixelElement\"); EL.style.font = sFont; EL.innerText = sContent; return EL.offsetHeight; }
function getFontHeight(sContent,sFont){ var EL = document.getElementById(\"PixelElement\"); EL.style.fontFamily = sFont; EL.innerHTML = sContent; return EL.offsetHeight; }
var verdanaSize = getFontHeight(\"Test\",\"Verdana\");
Okay, \"offsetWidth\" istedet for \"offsetHeight\" så da ;D
/Thor
Synes godt om
Ny brugerNybegynder
Din løsning...
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.