09. marts 2004 - 18:42Der er
12 kommentarer og 1 løsning
show/hide layer i en anden frame ved onclick
Hejsa Eksperter
Efter at have læst et hav af spg. her på siden, har jeg ikke lige fundet noget der afhjalp mit problem, eller også har jeg bare ikke fattet at få det indarbejdet ;-) Derfor håber jeg på et simpelt svar og overbærenhed med en nybegynder i html.
Problemet er at jeg har lavet min hjemmeside i frames (top,buttom og left, main, right). I left frame er der en menu med knapper, der ved onclick gerne skulle åbne (show/hide) et tilhørende layer i main frame. Det skulle gerne laves sådan, da der i main frame ligger et baggrundsbillede der derved ikke skal loades hver gang der trykkes på knapperne i left frame (eller det var ihvertfald meningen at det skulle undgås herved). Men jeg kan ikke finde ud af at få mine layers frem i main frame'en og jeg ved heller ikke hvor de forskellige stumper kode skal ligges ind. øhh, og så lige et tillægs spg. da baggrundsbilledet i main frame kun skal vises en gang skulle det gerne være muligt at scrolle i de layers der åbnes med knapmenuen, således at man bliver ved med at kunne se baggrundsbilledet.
Håber jeg har gjort problemet forståeligt, men ellers skriv for kode eller uddybende svar.
Men jeg går ud fra at når du vil vise et "lag", så skal de andre "lag" der er aktive indholdsframen også skjules, så derfor kunne man lave en lille funktion
function skiftside(lag){ elm = top.frames.main.document.getElementsByTagName("DIV") for(i=0;i<elm.length){ if(elm[i].id==lag) elm[i].style.visibility="visible"; else elm[i].style.visibility="hidden"; } }
Og denne aktiveres så bare vha. et link i left med
Der sker ikke noget når jeg har sat det første <a href..... ind i min left frame ved knapperne og oprettet laget i min main frame.... jeg ved ikke helt hvad jeg skal med det nederste. Er funktionen et javascript, eller hvor og hvordan skal det indføres.
Meningen er, at jeg i main har et baggrundbillede der skal forblive fastlåst, og alt efter hvilken knap man trykker på i left frame, så skal det tilsvarende lag sættes til show og de andre til hide, således at den tekst mv. der ligger på laget ligger sig ind over baggrundsbilleder i main frame. Blev det klarere, eller var det bare det samme vrøvl med nye ord?
1. er vi enige om at din main frame vitterligt hedder "main" ? , ellers skal dette ændres til det din frame hedder :o)
hvis ja burde overnstående eksempel fungere til ug :o)
nr 2 er en funktion, den ligges mellem head & head i din "menuframe"
sådan:
<script type="text/javascript"> function skiftside(lag){ elm = top.frames.main.document.getElementsByTagName("DIV") for(i=0;i<elm.length){ if(elm[i].id==lag) elm[i].style.visibility="visible"; else elm[i].style.visibility="hidden"; } } </script>
der hvor der nu står 'laget' kan du indsætte et hvilkensom helst lagnavn på et lag i din "mainframe", og funktionen vil automatisk "lukke" alle de lag som ikke er relevante!
- og sidst men ikke midst så hjalp den seneste forklaring ikke synderligt, hvis ovenstående ikke er løsningen, så er jeg nok nødt til at se et eksempel :o)
Jeg prøver lige at lave en simpel test, for at se om det er noget andet på min side der gør at den melder fejl. Den skriver ihvertfald stadig at der opstår en fejl på siden. Jeg ved ikke om det er fordi jeg har andre javascripts på siden. Jeg vender tilbage når jeg lige har testet det.
Forresten så har jeg lige et par opklarende spørgsmål.
1. Hvad gør den her linie elm = top.frames.main.document.getElementsByTagName("DIV") og især hvad betyder top ? 2. Hvad sker der når man anvender href="#" 3. Hvorfor return false ved onclick? og sidst men ikke mindst 4. Min knapmenu med mere er lavet i et layer, vil de også blive lukket, hvis jeg bruger den funktion du har skrevet, som lukker de andre layers, eller kan det styres med ID ?
Har lige prøvet at lave et helt simpelt eks. med en left og en main frame, et lag i main frame, og et anchor (eller hvad det nu hedder) i left frame, men den melder stadig at der opstod en fejl på siden. Kan det være en opsætning i IE, der gør at jeg ikke kan se det, når jeg er offline. Jeg bruger dreamweaver, og trykker F12 for at se det i IE.
Jeg fik points, så alt er i den skønneste orden :-)
Synes godt om
Ny brugerNybegynder
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.