Avatar billede zarthax Nybegynder
21. august 2005 - 12:43 Der er 35 kommentarer og
1 løsning

<div> erstatte <iframe>?

Jeg har en side med et baggrundsbillede på, som ikke må/kan fjernes.
At lægge in <iframe> på siden, vil ødelæggen en hel del, da jeg ikke ser det muligt at placere billedet i "indholdet" af <ifame> korrekt nok.
Så tænkte jeg at man kunne lave en <div> som target. derved er det jo gennemsigtigt, og sitet bi-beholdes som det skal....

Funktionen er:
klik på en knap i menuen åbner det pågældende link i et <div> et andet sted på siden...

men:
1: er det muligt ?
2: Hvis "1" = "JA!", kan nogen så lave det for mig ?

//zarthax//
Avatar billede zarthax Nybegynder
21. august 2005 - 12:45 #1
siden ligger nu her:
http://zarthax.users.whitehat.dk/hp/

og forresten.... jeg aner ikke en dyt om javascript eller lign..... kun lidt html :(
//zarthax//
Avatar billede busschou Praktikant
21. august 2005 - 12:46 #2
du kan ikke åbne et link i en div!
Men du kan lave dit div på forhånd og style det som display:none
Når du klikker på dit link kan du så style det om til display:block
Avatar billede zarthax Nybegynder
21. august 2005 - 12:49 #3
ok... lyder interressant :)
Men, hvordan style det ???
kan dette håntere flere forskellige sider ??
Avatar billede busschou Praktikant
21. august 2005 - 12:52 #4
Det kræver umiddelbart at al kode er på samme side som jeg ser det, bare under hinanden
--
<div style="display:none;"> inhold for knap et</div>
<div style="display:none;"> inhold for knap to</div>
<div style="display:none;"> inhold for knap tre</div>
<div style="display:none;"> inhold for knap fire</div>
--
Når de er stylet sådan så vises de ikke
Derefter kan man lave en javascript funktionen til at ændre stylen idet der klikkes på et givent link
Avatar billede zarthax Nybegynder
21. august 2005 - 12:56 #5
lyder nu MEGET interressant :)
men..... (dem har jeg mange af... de "men" der...)
Der ligger i forvejen et script, der viser forklaringen til de forskellige knaper på siden...
Kan sådanne 2 scripts køre samtidigt uden at det giver problemer ?
Og hvordan skal js koden se ud ????
Avatar billede busschou Praktikant
21. august 2005 - 12:56 #6
et mini eksempel kunne være sådan her
----
<script type="text/javascript">
  var gammel = "";
  function skift(id){
    if (gammel != ""){
      document.getElementById(gammel).style.display = "none";
    }
    gammel = id;
    document.getElementById(id).style.display = "block";
  }
</script>
<span onclick="skift('et');"> vis 1 </span>
<span onclick="skift('to');"> vis 2 </span>
<span onclick="skift('tre');"> vis 3 </span>
<span onclick="skift('fire');"> vis 4 </span>
<div id="et" style="display:none;"> inhold for knap et</div>
<div id="to" style="display:none;"> inhold for knap to</div>
<div id="tre" style="display:none;"> inhold for knap tre</div>
<div id="fire" style="display:none;"> inhold for knap fire</div>
Avatar billede busschou Praktikant
21. august 2005 - 12:59 #7
ok det havde jeg ikke set, men ja du kan godt køre flere ting, du kører jo teksten på onmouseover og onmouseout, men indholdet skal skifte ved onclick, så det er tre forskellige scenarier
Dog virker dit tekst halløj ikke i min FF, bare du ved det :O)
Avatar billede zarthax Nybegynder
21. august 2005 - 13:00 #8
Jeg ved det med FF.... fandt også en stump kode der skulle rette det, men det virker ikke :(

Jeg går igang med at teste dette :)
Avatar billede busschou Praktikant
21. august 2005 - 13:03 #9
ok jeg er ikke super ekspert til javascript men den siger at obj.children ikke har nogen properties, det kunne tyde på at FF ikke er glad for den children metode...men det kan jo nok løses
--
Det andet burde være lige til at sætte ind
Avatar billede roenving Novice
21. august 2005 - 13:05 #10
ret .children til .childNodes, den virker i alle nutidige browsere !-)
Avatar billede zarthax Nybegynder
21. august 2005 - 13:11 #11
skal alle .children ændres ?
Avatar billede busschou Praktikant
21. august 2005 - 13:11 #12
med den opbygning du har hvor du i hvert af dine divs (links) har et span med klassen elaboration, så kunne du have et span til med fx klassen "indhold", i din funktion som løber childNodes igennem kan du så på en mouseover vise elaboration og på en onclick vise indholdet der hvor din frame er nu
Avatar billede zarthax Nybegynder
21. august 2005 - 13:13 #13
tak roenving :) (regner med at du kan genknde din kode ?? :))

