Avatar billede speder Nybegynder
31. august 2001 - 10:29 Der er 15 kommentarer og
3 løsninger

Scroll to anchor i layer

Hej

Jeg har følgende kode:

**************************
<div id=\"Layer1\" style=\"position:absolute; width:200px; height:115px; z-index:1; overflow: auto\">
  <p><a href=\"#hertil\">sdfasdf</a></p>
  <p>sdfa</p>
  <p>asdf</p>
  <p>asd</p>
  <p>fsda</p>
  <p>f</p>
  <p>asdf</p>
  <p><a name=\"hertil\"></a>Hertil</p>
  <p>afds</p>
  <p>adfs</p>
  <p>asdf</p>
  <p>&nbsp;</p>
</div>
****************************

Spørgsmålet er simpelt. Hvordan scroller jeg dette layer til anchor(hertil) ved sideload ligesom hvis man skrev www.whatever.com/test.htm#hertil.
Avatar billede speder Nybegynder
31. august 2001 - 10:33 #1
Det viste sig at den gode gamle metode faktisk også virker med layers. Et tillægsspørgsmål - hvad nu hvis jeg har to layers og jeg vil scrolle dem begge til forskellige anchors?
Avatar billede speder Nybegynder
31. august 2001 - 11:43 #2
Uden at siden skal reloades, vel at mærke.
Avatar billede phineas_phreak Nybegynder
31. august 2001 - 14:23 #3
www.whatever.com/test.htm#hertil

Og hvor #hertil er indsætter du

<a name=\"#hertil\">
Avatar billede Slettet bruger
31. august 2001 - 15:11 #4
phineas>> <a name=\"hertil\"> hedder det.
Avatar billede Slettet bruger
31. august 2001 - 15:40 #5
Jeg har prøvet mig frem med forskellige metoder til et \"double-scroll\" script, men den eneste løsning, jeg kan se, er, at du laver indholdet i dine <div>\'s til <iframe>\'s, og så bruger enten document.dinIframe.scroll(x,y) eller document.dinIframe.location = \"#hertil\"

Men det kan være, der er andre muligheder? Lad os høre!
Avatar billede phineas_phreak Nybegynder
31. august 2001 - 15:56 #6
sorry det er mig der dumser... Bytter om på tingene :(
Avatar billede jakoba Nybegynder
31. august 2001 - 22:00 #7
Jeg har prøvet noget her:
http://hjem.get2net.dk/Jakob.Aggernaes/temp/exp97171.html

men kan ikke få det til at virke ordentligt i IE5+ og NS6

mvh JakobA
Avatar billede speder Nybegynder
01. september 2001 - 09:37 #8
Jeg har fundet noget her, som måske kunne være en løsning, men jeg er mildest talt ikke ekspert i DOM, og derfor kan jeg ikke få det rettet mod et Layer:

http://developer.irt.org/script/1254.htm

De bruger følgende:

parent.main.scrollTo(0,parent.main.document.anchors[\'anchor5\'].y);

Kunne dette ikke rettes mod et Layer?

Jeg giver lidt flere points, da jeg er ret frustreret.
Avatar billede Slettet bruger
01. september 2001 - 11:33 #9
Jeg har også eksperimenteret lidt med scrollTo(), men jeg kan altså ikke finde en løsning!
Avatar billede speder Nybegynder
02. september 2001 - 16:08 #10
200 points må da kunne lokke en løsning fra fra en eller anden JavaScript-haj.
Avatar billede jakoba Nybegynder
02. september 2001 - 16:26 #11
speeder >> http://developer.irt.org/script/1254.htm handler om at scrolle en frame, ikke et lag.

phoenixv >> hellere viden end points, så hvis du eller nogen kan fikse http://hjem.get2net.dk/Jakob.Aggernaes/temp/exp97171.html
for IE5+ (NS6 er OK), er du velkommen til at tage puljen :)

mvh JakobA
Avatar billede speder Nybegynder
02. september 2001 - 17:01 #12
Jakoba> Jeg var sådan set godt klar over at artiklen på irt.org handlede om frames, men jeg tænkte at løsningsmodellen med at finde x,y koordinaten på et anchor og dernæst scrolle framen til dette punkt også kunne bruges på layers.

Desværre kan jeg ikke rigtig teste dit eksempel, da jeg netop har IE5+
Avatar billede olebole Juniormester
02. september 2001 - 19:50 #13
<ole>
Ja, man kan godt lave en scroller i DHTML og så scrolle til et bestemt sted. I så fald ville jeg nok vælge denne:
  http://www.ghtml.com/showoff/scrollbar/index.html
...men jeg orker ikke at lave det nu - udover at jeg ikke sidder på min egen maskine...her har jeg kun en IE5.0  :(
Om det følgende virker i NS6+, ved jeg ikke. I kan jo prøve. I hvert fald burde det vist virke efter IE4.0:

<html>
<head>
<script language=\"JavaScript\">
function goToAnchor(which) {
    if (document.getElementById) {
        document.getElementById(which).scrollIntoView();
    }
    else if (document.all) {
        document.all[which].scrollIntoView();
    }
}
</script>
</head>
<body>
<div id=\"Layer1\" style=\"position:absolute; width:200px; height:115px; z-index:1; overflow: auto\">
  <p><a name=\"top\" id=\"top\">TOP</a></p>
  <p>sdfa</p>
  <p>asdf</p>
  <p>asd</p>
  <p>fsda</p>
  <p>f</p>
  <p>asdf</p>
  <p><a name=\"hertil\" id=\"hertil\">Hertil</a></p>
  <p>afds</p>
  <p>adfs</p>
  <p>asdf</p>
  <p>adfs</p>
  <p><a name=\"bund\" id=\"bund\">BUND</a></p>
  <p>&nbsp;</p>
</div>
<a href=\"java script:goToAnchor(\'top\');\" style=\"position:absolute;top:300px;\">til toppen</a>
<a href=\"java script:goToAnchor(\'hertil\');\" style=\"position:absolute;top:320px;\">hertil</a>
<a href=\"java script:goToAnchor(\'bund\');\" style=\"position:absolute;top:340px;\">til bunden</a>
</body>
</html>

/mvh
</bole>
Avatar billede olebole Juniormester
02. september 2001 - 19:53 #14
ehhhhh....for en sikkerheds skyld, så lad være med at nogensinde at bruge \'top\' som id eller name.
/mvh
Avatar billede olebole Juniormester
02. september 2001 - 20:11 #15
Skriv toppen af dokumentet om således. Så kan du kalde siden med:
  <a href=\"siden.html?hertil\">Hertil</a>

<html>
<head>
<script language=\"JavaScript\">
var loc = (location.search && location.search.length>1)? location.search.substring(1) : \"\";
function goToAnchor(which) {
    if (document.getElementById && which!=\"\") {
        document.getElementById(which).scrollIntoView();
    }
    else if (document.all && which!=\"\") {
        document.all[which].scrollIntoView();
    }
}
</script>
</head>
<body onload=\"goToAnchor(loc);\">

/mvh
Avatar billede speder Nybegynder
02. september 2001 - 21:22 #16
olebole > Det ser meget lovende ud. Hvad nu, hvis jeg har to layers. Hvordan styrer jeg så hvilket layer jeg scroller i.
Avatar billede speder Nybegynder
02. september 2001 - 21:27 #17
den svarer jeg lige selv på. Det gælder vist bare om at bruge unikke anchor-navne - så finder den selv det rette layer.

Tusind tak.
Avatar billede olebole Juniormester
02. september 2001 - 22:09 #18
...anytime  :)
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