Avatar billede bagnavnet Nybegynder
01. juli 2005 - 14:31 Der er 24 kommentarer og
1 løsning

scroll funktion

Hej, Jeg har brug for en scroll funktion på min hjemmeside.

Den skal bestå af 2 pile ( helt almindelige i sort/grå og ikke noget fancy ), en for up og en for down. De skal være pladseret på hvert sit sted på den samme side som ligger i en tabel. Herfra skal man kunne scrolle på en anden side som ligger i en anden tabel/Iframe.

Er den en der kan hjælpe mig med et sript til sådan en funktion?

På forhånd mange tak
Avatar billede plazm Nybegynder
01. juli 2005 - 14:33 #1
noget ligesom dette ?
http://testsitet.1go.dk/test.php
Avatar billede bagnavnet Nybegynder
01. juli 2005 - 14:39 #2
ikke helt. Jeg skal ikke have baren ude i siden, men kun en pil ( som man ville tegne den i hånden ). En for oven og en for neden.
Avatar billede bagnavnet Nybegynder
02. juli 2005 - 19:52 #3
Jeg har nu fået lavet en scroll funktion. Jeg bruger tabeller med iframes i sig på min side. Jeg vil gerne hvis mine pile kan ligge i den ene tabel og når man så trykker på dem, så scroller man i den anden tabel/iframe.

<div id="divUp">
    <p><a href="#" onmouseover="scroll(-4)" onmouseout="noScroll()" onclick="return false">[]</a></p>   

</div>

dette er koden for den "pile" som man scroler op med. Altså den som skal ligge i en anden tabel formoder jeg. Men hvordan får jeg så den til at peje på den tabel som jeg vil scrolle?
Avatar billede per1291 Nybegynder
04. juli 2005 - 00:42 #4
Hej bagnavn!

Prøv at lege med dette script.
Jeg bruger onclick, for så er det nemmere for dig at se hvad der sker, mens du eksperimenterer.
Der er ikke indsat nogen "stopper", når dit iframe kommer for langt op eller ned.
Det kan du nok selv finde ud af.

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
    <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
    <title>Moving Iframe</title>
<script>
function moveup()
{
var id=window.document.getElementById("ifram")
var top=parseInt(id.style.top)
id.style.top=(top-4)+"px"
}
function movedown()
{
var id=window.document.getElementById("ifram")
var top=parseInt(id.style.top)
id.style.top=(top+4)+"px"
}
</script>
</head>
<body>
<table border="1">
<tr><td width="90%" rowspan="2"><div id="ifram" style="position: relative; top: 0px;">scrolling iframe</div></td><td width="10%"><button onclick="moveup()">UP</button></td></tr>
<tr><td><button onclick="movedown()">DOWN</button></td></tr>
</table>
</body>
</html>

Hilsen  Per
Avatar billede plazm Nybegynder
04. juli 2005 - 01:17 #5
Det kan klares uden alt det <div> tingeltangel.
Det kræver to ting at få den til at gøre det ved en iframe:
At iframen navn er IFR eller at du ændrer functionen

<iframe width="200" height="200" src=index.php name=ifr></iframe>

Og at du smider følgenden ind på de sider som skal være i iframen:

<script language="JavaScript1.2">
  function scrollme(s1,s2) {
    window.scrollBy(s1,s2);
    scrolldelay = setTimeout('scrollme('+s1+','+s2+')',10);
  }
  function noscroll() {
    clearTimeout(scrolldelay);
  }
</script>

Og du kan nu scrolle med følgende links

<a href="#" onmouseover="ifr.scrollme(0,-1);" onmouseout="ifr.noscroll();" onclick="return false">[/\]</a>
<a href="#" onmouseover="ifr.scrollme(0,1);" onmouseout="ifr.noscroll();" onclick="return false">[\/]</a>
<a href="#" onmouseover="ifr.scrollme(1,0);" onmouseout="ifr.noscroll();" onclick="return false">[<]</a>
<a href="#" onmouseover="ifr.scrollme(-1,0);" onmouseout="ifr.noscroll();" onclick="return false">[>]</a>
Avatar billede schaefner Juniormester
04. juli 2005 - 01:27 #6
Avatar billede per1291 Nybegynder
04. juli 2005 - 02:01 #7
plazm skriver:
> Det kan klares uden alt det <div> tingeltangel.

Nå, og hvorfor er dit <timeOut> tingeltangel så bedre?
[Forresten var dit første udkast rigtig flot.]

Denne kommentar er ikke en krigerisk protest. Dit script er formentlig glimrende. Det må bagnavnet afgøre. - Jeg har blot vist den ønskede opbygning, nemlig noget, der ligner to uafhængige tabeller ved siden af hinanden. Sæt border="0", så tror brugerne det er dét de ser.

Hilsen Per
Avatar billede plazm Nybegynder
04. juli 2005 - 11:33 #8
Per, det var nu ikk ment som et angreb på dig, men hvorfor skrive, xx antal linier mere javascript og arbejde på at lave det crossbrowser, når 7 linier er nok. Desuden er der jo det problem med div er at du ikk man markere ned eller op af siden uden at scriptet går i kage, da "top" ikke bliver ændret når du markerer.
Avatar billede per1291 Nybegynder
04. juli 2005 - 12:08 #9
plazm -> Du har ret. - Hilsen  Per
Avatar billede bagnavnet Nybegynder
05. juli 2005 - 15:45 #10
plazm, jeg sidder og leger med din version, og har i den forbindelse et par spørgsmål.

Du skriver at iframe skal hedde ifr. Sikkert et dumt spørgsmål, men den kan vel hedde hvad som helst? Jeg har kaldt min tekstleft??

I selve scriptet står der (s1,s2) - hvad er s1 og s2? Skal jeg kalde dem det eller skal jeg kalde dem hvad mine sider hedder?
Avatar billede plazm Nybegynder
05. juli 2005 - 15:50 #11
bagnavnet
jo det kan de godt, bare du husker at ændre linkene så ;)
<a href="#" onmouseover="tekstleft.scrollme(0,-1);" onmouseout="tekstleft.noscroll();" onclick="return false">[/\]</a>

s1 og s2 er bare 2 variabler og de skal ikke nødvendigvis hedde s1 og s2, men scroll1 og scroll2 var for langt ;) Du skal ikke omdøbe dem, bare sætte det script ind på samtlige sider du viser i Iframen.

som du kan se i linket
<a href="#" onmouseover="ifr.scrollme(0,-1);" onmouseout="ifr.noscroll();" onclick="return false">[/\]</a>
så har jeg (0,-1) hvor 0 er den verticale forskydning og -1 den horrisontale.
Avatar billede plazm Nybegynder
05. juli 2005 - 15:51 #12
selfølgelig skulle jeg vende de sidste to om.
hvor 0 er den verticale forskydning og -1 den horrisontale.
skal være
hvor -1 er den verticale forskydning og 0 den horrisontale.
Avatar billede bagnavnet Nybegynder
05. juli 2005 - 16:25 #13
ok, jeg har nu sat dine scrips ind i mine dokumenter. I dokumentet "news" som loades ind i min ene iframe har jeg:
--------------
<script language="JavaScript1.2">
  function scrollme(s1,s2) {
    window.scrollBy(s1,s2);
    scrolldelay = setTimeout('scrollme('+s1+','+s2+')',10);
  }
  function noscroll() {
    clearTimeout(scrolldelay);
  }
</script>

og i min anden iframe/table hvor jeg skal have scroll knapperne pladseret har jeg:
--------------------------------
<a href="#" onmouseover="tekstleft.scrollme(0,-2);" onmouseout="tekstleft.noscroll();" onclick="return false">[/\]</a>
og
<a href="#" onmouseover="tekstleft.scrollme(0,2);" onmouseout="tekstleft.noscroll();" onclick="return false">[\/]</a>

kun disse 2 da jeg kun skal bruge op og ned.

i min menu, hvor jeg linker til siderne har jeg angivet navnet på iframen til at være tekstleft.

Men, jeg kan ikke få det til at virke, kan du se om der skulle være en fejl et sted? Eller er der noget jeg har glemt?
Avatar billede plazm Nybegynder
05. juli 2005 - 16:28 #14
ahh ja, det er 2 iframes :) Prøv følgende, ellers skal jeg lige lege´med det!

<a href="#" onmouseover="parent.tekstleft.scrollme(0,-2);" onmouseout="parent.tekstleft.noscroll();" onclick="return false">[/\]</a>
og
<a href="#" onmouseover="parent.tekstleft.scrollme(0,2);" onmouseout="parent.tekstleft.noscroll();" onclick="return false">[\/]</a>
Avatar billede bagnavnet Nybegynder
05. juli 2005 - 16:30 #15
umiddelbart ingen ændring
Avatar billede plazm Nybegynder
05. juli 2005 - 16:33 #16
er du sikker på at navnet tekstleft er rigtigt ?
for som du kan se på
http://plazm.1go.dk/test.php
så virker parent.ifr fint for mig
Avatar billede bagnavnet Nybegynder
05. juli 2005 - 16:38 #17
ja, det er jeg helt sikker på.