busscou>>
Det virker jo :)
Nu mangler jeg bare at restaurere markøren, så folk ikke bliver forvirrede over "manglende knap" og at få det til at virke på hele cellen, og ikke bare bogstaverne :( ??
Avatar billede roenving Novice
21. august 2005 - 13:13 #14
Da .children og .childNodes (i hvert fald i IE5.5+ !-) henviser til det samme array af elementer, kan du bare lave en søg og erstat på den !o]
Avatar billede roenving Novice
21. august 2005 - 13:14 #15
Sæt cursor:pointer; på cellernes style i stylesheetet !-)
Avatar billede zarthax Nybegynder
21. august 2005 - 13:14 #16
nu blev jeg da helt forvirret ???
Avatar billede busschou Praktikant
21. august 2005 - 13:15 #17
det må være cursor:hand;cursor:pointer så det virker i FF og IE
Avatar billede busschou Praktikant
21. august 2005 - 13:18 #18
zarthax >> afhængig af hvordan du nu lige har gjort så burde den gerne gøre det over hele din div eller span
<span style="cursor:hand;cursor:pointer;" onclick="skift('et');"> vis 1 </span>
Det burde gerne være sådan at der kommer en hånd henover spannet, eller div hvis det er det du har valgt
Avatar billede roenving Novice
21. august 2005 - 13:18 #19
Hvis man gider ofre kræfter på at understøtte ie4-5.5, ja !-)

IE6 forstår sagtens pointer !o]
Avatar billede busschou Praktikant
21. august 2005 - 13:19 #20
oki, det vidste jeg ikke engang, har bare gjort det til en vane at skrive begge dele
Avatar billede zarthax Nybegynder
21. august 2005 - 13:21 #21
Nu er det hele rettet.
der er en hånd, (mangler dog stadig corser: hand; delen), teksten kommer frem ved klik på "hjem" :)

Men til gengæld er hele min opbygning blevet totalt u-overskuelig...
(jeg er orden-i-koderne-narkoman), men det burde jeg vel kunne ordne.... måske er jeg heldig at forstå lidt mere undervejs :)
Avatar billede zarthax Nybegynder
21. august 2005 - 13:22 #22
lægger lige koden som den er foreløbig som et svar, da siden sikkert ikke for lov at sidde for evigt på whitehat :P


<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">

<script language="javascript">
        function showText(obj)
        {
            if(obj)
            {
                for(var childIdx = 0; childIdx < obj.childNodes.length; childIdx++)
                {
                    if(obj.childNodes[childIdx].className == "elaboration")
                    {
                        document.getElementById("explanation").innerHTML = obj.childNodes[childIdx].innerHTML;
                        break;
                    }
                }
            }
            return true;
        }
        function hideText()
        {
            document.getElementById("explanation").innerHTML = "";
            return true;
        }
    </script>

<script type="text/javascript">
  var gammel = "";
  function skift(id){
    if (gammel != ""){
      document.getElementById(gammel).style.display = "none";
    }
    gammel = id;
    document.getElementById(id).style.display = "block";
  }
