09. marts 2004 - 19:33Der er
39 kommentarer og 1 løsning
Skaler font størrelsen
Hej,
Jeg har flere steder set en javascript implementering som gør det muligt at sætte fontstørrelsen op og ned. Nogen der ligger inde med et sådant script?
Det skal helst kunne hhv. lægge én til og trække én fra den aktuelle størrelse - altså ikke med et nyt stylesheet hver gang, men med vilkårligt mange antal størrelser.
HVis du ikke fastsætter en px størrelse på din side vil det være muligt at ændre størrelsen ved at holde ctrl nede mens man scroller. Eller vælger i vis -> tekststørrelse.
Man bruger punkter (points, pt) i trykte medier, pixel (px) på skærme ...
-- og det er da fint, at du laver noget, som også understøtter v4-browserne, det er jeg nemlig selv holdt fuldstændig op med, hvorfor getElementById dækker alle aktuelle browsere !-)
Synes godt om
Slettet bruger
09. marts 2004 - 20:32#8
vil
function IncreaseFont(layer){ fontS = getLayerStyle(layer).fontSize; getLayerStyle(layer).fontSize = parseInt(fontS)+1+'px'; }
function DecreaseFont(layer){ fontS = getLayerStyle(layer).fontSize; getLayerStyle(layer).fontSize = parseInt(fontS)-1+'px'; }
virke på hele siden og override værdierne i stylesheetet?
Synes godt om
Slettet bruger
09. marts 2004 - 20:34#9
og ikke mindst så skal det virke på hele siden ved ét kald, uagtet hvilke elementer teksten måtte befinde sig...
Du kan ikke aflæse noget style fra elementer, hvis de ikke står i tagget eller er sat med js, derfor mit hack, med at sætte det absolut, hvis det ikke kan findes...
Synes godt om
Slettet bruger
09. marts 2004 - 20:44#11
Jeg kan ikke få nogen af dem til at virke
Synes godt om
Slettet bruger
09. marts 2004 - 20:46#12
Kommer lige i tanke om at funktionen skal kunne skrive en cookie der husker den aktuelle værdi, således at det kommer til at gælde for alle sider på sitet..
header skal naturligvis ikke være ligeså stor, men det er vel ligemeget hvis der bare lægges 1 til og trækkes 1 fra. Så gælder det vel for alle tekster?
Jeg skal ikke blandes ind i det her, men jeg har lavet en del på NS4. Man kan IKKE sætte font størrelse dynamisk. Tro mig. Så der er ingen grund til at understøtte document.layers her for det vil ikke kunne virke alligevel.
Ja, på en bare nogenlunde kompliceret side, vil der blive en del iterationer igennem alle niveauer i de rekursive kald, til gengæld slipper du for at overveje, om det konkrete element normalt vil arve denne type css-property !-)
-- hvis det kan begrænses på en eller anden måde, kunne man jo også gennemsøge f.eks. en liste af tagNames og så udføre det overfor disse elementer, hvilket alt andet lige vil være adskilligt hurtigere !-)
Synes godt om
Slettet bruger
11. marts 2004 - 13:07#32
Ja, for i grunden er det kun ved <td>, <div>, <a>, <p>, <b>, <span> og <h1,2,3,4,5,6>
Så skal vi jo tælle, hvor mange gange, der er trykket på op og ned ...
<body onload="genskabTxtStr()"> <script type="text/javascript"> var num = 0; function chgFont(dir){ num += (dir=='up')?1:-1; var tags = ['TD','DIV','A','P','B','SPAN','H1','H2','H3','H4','H5','H6','H7'],elms,j; for(var i=0;tags.length>i;i++){ elms = document.getElementsByTagName(tags[i]); for(j=0;elms.length>j;j++){ if(elms[j].style.fontSize){ var foer = parseInt(elms[j].style.fontSize); elms[j].style.fontSize = ((dir=='up')?++foer:--foer) + 'px'; }else{ elms[j].style.fontSize = (dir=='up')?'12px':'10px'; } } } var dato = new Date(new Date().getTime() + 8640000000);//100 dage document.cookie = "num="+num+";expires="+dato.toGMTString(); } function genskabTxtStr(){ if (document.cookie){ var n = document.cookie.indexOf("num="),val; if (n>-1){ val = document.cookie.substring(n+4); n = val.indexOf(";"); if(n>-1)val=val.substring(0,n); dir = (val.indexOf("-")>-1)?'down':'up'; val = Math.abs(parseInt(val)); for(i=0;val>i;i++)chgFont(dir) } } } </script> <a href="#" onclick="chgFont('up');return false;">Sæt størrelse op</a>
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.