webForumDet fria alternativet

script hjälp

1 svar · 515 visningar · startad av runan

runanMedlem sedan maj 20084 inlägg
#1

En kund vill ha minska/öka text storleken knappar på webbplatsen. Jag kan knappt något om javascript men har en funktion som fungerar. Så här ser den ut.

function adjustFontSize(t){
 switch(t){
  case "bigger":
   var body = document.getElementsByTagName("BODY");
   
   var numexp = /[^0-9.]+/;
   if(typeof body[0].style.fontSize == "undefined" || body[0].style.fontSize == ""){
    var fz = 1;
   }else{
    
    var fz = Number(body[0].style.fontSize.replace(numexp,""));
   }
   body[0].style.fontSize = (fz+0.1)+"em";
  break;
  case "smaller":
   var body = document.getElementsByTagName("BODY");
   
   var numexp = /[^0-9.]+/;
   if(typeof body[0].style.fontSize == "undefined" || body[0].style.fontSize == ""){
    var fz = 1;
   }else{
    
    var fz = Number(body[0].style.fontSize.replace(numexp,""));
   }
   body[0].style.fontSize = (fz-0.1)+"em";
  break;
 }
}

Men designen bryts om den förstoras/förminskas för mycket. Därför vill jag ha ett max/min värde. Skriptet ser ut såhär:

var maxSize = 1.5;
var minSize = 0.7;

function adjustFontSize(t){
 switch(t){
  case "bigger":
   var body = document.getElementsByTagName("BODY");
   
   var numexp = /[^0-9.]+/;
   if(typeof body[0].style.fontSize == "undefined" || body[0].style.fontSize == ""){
      var fz = 1;
   }else{
      var newSize = Number(body[0].style.fontSize.replace(numexp,"")) + 0.1;
      if(newSize <= maxSize){    
        body[0].style.fontSize = newSize+"em";
      }else{
       alert('Du använder redan den största tillåtna teckenstorlek på hemsidan.');

      }
  }
  break;
  case "smaller":
   var body = document.getElementsByTagName("BODY");
   
   var numexp = /[^0-9.]+/;
   if(typeof body[0].style.fontSize == "undefined" || body[0].style.fontSize == ""){
     var fz = 1;
   }else{
     var fz = Number(body[0].style.fontSize.replace(numexp,""));
   }

    var newSize = Number(body[0].style.fontSize.replace(numexp,"")) - 0.1;
    if(newSize >= minSize){    
      body[0].style.fontSize = newSize+"em";

   }else{
      alert('Du använder redan den minsta tillåtna teckenstorlek på hemsidan.');

   }
  break;
 }
}

Men det scriptet fungerar inte. Någon som kan hjälpa mig om vad som är fel och hur jag får det att fungera?

Ni får självklart använda skriptet själva.

yadorMedlem sedan mars 2004455 inlägg
#2

Såhär:

function adjustFontSize(t)
{
	var body = document.getElementsByTagName("body");
	var numexp = /[^0-9.]+/;
	if(typeof body[0].style.fontSize == "undefined" || body[0].style.fontSize == "")
		var fz = 1;
	else
		var fz = Number(body[0].style.fontSize.replace(numexp,""));
	fz += parseFloat((t=="smaller")?"-0.1":"+0.1");
	if(0.7 < fz && fz < 1.5)
		body[0].style.fontSize = fz+"em";
	else
		alert("muahahah..");
}

?

136 ms totalt · 3 externa anrop · v20260731065814-full.30151723
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
134 ms — hämta tråd, inlägg och bilagor (db)