</script>
 
<style type="text/css">
.txt{
color: black;
font-size: 11px;
font-family: 'verdena';
border: 1px ridge black;
width: 90px;
text-align: center;
cursor:pointer;}

.lnk{
text-decoration: none;
color: #000000;
display: block;
width: 100%;
background color: #cccccc;}
.lnk:hover{
display: block;
width: 100%;
background color: #f9f9f9;}

#hj{position: absolute; top: 404px; left: 20px;}
#re{position: absolute; top: 404px; left: 120px; }
#ka{position: absolute; top: 404px; left: 220px; }
#ly{position: absolute; top: 404px; left: 322px; }
#cv{position: absolute; top: 404px; left: 424px; }
#ko{position: absolute; top: 404px; left: 526px; }
#sh{position: absolute; top: 404px; left: 627px;}

#master{position: absolute; top: 110px; left:130px;}

.elaboration { display:none; }
.explainbox { width: 250px; height: 12px; color: white; text-align: center;}
#explanation{position: absolute; top: 365px; left: 550px;}
</style>
</head>

<body bgcolor="#000000" text="#000000" link="#0000FF" vlink="#660066" alink="#FF0000" background="gfx/master.jpg" style="background-repeat:no-repeat;">

<div onmouseover="showText(this)" onmouseout="hideText()" class="txt" id="hj"><span onclick="skift('HJEM');">HJEM</span><span class="elaboration">Siden der byder Dem velkommen.</span></div>


<div  onmouseover="showText(this)" onmouseout="hideText()"class="txt" id="re"><a href="red.htm" class="lnk" target="mas">REDIGERING</a><span class="elaboration">Lidt om redigering.</span></div>


<div  onmouseover="showText(this)" onmouseout="hideText()"class="txt" id="ka"><a href="kam.htm" class="lnk" target="mas">KAMERA</a><span class="elaboration">Hvad kameraet har at byde på.</span></div>


<div onmouseover="showText(this)" onmouseout="hideText()" class="txt" id="ly"><a href="lys.htm" class="lnk" target="mas">LYS</a><span class="elaboration">Der er mange muligheder i lys.</span></div>


<div onmouseover="showText(this)" onmouseout="hideText()" class="txt" id="cv"><a href="cv.htm" class="lnk" target="mas">CV</a><span class="elaboration">Hvor mine kompetencer ligger.</span></div>


<div onmouseover="showText(this)" onmouseout="hideText()" class="txt" id="sh"><a href="sho.htm" class="lnk" target="mas">SHOWREEL</a><span class="elaboration">Et par eksempler jeg har lavet.</span></div>

<div onmouseover="showText(this)" onmouseout="hideText()" class="txt" id="ko"><a href="kon.htm" class="lnk" target="mas">KONTAKT</a><span class="elaboration">Hvis De vil i kontakt med mig.</span></div>

<div id="HJEM" height="200px" width="300px" style="display:none; color: white; width: 100%;">test</div>
<div id="explanation" class="explainbox"></div>
</body>
</html>


(sikke en gang rod...)
Avatar billede zarthax Nybegynder
21. august 2005 - 13:26 #23
nu mangler jeg bare at få klikket til at virke i hele cellen også ???
Avatar billede busschou Praktikant
21. august 2005 - 13:26 #24
tja rydde op kan man jo nok altid :o)
lægger et svar hvis du er nogenlunde tilfreds :o)
Avatar billede busschou Praktikant
21. august 2005 - 13:27 #25
sådan der så er det et svar :o)
--
prøv sådan her
--
<div onclick="skift('HJEM');" onmouseover="showText(this)" onmouseout="hideText(" class="txt" id="hj"><span >HJEM</span><span class="elaboration">Siden der byder Dem velkommen.</span></div>
Avatar billede roenving Novice
21. august 2005 - 13:31 #26
-- og så har E* en fejl med paranteser og gåseøjne, som ofte er forvirrende (se hideText !-)