Men jeg tænkte på om det kan have noget at gøre med at mine iframes ligger inden i nogle tabeller?
Avatar billede plazm Nybegynder
05. juli 2005 - 16:39 #18
er det muligt at man kan komme til at se din side? Da jeg umiddelbart ikke lige kan se hvad der er galt ?
Avatar billede bagnavnet Nybegynder
05. juli 2005 - 16:41 #19
hmm, jeg har den godtnok ikke oploaded endnu, men vil det være nok hvis jeg sender dig frontsiden med tabellerne og iframesne?
Avatar billede bagnavnet Nybegynder
05. juli 2005 - 16:45 #20
det jeg selv undrer mig over er hvordan de 2 sider er forbundet med hinanden? Hvordan kan
<a href="#" onmouseover="parent.tekstleft.scrollme(0,2);" onmouseout="parent.tekstleft.noscroll();" onclick="return false">[\/]</a>

se den side som den skal scrolle?
Den henviser til iframen, men ikke til selve siden?
Avatar billede plazm Nybegynder
05. juli 2005 - 16:48 #21
Jo den henviser til siden ved at henvise til en iframe ;)
Forsiden, 1 underside i tekstleft og den der scroller er fint
Avatar billede bagnavnet Nybegynder
05. juli 2005 - 16:59 #22
ok, her har du de relevante tabeller og iframes fra forsiden:
tabel/iframe hvor scroll-knapperne skal være, altså blankscroll dok.
....
<td rowspan="7"><iframe src="HOME/blankscroll.htm" name="leftmain" width="80" border=0 frameBorder=0 marginwidth="0" marginheight="0" scrolling="no"></iframe></td>
...
tabel/frame som skal scrolles:
...
<td rowspan="3" width="370" height="400"><iframe src="HOME/newsDK.htm" name="tekstleft" width="370" height="400" border=0 frameBorder=0 marginwidth="0" marginheight="0" scrolling="no"></iframe></td>

Her er siden newsDK:

<html>
<head>
<link href="../HOME/CSS/content.css" rel="stylesheet" type="text/css" />

<script language="JavaScript1.2">
function scrollme(s1,s2){
    window.scrollBy(s1,s2);
    scrolldelay = setTimeout('scrollme('+s1+','+s2+)',10);
    }
    function noscroll(){
    clearTimeout(scrolldelay);
    }
    </script>
   
</head>


<body bgcolor=white">
<font color=black>

<b>28.06.2005 |</b> ...tekst undladt.....</font>

</body>       
</html>

og her er siden blankscroll med scroll-knapperne:
...
<html>
<head>

<link href="CSS/content.css" rel="stylesheet" type="text/css" />

<Body bgcolor="white">
<p align="right"><font color="black" face="Verdana" size="0,5">

    <p><a href="#" onmouseover="parent.tekstleft.scrollme(0,-1)" onmouseout="parent.tekstleft.noscroll()" onclick="return false">[up]</a></p>   

    <p><a href="#" onmouseover="parent.tekstleft.scrollme(0,1)" onmouseout="parent.tekstleft.noscroll()" onclick="return false">[down]</a></p>
</p>

<body>

</body>
</html>
Avatar billede plazm Nybegynder
05. juli 2005 - 17:22 #23
Tja, efter længere tids fejlsøgning i navne osv. finder jeg ud af at du ikke har kopieret hvad jeg har lavet

<script language="JavaScript1.2">
  function scrollme(s1,s2) {
    window.scrollBy(s1,s2);
    scrolldelay = setTimeout('scrollme('+s1+','+s2+')',10);
  }
  function noscroll() {
    clearTimeout(scrolldelay);
  }
</script>

skulle du bruge. ikke en uden et ' efter +s2+
prøv med den og se om det så ikke kommer til at virke.
Avatar billede bagnavnet Nybegynder
05. juli 2005 - 17:30 #24
hehe ups, det må du sgu undskylde. Det er fordi jeg har det kørende på en anden pc og så satte jeg lige min lid til blindskriften...det skulle jeg ikke have gjort. Hvorfor skal det også være så præcist det java?;-)
Tusind tak for hjælpen, det virker nu, fremragende arbejde. Tak!
Avatar billede plazm Nybegynder
05. juli 2005 - 18:39 #25
Det var så lidt ;) takker for point.
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