webForumDet fria alternativet
Logga in / Bli medlem

script hjälp

JavaScript

1 svar · 517 visningar · startad av runan

Medlem sedan maj 20084 inlägg
Frågan#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..");
}

?

271 ms totalt · 4 externa anrop · v20260731065814-full.5386d3bf
119 ms — deklarationer (db)
0 ms — hämta statistik (cache)
138 ms — hämta tråd, inlägg och bilagor (db)
128 ms — ändringar (db)