-- såvidt jeg husker kan man kurere det med sikkerhed, hvis man også tilføjer det helt lovlige (og for mig foretrukne !-) semikolon:

<div onclick="skift('HJEM');" onmouseover="showText(this);" onmouseout="hideText();" class="txt" id="hj"><span >HJEM</span><span class="elaboration">Siden der byder Dem velkommen.</span></div>
Avatar billede zarthax Nybegynder
21. august 2005 - 13:31 #27
Det virker :)
(efter jeg rettede lidt... :  onmouseout="hideText(" =  onmouseout="hideText()" :)

Takker mange gange :)
Går nu igang med at "rydde op" hehe :)
Avatar billede zarthax Nybegynder
21. august 2005 - 13:32 #28
altså adskille alle js kommndoer med ";" ??
....roenving burde også have lidt for sine detaljer / Guldkorn :P
Avatar billede zarthax Nybegynder
21. august 2005 - 13:50 #29
hmmm... har nu rettet det hele, men prøv at trykke på CV og derefter en anden knap..
Så forsvinder CV... og jeg kan ikk se nogen forskelle i koden ??


Koden:


<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>Untitled Document</title>
<meta name="Generator" content="Stone's WebWriter 4">

<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">

<script language="javascript">
        function showText(obj)
        {
            if(obj)
            {
                for(var childIdx = 0; childIdx < obj.childNodes.length; childIdx++)
                {
                    if(obj.childNodes[childIdx].className == "elaboration")
                    {
                        document.getElementById("explanation").innerHTML = obj.childNodes[childIdx].innerHTML;
                        break;
                    }
                }
            }
            return true;
        }
        function hideText()
        {
            document.getElementById("explanation").innerHTML = "";
            return true;
        }
    </script>

<script type="text/javascript">
  var gammel = "";
  function skift(id){
    if (gammel != ""){
      document.getElementById(gammel).style.display = "none";
    }
    gammel = id;
    document.getElementById(id).style.display = "block";
  }
</script>
 
<style type="text/css">
.txt{
color: black;
font-size: 11px;
font-family: 'verdena';
border: 1px ridge black;
width: 90px;
text-align: center;
cursor:pointer;
cursor:hand;}

