Avatar billede dotcom1 Nybegynder
04. november 2009 - 09:49 Der er 6 kommentarer og
1 løsning

Tilføj funktion i større/mindre skriftsørrelse-script

Hej.

Jeg har dette script, som kan gøre skriftstørrelsen større eller mindre. Det virker glimrende, men jeg mangler en funktion, som kan sætte skriftstørrelsen til standard. Kan nogen hjælpe med sådan en funktion?

<script type="text/javascript">
/* Use with multiple IDs: <a href="java script:increaseFontSize('myID','myID2','myID3');">A</a> */

var min=8;
var max=22;

function increaseFontSize() {
for(var i=0; i<arguments.length; i++) {
  var p = document.getElementById(arguments[i]);
      var s = parseInt(p.currentStyle ? p.currentStyle.fontSize : getComputedStyle(p, null).fontSize);
      if(s!=max) {
        s += 1;
      }
      p.style.fontSize = s+"px"
    }
}
function decreaseFontSize() {
for(var i=0; i<arguments.length; i++) {
  var p = document.getElementById(arguments[i]);
      var s = parseInt(p.currentStyle ? p.currentStyle.fontSize : getComputedStyle(p, null).fontSize);
      if(s!=min) {
        s -= 1;
      }
      p.style.fontSize = s+"px"
      }
}
</script>
Avatar billede Slettet bruger
04. november 2009 - 10:22 #1
Du kan "huske" hvad du selv har gjort ved størrelserne undervejs:

F.eks. i en globalt huskekage: var origSizes = ""

Inden du ændrer størrelsen på et element, checker du om det findes i huskekagen:
if (origSizes.indexOf( ":"+arguments[i]+":") == -1)
    origSizes += ":"+arguments[i]+":"+s //s=den nuværende (=originale) størrelse

Og reset må så blive noget i retning af

function resetSizes()
    {
    var ar = split(":",origSizes)
    for (i=1;i<ar.length;i+=2)
        document.getElementById( ar[i] ).style.fontSize = ar[i+1]+"px"
    }

NB: Helt utestet - Bare en idé, ikk' : )
Avatar billede dotcom1 Nybegynder
04. november 2009 - 15:15 #2
Hej og tak for svaret.

Jeg er ikke skarp til javaScript - hvor indsættes:

if (origSizes.indexOf( ":"+arguments[i]+":") == -1)
    origSizes += ":"+arguments[i]+":"+s //s=den nuværende (=originale) størrelse

i scriptet?
Avatar billede Slettet bruger
04. november 2009 - 17:56 #3
Lige før du ændrer:


function increaseFontSize()
  {
  var s,p,i
  for(i=0; i<arguments.length; i++)
    {
    p = document.getElementById(arguments[i])
    s = parseInt(
p.currentStyle ? p.currentStyle.fontSize : getComputedStyle(p, null).fontSize
                        )

    if (origSizes.indexOf( ":"+arguments[i]+":") == -1)
      origSizes += ":"+arguments[i]+":"+s

    if(s < max)
      s += 1

    p.style.fontSize = s+"px"
    }
  }

Og tilsvarende i den anden funktion, ikk'
Avatar billede dotcom1 Nybegynder
05. november 2009 - 11:18 #4
Ok, tak.

Jeg får følgende fejl: "Split is not defined" for linien:
    var ar = split(":",origSizes)

---

<script type="text/javascript">
/* Use with multiple IDs: <a href="java script:increaseFontSize('myID','myID2','myID3');">A</a> */
var min=8;
var max=22;
var origSizes = ""
function increaseFontSize() {
for(var i=0; i<arguments.length; i++) {
  var p = document.getElementById(arguments[i]);
      var s = parseInt(p.currentStyle ? p.currentStyle.fontSize : getComputedStyle(p, null).fontSize);
      if (origSizes.indexOf( ":"+arguments[i]+":") == -1)
      origSizes += ":"+arguments[i]+":"+s
      if(s!=max) {
        s += 1;
      }
      p.style.fontSize = s+"px"
    }
}
function decreaseFontSize() {
for(var i=0; i<arguments.length; i++) {
  var p = document.getElementById(arguments[i]);
      var s = parseInt(p.currentStyle ? p.currentStyle.fontSize : getComputedStyle(p, null).fontSize);
      if (origSizes.indexOf( ":"+arguments[i]+":") == -1)
      origSizes += ":"+arguments[i]+":"+s
      if(s!=min) {
        s -= 1;
      }
      p.style.fontSize = s+"px"
      }
}
function resetSizes()
    {
    var ar = split(":",origSizes)
    for (i=1;i<ar.length;i+=2)
        document.getElementById( ar[i] ).style.fontSize = ar[i+1]+"px"
    }
  </script>
Avatar billede Slettet bruger
05. november 2009 - 12:21 #5
Ups - det var PHP-syntax. Rettes til:
var ar = origSizes.split(":")
Avatar billede dotcom1 Nybegynder
05. november 2009 - 12:42 #6
Hey, og mange tak. Det ser ud til at virke helt fint. Læg lige et svar.

Tak for hjælpen. :)
Avatar billede Slettet bruger
05. november 2009 - 15:06 #7
Tadaa!
Avatar billede Ny bruger Nybegynder

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.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester