webForumDet fria alternativet

Varför funkat det inte?

10 svar · 232 visningar · startad av eas

easMedlem sedan sep. 2001269 inlägg
#1

Är det nån smart typ som förstår varför denna kod inte funkar?

<script>
lasare=navigator.appName;

if (lasare=="Microsoft Internet Explorer"){
hojd=document.body.clientHeight;
bredd=document.body.clientWidth;
}

else if (lasare=="Netscape"){
hojd=window.innerHeight;
bredd=window.innerWidth;
}

</script>

:q :q :q

------------------
Schöndells webbsajt

JojoxxMedlem sedan juni 20004 308 inlägg
#2

Krockar det med något annat script? Ser inget direkt fel i denna kod, och det funkar i Netscape 4, Mozilla 0.9.5 och Internet Explorer 5.5 (de webbläsare jag har installerade).

------------------
/ J

easMedlem sedan sep. 2001269 inlägg
#3

Jag tänkte att jag skulle fixa så att ett lager alltid kom i mitten oavsett vilken storlek få fönstret man har.

Här är hela koden:

<html>
<head>
<title>Untitled Document</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">

<script>
lasare=navigator.appName;

if (lasare=="Microsoft Internet Explorer"){
hojd=document.body.clientHeight;
bredd=document.body.clientWidth;
}

else if (lasare=="Netscape"){
hojd=window.innerHeight;
bredd=window.innerWidth;
}

</script>

</head>

<body bgcolor="#FFFFFF" text="#000000">

<!--
<div style="position:absolute; top:200px; left:200px">
<img src="start.gif" width="58" height="15"><img src="filarkiv.gif" width="58" height="15"><img src="upload.gif" width="58" height="15"><img src="info.gif" width="58" height="15"> 
</div>
-->

<script>
v_fonster=(bredd-286)/2;
t_fonster=(hojd-167)/2;

document.write('<div style="position:absolute; top:'+v_fonster+'px; left:'+t_fonster+'px">'+
'<img src="fonster.gif" width="286" height="167">'+
'</div>');
</script>

</body>
</html>

------------------
Schöndells webbsajt

[Redigerat av eas den 06 nov 2001]

JojoxxMedlem sedan juni 20004 308 inlägg
#4

Börja med att flytta ner första script-blocket under <body>-elementet. Annars kommer Internet Explorer att tycka att objektet document.body inte finns, eftersom det inte blivit skapat än.

Sedan skulle jag använda;
v_fonster=Math.round((bredd-286)/2);
t_fonster=Math.round((hojd-167)/2);
för att se till att du inte får några decimaltal som svar. Blir inge bra om du försöker placera lagret på halv pixel :)

Till sist skulle jag välja att skapa lagret med ren html-kod och sedan flytta det med JavaScrip till rätt plats. Då kommer det även att funka i Netscape 4.x.

------------------
/ J

easMedlem sedan sep. 2001269 inlägg
#5

Tack!

Jag gjorde som du så och flyttade ner scriptet som kollar browsern under body och det funkade fin!!! :) :)

Sen ändrade jag det andra scriptet till

<div id=fonster style="position:absolute">
<img src="fonster.gif" width="286" height="167">
</div>

<script>
v_fonster=Math.round((bredd-286)/2);
t_fonster=Math.round((hojd-167)/2);

fonster.style.left=v_fonster;
fonster.style.top=t_fonster;
</script>

Det funkar på min dator.
Vet du vad jag kan göra för att få med mig typ Netscape? :q

------------------
Schöndells webbsajt

[Redigerat av eas den 06 nov 2001]

JojoxxMedlem sedan juni 20004 308 inlägg
#6

Ta en titt på funktionen moveLayerAbs() på denna sida.

------------------
/ J

easMedlem sedan sep. 2001269 inlägg
#7

hmm....
Inte helt perfekt

Vill inte verka tjatig men grjerna flyttar sig inte alls.

document.all[...].style är null eller inte ett objekt, du vet?

Hela min kod med din funktion som jag har lagt in och döpt om till flyttaLager!

<html>
<head>
<title>Untitled Document</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">

<script>
/* Layerlib.js                           Version 2.1

   Följande funktioner är skrivna av Johan Johansson
   och är fria att användas så länge som dessa rader
   står kvar i omodifierade.

   [url="http://www.jojoxx.net"]http://www.jojoxx.net[/url]   -*-  2001-09-30 */

function flyttaLager(Id,x,y){
	if (document.all){
		if (x) document.all[Id].style.left = x;
		if (y) document.all[Id].style.top = y;
	} else if (document.layers){
		if (x) document.layers[Id].left = x;
		if (y) document.layers[Id].top = y;
	} else if (document.getElementById){
		if (x) document.getElementById(Id).style.left = x+'px';
		if (y) document.getElementById(Id).style.top = y+'px';
	}
}
</script>

</head>

<body bgcolor="#FFFFFF" text="#000000" background="bg.gif" onresize="location.reload()">
<script>
lasare=navigator.appName;

if (lasare=="Microsoft Internet Explorer"){
hojd=document.body.clientHeight;
bredd=document.body.clientWidth;
}

else if (lasare=="Netscape"){
hojd=window.innerHeight;
bredd=window.innerWidth;
}

</script>

<!-- MENY  -->
<div id=meny style="position:absolute">
<img src="start.gif" width="58" height="15"><img src="filarkiv.gif" width="58" height="15"><img src="upload.gif" width="58" height="15"><img src="info.gif" width="58" height="15"> 
</div>

<script>
v_meny=Math.round((bredd-240)/2);
t_meny=Math.round((hojd-197)/2);

flyttaLager(meny,v_meny,t_meny);
</script>

<!-- SLUT PÅ MENYN  -->

<!-- FÖNSTRET  -->

<div id=fonster style="position:absolute">
<img src="fonster.gif" width="286" height="167">
</div>

<script>
v_fonster=Math.round((bredd-286)/2);
t_fonster=Math.round((hojd-167)/2);

flyttaLager(fonster,v_fonster,t_fonster);
</script>

<!-- SLUT PÅ FÖNSTRET -->

<!-- SCROLLGREJER  -->

<div id=upp style="position:absolute"> <img src="upp.gif" width="11" height="8"> 
</div>

<div id=ner style="position:absolute"> <img src="ner.gif" width="11" height="8">
</div>

<script>
v_upp=Math.round((bredd+246)/2);
t_upp=Math.round((hojd-163)/2);

v_ner=Math.round((bredd+246)/2);
t_ner=Math.round((hojd+120)/2);

flyttaLager(upp,v_upp,t_upp);

flyttaLager(ner,v_ner,t_ner);

</script>

<!-- SLUT PÅ SCROLLGREJER -->

</body>
</html>

------------------
Schöndells webbsajt

[Redigerat av eas den 06 nov 2001]

JojoxxMedlem sedan juni 20004 308 inlägg
#8

flyttaLager(fonster,v_fonster,t_fonster);

Här måste du sätta "fonster" inom citat-tecken. Annars blir det ett variabelnamn. (och motsvarande på de andra ställena).

------------------
/ J

easMedlem sedan sep. 2001269 inlägg
#9

Oppps

Tänkte inte på det

när man anropar en funktion typ.

function dolj(id){
id.style.display="";
}

Så behöver man ju inte det!

Iallafall tack det djupast för din hjälp, du är underbar :)

------------------
Schöndells webbsajt

JojoxxMedlem sedan juni 20004 308 inlägg
#10

Det är då för att id då ses som ett objekt istället för en variabel. Lite småkrångligt :)

------------------
/ J

easMedlem sedan sep. 2001269 inlägg
#11

Nu är det natti natti för min del!

------------------
Schöndells webbsajt

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