Avatar billede tommyf Nybegynder
11. april 2005 - 20:14 Der er 16 kommentarer og
1 løsning

Iframe og rullende skift

Hej eksperter... håber der er nogle ;)

Jeg har en hjemmeside med 12 punkter med noget tekst til, som fylder 3 skærmlængder. Derfor har jeg placeret dem i en iframe/ilayer, og opstillet 12 links der linker til den frame. Når man klikker på linksene hopper siden i iframen også hen til det korrekte indhold (vha. et bogmærke) men hele skærmen bevæger sig også ned til starten af iframen - kan man ikke undgå det? Evt med noget javascript.

Det er gået op for mig, at det nok blev lidt for langhåret - så jeg har prøvet at ligge siden op:
http://www.nvh2004.dk/el/ekspertise2.htm

Hvis I klikker på linksene (de blå i punkt-opstilling) kan I se at indholdet skifter, men det gør placeringen af skærmen også.
Avatar billede busschou Praktikant
11. april 2005 - 20:21 #1
Jeg ved ikke om det kan lade sig gøre. Så er ikke ekspert der ;o)
Men hvis alt andet fejler vil jeg så bare foreslå dig at lave 12 forskellige sider og linke til dem hver for sig. For det må jeg være fordi den hopper nedad mod bogmærket
Og så er jeg nysgerrig på løsningen hvis en kommer med den :o)
Avatar billede tommyf Nybegynder
11. april 2005 - 20:43 #2
Logisk alternativ :)
- Men ser lige om der kommer andet.
Avatar billede roenving Novice
11. april 2005 - 22:10 #3
Er det med vilje, at siden er så lang ?-)

-- for hvis du nu sørgede for, at siden kun havde skærmhøjde, ville det jo ikke være noget problem !-)
Avatar billede tommyf Nybegynder
11. april 2005 - 22:18 #4
Det er selvfølgelig rigtig, men der skal værer plads til både listen og iframen - og så kommer der nogle billeder ude til højre, så jeg kan ikke flytte listen derud :)
Avatar billede skyggen2000 Nybegynder
12. april 2005 - 09:23 #5
Det problem har jeg selv haft en gang, og kom ikke frem til en fornuftig løsning.

Når et element modtager fokus bliver scrollbaren automatisk indstillet. Kan man evt. fange den event der udløste instillingen er scrollbaren ville det være supreme, men det ved jeg ikke hvordan man gør. Men hvis nu du pakker dine bogmærker ind i en anden iframe, så vil den måske opfange scrolleventen i stedet for den yderst liggende?
Avatar billede olebole Juniormester
12. april 2005 - 18:06 #6
<ole>

Det er såmænd en vældig smart feature, der sikrer, du ikke klikker på et link, der loader et dokument i en (i)frame, der ligger udenfor browserens viewport .... og derfor aldrig ser, dokumentet skifte.
Squide smart, ikk'?  :)

/mvh
</bole>
Avatar billede tommyf Nybegynder
12. april 2005 - 18:52 #7
Ole din fusker ;)

Da jeg så mailen om at der var kommet et nyt indlæg, og så dit navn, var jeg sikker på at nu var der skisme en smart løsning. Men en logisk forklaring på fænomenet er nu heller ikke at kimse af :)
Avatar billede olebole Juniormester
12. april 2005 - 19:06 #8
tommyf >> tak for tilliden - og undskyld, jeg heller ikke på denne mail kan sætte en overskrift ... håber ikke, du bliver alt for skuffet  :)

Der er, så vidt jeg ved, ikke nogen god løsning på problemet. Det _kunne_ dog måske være, at aftaste scrollTop i det øjeblik, der bliver klikket på et link .... vente til iframe'en er opdateret - og så scrolle siden tilbage til den før aftastede scrollTop.

Jeg kom lige i tanker om denne løsning, der godt løste et helt andet problem for en anden bruger, men det fik mig til at tænke i de tanker:
    http://tjenester.dk/x-codes.dk/eksperten/scroll_anchor/

Det er heller ikke fordi, jeg tror, det bliver en elegant løsning - siden vil jo nok køre en del op og ned - men det er den eneste mulighed, jeg kan komme på  :o|
Avatar billede olebole Juniormester
12. april 2005 - 20:08 #9
Nu vil jeg ikke håbe, jeg helt har fået skræmt dig væk fra at reagere på mails, ang. kommentarer fra mig ... det her ser faktisk ud til at kunne løse problemet på rimelig måde  :)

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
    "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
    <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
    <title>TITLE</title>
<style type="text/css">
body, html {
    height: 100%;
    margin: 0px;
    padding: 0px;
}
</style>
<script type="text/JavaScript">
var lastTop = false;
function setLastTop() {
    lastTop = document.documentElement.scrollTop;
}
function bla() {
    if (lastTop) setTimeout("document.documentElement.scrollTop=lastTop", 10);
}
</script>
</head>
<body>

<br><br><br>

<a href="http://www.google.com" onclick="setLastTop()" target="gnu">TEST</a>

<br><br><br><br><br><br><br><br><br><br><br><br><br>
<br><br><br><br><br><br><br><br><br><br><br><br><br>
<br><br><br><br><br><br><br><br><br><br><br><br><br>
<br><br><br><br><br><br><br><br><br><br><br><br><br>
<br><br><br><br><br><br><br><br><br><br><br><br><br>
<br><br><br><br><br><br><br><br><br><br><br><br><br>
<br><br><br><br><br><br><br><br><br><br><br><br><br>

<iframe name="gnu" onload="bla()"></iframe>

</body>
</html>
Avatar billede olebole Juniormester
12. april 2005 - 20:12 #10
Måtte Fandens lede storebror tage Ekspertens skodkode - og de, der i én uendelighed 'vedligeholder' alle dens fejl og slider så hårdt for at introducere nye ...!!!  :(

E æder en del tegn - herunder en parentes-slut i linkets onclick-handler. Der skal naturligvis stå: onclick="setLastTop()"  ;o)
Avatar billede olebole Juniormester
12. april 2005 - 20:14 #11
... og så tillader jeg mig at kaste et svar. Det kan måske lokke tommyf til alligevel at checke mailen fra E  ;o)
Avatar billede olebole Juniormester
12. april 2005 - 20:16 #12
PS: den lille timeout på 10 msek er der kun for at give browseren lidt tid, da den ellers snubler over sine egne tæer - og ikke når at scrolle på plads, efter iframen er loaded.
Lidt uskøn - men desværre nødvendig  :)
Avatar billede tommyf Nybegynder
12. april 2005 - 20:25 #13
Ole, jeg er glad for at du forstod mit indlæg positiv. Og jeg skraldgrinede da jeg fik serveret din forbandelse af Eksperten med lige - min bror stak hovedet ind for at se, hvad der var så sjovt, men det opgav jeg godt nok at forklarer ;)

Tak for indsatsen, og løsningen - du er guld værd.
Avatar billede tommyf Nybegynder
12. april 2005 - 20:25 #14
med lige = med mere
Avatar billede olebole Juniormester
12. april 2005 - 20:40 #15
Hehe ... selvtak Tommy  :)
Naturligvis forstod jeg kommentaren positivt. Dels er jeg jo selv sarkasme-junkie (hvad der ofte har bragt mig på kant med andre brugere) og dels ved jeg godt, det er forbundet med visse forventninger, når man giver den som et forums 'Kloge-Åge' - så jeg kunne ikke lade være med at smile, da jeg så den. Jeg kunne godt se 'tegningen'  ;o)

De brugere, der ikke kan fordrage mig og min sarkasme/humor, kan jo så udvide din ros med kommentaren: "Men guld kan fandeme være tungt at bære!"  ;D
Avatar billede skyggen2000 Nybegynder
13. april 2005 - 09:38 #16
Er der ingen måde man kan afbryde scrollbar eventen?

Faktisk er løsningen udemærket eftersom man ikke ser scrollbaren flytte sig op og ned. Kan jeg huske jeg dengang havde lede probs med:) Derfor jeg ikke vil foreslå det.
Avatar billede olebole Juniormester
13. april 2005 - 19:01 #17
Nej, man kan så vidt jeg ved ikke forhindre, iframe'en flytter sig i fokus
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