---
title: "init. av lager"
type: "forum-thread"
url: "https://www.webforum.nu/amne/javascript/74028-init-av-lager"
topic: "JavaScript"
topic_url: "https://www.webforum.nu/amne/javascript"
author: "monAmour"
published: "2003-04-14T06:26:17.000Z"
updated: "2003-04-15T15:17:07.000Z"
replies: 6
views: 304
page: 1
pages: 1
language: "sv-SE"
site: "webForum — webforum.nu"
rights: "Upphovsrätten till varje inlägg tillhör dess författare."
attribution: "Citera som: webForum, https://www.webforum.nu/amne/javascript/74028-init-av-lager"
---

# init. av lager

## #1 — monAmour, 2003-04-14T06:26Z

Jag kan inte få den här enkla scroll funktionen att fungera tillsammans med min init() funktion.
Hade en enklare init förut utan getElementById och då fungerade den, har byggt om den nu för jag ska skapa ett mer avancerat skript.
Det underliga är att scroll funktionen idagsläget bygger på scrl.ypos.. och den är satt och inte "undefined". det har jag sett med hjälp av alert funktionen jag lagt in för att se värdena just nu.

Här är min kod snutt:

```
<script language="javascript" type="text/javascript">
<!--
var ns4 = (document.layers)? true:false
var ie4 = (document.all)? true:false
var domBrw = (document.getElementById) ? true:false

function init() {
	if (domBrw) {
		scrl = document.getElementById("insideIframe");
		scrl.offH = scrl.offsetHeight;
		scrl.clipH = scrl.offsetHeight;
		scrl.ypos = parseInt(scrl.style.top);
	}
	else if (ie4) {
		scrl = document.all.insideIframe;
		scrl.offH = scrl.offsetHeight;
		scrl.clipH = scrl.offsetHeight;
		scrl.ypos = parseInt(scrl.style.top);
	}
	else if (ns4) {
		scrl = document.layers.styrLager.document.layers.upperTextFrameBody.document.layers.iFrameLayer.document.layers.insideIframe;
		scrl.offH = scrl.document.height;
		scrl.clipH = scrl.clip.height;
		scrl.ypos = parseInt(scrl.top);
	}

	scrl.active = false;

	alert("OffsetHeight is: "+scrl.offH+"\nand ClipHeight is: "+scrl.clipH+"\nand Ypos is: "+scrl.ypos);
}
	

function scrollUp() {
	if (scrl.active) {
		scrl.ypos -= 5
		scrl.top = scrl.ypos
		setTimeout("scrollUp()",30)
	}
}

function scrollDown() {
	if (scrl.active) {
		scrl.ypos += 5
		scrl.top = scrl.ypos
		setTimeout("scrollDown()",30)
	}
}

//-->
</script>
<body onload="init()">
```

Varför fungerar det inte, jag använder IE6 just nu.

Permalänk: https://www.webforum.nu/p/74028

## #2 — Jojoxx, 2003-04-14T17:07Z

Du kan inte bara hitta på en egen DOM och ge objekten roliga egenskaper :) I w3-DOM använder du i ditt fall scrl.style.top och inte scrl.top exempelvis.

Ta en titt på [layerlib.js](http://www.jojoxx.net/jscript/libs/index.html#layerlib) så hittar du lite cross-browser funktioner för att flytta/läsa av lagerpositioner.

Permalänk: https://www.webforum.nu/p/1010779

## #3 — monAmour, 2003-04-15T06:43Z

Har kikat i din layerlib nu och har ett script som ser ut så här..
Dock verkar det inte som att själva timeout funktionen fungerar.. vill ju att mitt lager ska scrollas. dock flyttas det bara 1 steg i taget ändå..
Why?

Min kod:

```
var active=0;

function moveIt(id,y) {
	if (document.all || document.getElementById || document.layers) {
		if (document.all) {
			document.all[id].style.top = y;
		} else if (document.getElementById) {
			document.getElementById(id).style.top = y;
		} else if (document.layers) {
			document.layers[id].top = y;
		}
	}
}

function moveUp(id) {

	if (document.all || document.getElementById || document.layers) {
		if (document.all) {
			var currentY = parseInt(document.all[id].style.top);
		} else if (document.getElementById) {
			var currentY = parseInt(document.getElementById(id).style.top);
		} else if (document.layers) {
			var currentY = parseInt(document.layers[id].top);
		}

	currentY-=5;
	moveIt(id,currentY);
	
	}
}

function moveDown(id) {

	if (document.all || document.getElementById || document.layers) {
		if (document.all) {
			var currentY = parseInt(document.all[id].style.top);
		} else if (document.getElementById) {
			var currentY = parseInt(document.getElementById(id).style.top);
		} else if (document.layers) {
			var currentY = parseInt(document.layers[id].top);
		}

	currentY+=5;
	moveIt(id,currentY);
	
	}
}

function scrollUp(id,speed) {
	if (active==1) {
		if (document.all || document.getElementByid || document.layers) {
			moveUp(id);

			setTimeout("scrollBy("+id+")",speed);
		}
	}
}

function scrollDown(id,speed) {
	if (active==1) {
		if (document.all || document.getElementByid || document.layers) {
			moveDown(id);

			setTimeout("scrollBy("+id+")",speed);
		}
	}
}

// Triggar med följande:
<a href="#" onMouseDown="active=1; scrollDown('insideIframe',30);" onMouseOut="active=0" onMouseUp="active=0"><img src="bilder/scroll_up.gif" border="0" alt="Skrolla upp"></a><br>
<img src="bilder/scroll_bar.gif" border="0"><br>
<a href="#" onMouseDown="active=1; scrollUp('insideIframe',30);" onMouseOut="active=0" onMouseUp="active=0"><img src="bilder/scroll_down.gif" border="0" alt="Skrolla ned"></a>
```

Tack på förhand!

Permalänk: https://www.webforum.nu/p/1011027

## #4 — Peter S, 2003-04-15T11:35Z

Kan du visa koden för lagret också?

 :)

Permalänk: https://www.webforum.nu/p/1011232

## #5 — monAmour, 2003-04-15T12:19Z

Så klart:

Så här ser den ut:

```
<div id="iFrameLayer" style="position:absolute; left:-10px; top:-21px; z-index:99; width:454px; height:482px; clip:rect(0,454,482,0); visibility:visible;">
<div id="insideIframe" style="position:absolute; left:25px; top:0px; z-index:1">
<?
include($pageIFrame);
?>
</div>
</div>
```

Nu så.. som ni ser hämtas dynamisk data från en PHP fil med hjälp av php kommandot include.. men det ska väl inte spela någon roll för javascriptet..
php sidan som inkluderas innehåller inget konstig heller.. inga nya \<head\> eller \<html\> tagger o så.

Permalänk: https://www.webforum.nu/p/1014168

## #6 — Peter S, 2003-04-15T14:06Z

Ursäkta dröjsmålet:

```
<script type="text/javascript">
<!--

var active=0, temp = null;

function moveIt(id,y) {
	if (document.all || document.getElementById || document.layers) {
		if (document.all) {
			document.all[id].style.top = y;
		} else if (document.getElementById) {
			document.getElementById(id).style.top = y;
		} else if (document.layers) {
			document.layers[id].top = y;
		}
	}
}

function moveUp(id) {

	if (document.all || document.getElementById || document.layers) {
		if (document.all) {
			var currentY = parseInt(document.all[id].style.top);
		} else if (document.getElementById) {
			var currentY = parseInt(document.getElementById(id).style.top);
		} else if (document.layers) {
			var currentY = parseInt(document.layers[id].top);
		}

	currentY-=5;
	moveIt(id,currentY);
	
	}
}

function moveDown(id) {
	if (document.all || document.getElementById || document.layers) {
		if (document.all) {
			var currentY = parseInt(document.all[id].style.top);
		} else if (document.getElementById) {
			var currentY = parseInt(document.getElementById(id).style.top);
		} else if (document.layers) {
			var currentY = parseInt(document.layers[id].top);
		}

	currentY+=5;
	moveIt(id,currentY);
	}
}

function scrollUp(id,speed) {
	temp = id;
	if (active==1) {
		if (document.all || document.getElementByid || document.layers) {
			moveUp(id);
			setTimeout("scrollUp(temp,"+speed+")",speed);
		}
	}
}

function scrollDown(id,speed) {
	temp = id;
	if (active==1) {
		if (document.all || document.getElementByid || document.layers) {
			moveDown(id);
			setTimeout("scrollDown(temp,"+speed+")",speed);
		}
	}
}

//-->
</script>
```

 :)

Permalänk: https://www.webforum.nu/p/1014270

## #7 — monAmour, 2003-04-15T15:17Z

Ingen fara med dröjesmål.. glad att någon vill hjälpa..
Det funkar utmärkt.. Tackar och bockar!

Permalänk: https://www.webforum.nu/p/1014320

---

Tråden på webben: https://www.webforum.nu/amne/javascript/74028-init-av-lager
