NIWO - nl.internet.www.ontwerpFAQ

Van:
Datum: Dinsdag 9 maart 2010, 00:48
Onderwerp: Re: Vervelend probleempje in Javascript
"Ton van Doorn" <Ton@niethier.invalid> wrote:

Dag,

[Lettergrootte]
> Ik doe iets fout in het if-statement maar ik kan na lang zoeken het
> niet vinden.

> function switchFontSize (waarde) {
>  CurrentFontSize = GetCookie("font_size");
>  switch (waarde) {
>    case 'inc':
>      if (CurrentFontSize+0.1 < 1.4) {
>        CurrentFontSize+=0.1;
>      }
>      else {
>        CurrentFontSize=1.4;
>      }
>      break;
>    case 'dec':
>      if (CurrentFontSize-0.1 > 0.6) {
>        CurrentFontSize-=0.1;
>      }
>      else {
>        CurrentFontSize=0.6;
>      }
>      break;
>    default:
>      CurrentFontSize=0.8;
>    }
>  SetCookie('font_size', CurrentFontSize, 30);
>  }

Die gebroken getallen geven een wat lelijk resultaat (hier bijv. iets als
1.2000000000000002, i.p.v. 1.2). Dat komt omdat het benaderingen zijn. Waar
dat kan gebruik je liefst gehele getallen. In dit geval in de richting van:

 var size = 10; // '1.0'

 function switchFontSize(inc) {
   size = Math.max(6, Math.min(14, size + inc));
   alert(size/10);
 }

En dan roep je aan met als argument -1 of 1. (Je kan nu een integer opslaan
en het resultaat van een deling door 10 gebruiken als waarde voor een
stijl-eigenschap.)

WD