Avatar billede planbanan Nybegynder
16. marts 2006 - 08:06 Der er 10 kommentarer

Scroll af hele siden

Jeg er nu for første gang ved at lave en hjemmeside i frames. Jeg har lavet en øvre frame til heading, og så har jeg lavet tre kolonner nedenunder. De har som default hver deres scroll-bar.

Jeg kan godt finde ud af at slå scroll-barerne fra, men hvordan får jeg hele siden til at scrolle på én gang?
Avatar billede roenving Novice
25. marts 2006 - 16:33 #1
Ved at lave de frames, der er forneden, højere !-)
Avatar billede mclemens Nybegynder
25. marts 2006 - 16:54 #2
Prøv denne...
- Det er godt nok aldrig godt at pille ved folks scrollbars,
men hvis det er nødvendigt, så er det jo nødvendigt...

hovedfilen:

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"><head><meta http-equiv="content-type" content="text/html; charset=iso-8859-1"><title>Ingen titel</title>

</head><body>

<iframe id="tframe" name="tframe" src="t.html" style="width:100%;float:left;"></iframe>

<iframe id="lframe" name="lframe" src="l.html" scrolling="no" style="width:33%;float:left;"></iframe>
<iframe id="mframe" name="mframe" src="m.html" scrolling="no" style="width:34%;float:left;"></iframe>
<iframe id="rframe" name="rframe" src="r.html" scrolling="no" style="width:33%;float:left;"></iframe>

</body></html>



t.html filen:
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"><head><meta http-equiv="content-type" content="text/html; charset=iso-8859-1" /><link <title>Ingen titel</title>

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

window.onload=scrollme;
refreshspeed=50;
scrollvalue=0;

function scrollme(){
parent.lframe.scrollBy(0,scrollvalue);
parent.mframe.scrollBy(0,scrollvalue);
parent.rframe.scrollBy(0,scrollvalue);
setTimeout("scrollme();",refreshspeed);
}
//-->
</script>
</head>

<body>
<b onmouseover="scrollvalue=-10;" onmouseout="scrollvalue=0;">up</b>
<b onmouseover="scrollvalue=10;" onmouseout="scrollvalue=0;">ned</b>
</body></html>


samt l, m og r.html:
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"><head><meta http-equiv="content-type" content="text/html; charset=iso-8859-1" /><title>Ingen titel</title></head>

<body>
<br>1<br>2<br>3<br>4<br>5<br>6<br>7<br>8<br>9<br>10<br>11<br>12<br>13<br>...
</body></html>
Avatar billede mclemens Nybegynder
25. marts 2006 - 16:58 #3
hov, ret lige denne

<b onmouseover="scrollvalue=-10;" onmouseout="scrollvalue=0;">up</b>
<b onmouseover="scrollvalue=10;" onmouseout="scrollvalue=0;">ned</b>

til denne:
( det er nok lidt smartere :P )
- skift selv antal pixels i "knapperne" (scrollvalue) ... hvor flydende
samt refresh hastighed i scriptet ... hastigheden den scroller med

<img src="op.gif" onmousedown="scrollvalue=-10;" onmouseup="scrollvalue=0;" onmouseout="scrollvalue=0;">
<img src="ned.gif" onmousedown="scrollvalue=10;" onmouseup="scrollvalue=0;" onmouseout="scrollvalue=0;">
Avatar billede mclemens Nybegynder
25. marts 2006 - 17:24 #4
der er dog lidt probs, hvis den ene frame er længere end de andre stopper de andre når de når til deres slutning mens den anden fortsætter...

evt. løsning er at lade et js kigge på frames'ene og herefter definere en height på en div i de enkelte frames (baseret på den længste af de 3 div's) så de enkelte frames bliver lige lange... (det burde ikke være helt umuligt :P )
Avatar billede mclemens Nybegynder
25. marts 2006 - 17:54 #5
nå, vi kører lige overload på tråden her ;)
-- her er den nye løsning for at få dem til at virke som "1 side"...

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"><head><meta http-equiv="content-type" content="text/html; charset=iso-8859-1"><title>Ingen titel</title>

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