.lnk{
text-decoration: none;
color: #000000;
display: block;
width: 100%;
background color: #cccccc;}
.lnk:hover{
display: block;
width: 100%;
background color: #f9f9f9;}

#hj{position: absolute; top: 404px; left: 20px;}
#re{position: absolute; top: 404px; left: 120px; }
#ka{position: absolute; top: 404px; left: 220px; }
#ly{position: absolute; top: 404px; left: 322px; }
#cv{position: absolute; top: 404px; left: 424px; }
#ko{position: absolute; top: 404px; left: 526px; }
#sh{position: absolute; top: 404px; left: 627px;}



.elaboration { display:none; }
.explainbox { width: 250px; height: 12px; color: white; text-align: center;}
#explanation{position: absolute; top: 365px; left: 550px;}
</style>
</head>

<body bgcolor="#000000" text="#000000" link="#0000FF" vlink="#660066" alink="#FF0000" background="gfx/master.jpg" style="background-repeat:no-repeat;">


<!-- Menuen: -->

<div onclick="skift('HJEM');" onmouseover="showText(this);" onmouseout="hideText();" class="txt" id="hj"><span >HJEM</span><span class="elaboration">Siden der byder Dem velkommen.</span></div>


<div onclick="skift('REDIGERING');" onmouseover="showText(this);" onmouseout="hideText();" class="txt" id="re"><span >REDIGERING</span><span class="elaboration">Lidt om redigering</span></div>


<div onclick="skift('KAMERA');" onmouseover="showText(this);" onmouseout="hideText();" class="txt" id="ka"><span >KAMERA</span><span class="elaboration">Hvad kameraet har at byde på.</span></div>


<div onclick="skift('LYS');" onmouseover="showText(this);" onmouseout="hideText();" class="txt" id="ly"><span >LYS</span><span class="elaboration">Der er mange muligheder i lys.</span></div>


<div onclick="skift('CV');" onmouseover="showText(this);" onmouseout="hideText();" class="txt" id="cv"><span >CV</span><span class="elaboration">Noget om mine kompetencer.</span></div>


<div onclick="skift('SHOWREEL');" onmouseover="showText(this);" onmouseout="hideText();" class="txt" id="sh"><span >SHOWREEL</span><span class="elaboration">Et par eksempler jeg har lavet.</span></div>

<div onclick="skift('KONTAKT');" onmouseover="showText(this);" onmouseout="hideText();" class="txt" id="ko"><span >KONTAKT</span><span class="elaboration">Hvis De ønsker at kontakte mig.</span></div>

<!-- de forskellige sider: -->

<div id="HJEM" height="200px" width="300px" style="display:none; color: white; width: 100%;">Hjem</div>
<div id="REDIGERING" height="200px" width="300px" style="display:none; color: white; width: 100%;">Redigering</div>
<div id="KAMERA" height="200px" width="300px" style="display:none; color: white; width: 100%;">Kamera</div>
<div id="LYS" height="200px" width="300px" style="display:none; color: white; width: 100%;">Lys</div>
<div id="CV" height="200px" width="300px" style="display:none; color: white; width: 100%;">CV</div>
<div id="SHOWREEL" height="200px" width="300px" style="display:none; color: white; width: 100%;">Showreel</div>
<div id="KONTAKT" height="200px" width="300px" style="display:none; color: white; width: 100%;">Kontakt</div>

<!-- kassen der forklarer de forskellige knapper -->

<div id="explanation" class="explainbox"></div>
</body>
</html>
Avatar billede roenving Novice
21. august 2005 - 13:57 #30
*lol*

-- det er IE, som fucker dig ...

-- din div med linket i hedder 'cv', mens divet med plads til cv'et hedder 'CV' ...

-- det opfatter IE åbenbart som det samme id, hvilket enhver jo kan se !-)
Avatar billede zarthax Nybegynder
21. august 2005 - 14:01 #31
hehe, opdage den også lige selv :)
ændrede den til c_v istedet... men, kunne have ledt meget længe efter sådan en bøf *LOL*

Igen, tusiinde tak for hjælpe begge to :)
Avatar billede zarthax Nybegynder
21. august 2005 - 14:02 #32
forresten..... dette er da en glimrende vej uden om <iframe>....
(selvom jeg ikke har lagt noget indhold i endnu *LOL*)
Avatar billede roenving Novice
21. august 2005 - 14:05 #33
Ja, hvis du har smådokumenter uden alt for meget meget indhold ...

-- men hvis du f.eks. har 17 gallerier, vil load-tiden på alle de thumbnails, som hører til de 16 andre gallerier bare lægge enhver forbindelse ned !-)
Avatar billede roenving Novice
21. august 2005 - 14:05 #34
PS. Det skulle selvfølgelig være:

... hvilket enhver jo kan se det ikke er !-)
Avatar billede busschou Praktikant
21. august 2005 - 14:06 #35
var lige lidt away, og straks sker der en masse ;o)
Jeg synes kun denne løsning er holdbar til småting i og med alt til alle dine underliggende sider hentes på een gang
Ved brug af en iframe, så hentes de sepererat efter behov :o)

Tak for points, skulle roenving have nogen af dem?
Avatar billede zarthax Nybegynder
21. august 2005 - 14:13 #36
Da siderne udelukende skal indeholde tekst, håber jeg at det skulle gå nogenlunde.... må jeg se på senere... indtil videre mener jeg dette virker optimalt, da der, indtil nu, faktisk kun er en index side.... problemet kommer nok, når jeg skal lave min showreel side, som skal indeholde omk. 4 klip af hver ca 7 min længde :(
(Er det også JS, eller skal jeg hen i en anden kat. for at lave min showreel ????)
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