script hjälp

JavaScript

1 svar · 520 visningar · startad av runan

Medlem sedan maj 20084 inlägg
Trådstart#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.

Medlem 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..");
}

?

273 ms totalt · 4 externa anrop · v20260731065814-full.d34c6d5a
140 ms — deklarationer (db)
0 ms — hämta statistik (cache)
130 ms — hämta tråd, inlägg och bilagor (db)
140 ms — ändringar (db)