window.onload=function(){
slh=lframe.document.body.scrollHeight;
smh=mframe.document.body.scrollHeight;
srh=rframe.document.body.scrollHeight;
if(slh*2-(smh+srh)>=0)setframeheight(slh);
if(smh*2-(slh+srh)>=0)setframeheight(smh);
if(srh*2-(slh+smh)>=0)setframeheight(srh);
}

function setframeheight(newh){
lframe.document.getElementById("heightcontainer").style.height=newh;
mframe.document.getElementById("heightcontainer").style.height=newh;
rframe.document.getElementById("heightcontainer").style.height=newh;
}

//-->
</script>

</head><body>

<iframe id="tframe" name="tframe" src="t.html" frameborder="0" style="width:100%;float:left;"></iframe>

<iframe id="lframe" name="lframe" src="l.html" scrolling="no" frameborder="0" style="width:33%;float:left;"></iframe>
<iframe id="mframe" name="mframe" src="m.html" scrolling="no" frameborder="0" style="width:34%;float:left;"></iframe>
<iframe id="rframe" name="rframe" src="r.html" scrolling="no" frameborder="0" style="width:33%;float:left;"></iframe>

</body></html>


samt l, m og r.html
(læg nogle flere <br>bla.<br>bla.... i m. html og flere igen i r.html for at se forskellen på denne løsning og den første)

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"><head><meta http-equiv="content-type" content="text/html; charset=iso-8859-1" /><title>Ingen titel</title></head>

<body>
<div id="heightcontainer">
<br>1<br>2<br>3<br>4<br>5<br>6<br>7<br>8<br>9<br>10<br>11<br>12<br>13<br>...
<br>1<br>2<br>3<br>4<br>5<br>6<br>7<br>8<br>9<br>10<br>11<br>12<br>13<br>...
<br>1<br>2<br>3<br>4<br>5<br>6<br>7<br>8<br>9<br>10<br>11<br>12<br>13<br>...
</div>
</body></html>
Avatar billede mclemens Nybegynder
25. marts 2006 - 17:55 #6
glemte t.html, men det er den samme som i 1'løsning (25/03-2006 16:54:17) :)
Avatar billede mclemens Nybegynder
25. marts 2006 - 18:10 #7
men jo, roenving's løsning er nok bedst :)

<html><head>
<script language="javascript">

window.onload=function(){
document.getElementById("lframe").style.height=lframe.document.body.scrollHeight;
document.getElementById("mframe").style.height=mframe.document.body.scrollHeight;
document.getElementById("rframe").style.height=rframe.document.body.scrollHeight;
}
</script></head>

<body>

Iframen:<br />

<iframe id="tframe" name="tframe" src="topsiden.html" frameborder="0" style="width:100%;float:left;"></iframe>

<iframe id="lframe" name="lframe" src="l.html" scrolling="no" frameborder="0" style="width:33%;float:left;"></iframe>
<iframe id="mframe" name="mframe" src="m.html" scrolling="no" frameborder="0" style="width:34%;float:left;"></iframe>
<iframe id="rframe" name="rframe" src="r.html" scrolling="no" frameborder="0" style="width:33%;float:left;"></iframe>

</body></html>
Avatar billede mclemens Nybegynder
25. marts 2006 - 18:12 #8
hehe, scrolling="no" har ingen mening i ovenstående eksempel, andet end at den gør så folk ikke kan bruge siden, hvis js er deaktiveret, så den bør nok lige fjernes :P
Avatar billede mclemens Nybegynder
25. marts 2006 - 18:13 #9
Avatar billede mclemens Nybegynder
08. juli 2006 - 13:00 #10
Hjalp noget af det?
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester