Avatar billede tamen Nybegynder
20. november 2001 - 17:39 Der er 24 kommentarer og
1 løsning

Show/Hide layers

Jeg har brug for et script der kan vise et skjult lage og skjule en liste med andre lag. Listen skriver jeg selv, så scriptet skal ikke selv finde de andre lag. Scriptet skal være så crossbrowser som det er praktisk.

Nis Sarup
Avatar billede nute Nybegynder
20. november 2001 - 17:42 #1
hmmm....er dette noe du kan starte med ?

<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.0 Transitional//EN\">
<html>
<STYLE TYPE=\"text/css\">

#divOne {position:absolute;left:100px;top:125px;visibility:hidden;clip:rect(0,125,25,0); background-color:#ffffff; layer-background-color:#ffffff;}
#divTwo {position:absolute;left:120px;top:150px;visibility:hidden;clip:rect(0,125,25,0); background-color:#ffffff; layer-background-color:#ffffff;}
#divThree {position:absolute;left:130px;top:175px;visibility:hidden;clip:rect(0,125,25,0); background-color:#ffffff; layer-background-color:#ffffff;}
#divFour {position:absolute;left:140px;top:200px;visibility:hidden;clip:rect(0,125,25,0); background-color:#ffffff; layer-background-color:#ffffff;}

</STYLE>

<SCRIPT LANGUAGE=\"JavaScript\" TYPE=\"text/javascript\">

<!--
var ns, ns6, ie;

ns  = (document.layers) ? true : false;
ns6 = (document.getElementById) ? true : false;
ie  = (document.all) ? true : false;

function showLayer( layer ){
  if( ns ){
        document.layers[layer].visibility = \"show\";
    } else  if( ie ){
      document.all[ layer ].style.visibility = \"visible\";
    } else if( ns6 ){
      document.getElementById(layer).style.visibility = \"visible\";
    }
}

function hideLayer( layer ){
  if( ns ){
        document.layers[layer].visibility = \"hidden\";
    } else  if( ie ){
      document.all[ layer ].style.visibility = \"hidden\";
    } else if( ns6 ){
      document.getElementById(layer).style.visibility = \"hidden\";
    }
}

//-->
</SCRIPT>
<body>

<a href=\"java script:void(null);\" onMouseOver=\"showLayer(\'divOne\');\" onMouseOut=\"hideLayer(\'divOne\');\">Show/hide \'divOne\'</a>&nbsp;
<a href=\"java script:void(null);\" onMouseOver=\"showLayer(\'divTwo\');\" onMouseOut=\"hideLayer(\'divTwo\');\">Show/hide \'divTwo\'</a>&nbsp;
<a href=\"java script:void(null);\" onMouseOver=\"showLayer(\'divThree\');\" onMouseOut=\"hideLayer(\'divThree\');\">Show/hide \'divThree\'</a>&nbsp;
<a href=\"java script:void(null);\" onMouseOver=\"showLayer(\'divFour\');\" onMouseOut=\"hideLayer(\'divFour\');\">Show/hide \'divFour\'</a>
<div name=\"divOne\" id=\"divOne\">Insett ditt bilde her</div>
<div name=\"divTwo\" id=\"divTwo\">Insett ditt bilde her</div>
<div name=\"divThree\" id=\"divThree\">Insett ditt bilde her</div>
<div name=\"divFour\" id=\"divFour\">Insett ditt bilde her</div>

</body>
</html>

Avatar billede nikolajdu Nybegynder
20. november 2001 - 17:42 #2
Du kunne gøre sådan her:

<html>
<head>
    <title>Untitled</title>     
<script language=\"javascript\">   
ns4 = (document.layers)? true:false
ie4 = (document.all)? true:false
ie5 =(document.getElementById)? true:false
ns6 = (document.getElementById && !document.all)?true:false;

function over(id){
if (ns4){
document.layers[id].visibility = \"show\"
}else if (ns6) {
document.getElementById(id).style.visibility = \"visible\";
} else if (ie5) {
document.getElementById(id).style.visibility = \"visible\";
}else if (ie4) {
document.all[id].style.visibility = \"visible\";
    } 
}

function ud(id){
if (ns4){
document.layers[id].visibility = \"hide\"
}else if (ns6) {
document.getElementById(id).style.visibility = \"hidden\";
} else if (ie5) {
document.getElementById(id).style.visibility = \"hidden\";
}else if (ie4) {
document.all[id].style.visibility = \"hidden\";
    } 
}

</script>
</head>

<body>
<a href=\"#\" onMouseover=\"over(\'lag\')\" onMouseout=\"ud(\'lag\')\">kuk</a>

<div id=\"lag\" name=\"lag\" style=\"position: absolute; left:50; top:50; width: 200; height:100; z-index: 3; visibility: hidden\">Denne tekst vises n&aring;r der klikkes</div>

</body>
</html>

Du indsætter så bare hvilke lag der skal skjules med ud(\'lagNavn\') Og vises med over(\'lagNavn\')
Avatar billede nikolajdu Nybegynder
20. november 2001 - 17:42 #3
Ej da 1 sekunds forskel.
Avatar billede nikolajdu Nybegynder
20. november 2001 - 17:43 #4
Og lige om lidt kommmer Ole og siger - Nikolaj Netscape 4.x forstår godt \"hidden\".... :-)
Avatar billede nute Nybegynder
20. november 2001 - 17:43 #5
*knægg* *knægg*

nikolajdu : VÅKN OPP :_D
Avatar billede nikolajdu Nybegynder
20. november 2001 - 17:47 #6
Og hvorfor har jeg dog ikke samlet IE5 og NS6, når de er ens.

Jo Ole nu skal du høre. Fordi scriptet er copy pastet fra en side hvor der også blev brugt transitions til IE. Derfor. *LOL* ;-)
Avatar billede nute Nybegynder
20. november 2001 - 17:49 #7
*LOL*

det er godt du argumenterer på forhånd for å slippe for moralske prekener :-D
Avatar billede tamen Nybegynder
20. november 2001 - 17:56 #8
Kan nogen af de script skjule flere lag på en gang??
Jeg kan sagtens finde svar på at skjule og vise enkelte lag. Men jeg er ikke god nok til selv at skrive en løkke, som jeg tror der skal til her.
Avatar billede nikolajdu Nybegynder
20. november 2001 - 18:01 #9
Den hurtige version er at tage mit script også bare kalde funktionen flere gange. Dog ikke hvis det er 1280 lag du vil gemme.

onClick=\"ud(\'lagNavn\');ud(\'lagNavn2\');ud(\'lagNavn3\')\"
Avatar billede nute Nybegynder
20. november 2001 - 18:03 #10
tja...en liten modifikasjon:

<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.0 Transitional//EN\">
<html>
<STYLE TYPE=\"text/css\">

#divOne {position:absolute;left:100px;top:125px;visibility:hidden;clip:rect(0,125,25,0); background-color:#ffffff; layer-background-color:#ffffff;}
#divTwo {position:absolute;left:120px;top:150px;visibility:hidden;clip:rect(0,125,25,0); background-color:#ffffff; layer-background-color:#ffffff;}
#divThree {position:absolute;left:130px;top:175px;visibility:hidden;clip:rect(0,125,25,0); background-color:#ffffff; layer-background-color:#ffffff;}
#divFour {position:absolute;left:140px;top:200px;visibility:hidden;clip:rect(0,125,25,0); background-color:#ffffff; layer-background-color:#ffffff;}

</STYLE>

<SCRIPT LANGUAGE=\"JavaScript\" TYPE=\"text/javascript\">

<!--
var ns, ns6, ie, layerArr;
layerArr = new Array(\"divOne\", \"divTwo\", \"divThree\", \"divFour\" );

ns  = (document.layers) ? true : false;
ns6 = (document.getElementById) ? true : false;
ie  = (document.all) ? true : false;

function showLayer( layer ){
  if( ns ){
        document.layers[layer].visibility = \"show\";
    } else  if( ie ){
      document.all[ layer ].style.visibility = \"visible\";
    } else if( ns6 ){
      document.getElementById(layer).style.visibility = \"visible\";
    }
}

function hideOpen(){
  for( i = 0; i< layerArr.length; i++ ){
      if( ns ){
            document.layers[layerArr[i]].visibility = \"hidden\";
        } else  if( ie ){
          document.all[ layerArr[i] ].style.visibility = \"hidden\";
        } else if( ns6 ){
          document.getElementById(layerArr[i]).style.visibility = \"hidden\";
        }
      }
}

//-->
</SCRIPT>
<body>

<a href=\"java script:void(showLayer(\'divOne\'));\">Show/hide \'divOne\'</a>&nbsp;
<a href=\"java script:void(showLayer(\'divTwo\'));\">Show/hide \'divTwo\'</a>&nbsp;
<a href=\"java script:void(showLayer(\'divThree\'));\">Show/hide \'divThree\'</a>&nbsp;
<a href=\"java script:void(showLayer(\'divFour\'));\">Show/hide \'divFour\'</a><br>
<br>
<a href=\"java script:void(hideOpen());\">Show/hide \'divFour\'</a><br>
<div name=\"divOne\" id=\"divOne\">Insett ditt bilde her</div>
<div name=\"divTwo\" id=\"divTwo\">Insett ditt bilde her</div>
<div name=\"divThree\" id=\"divThree\">Insett ditt bilde her</div>
<div name=\"divFour\" id=\"divFour\">Insett ditt bilde her</div>

</body>
</html>

/nute
Avatar billede nute Nybegynder
20. november 2001 - 18:04 #11
nikolajdu >> *dit* script ??? det er jo fullt av merkeligheter ;-)
Avatar billede nikolajdu Nybegynder
20. november 2001 - 18:07 #12
Det af alt understreger bare at det virkeligt er mig selv der har lavet det ;-)
Avatar billede tamen Nybegynder
20. november 2001 - 18:08 #13
Jeg troede kun man kunne kalde en function en gang, men der kan man bare se, jeg lærer noget nyt hver dag ;)
Jeg har 5-10 lag og jongelere rundt med, så jeg tror løkken er overkill.
Jeg er dog imponeret over hvor hutigt jeg har fået svar :)
Jeg ville ønske jeg kunne dele pointsne mellem jer, men jeg kan kun se nikolajdu i boksen, så det blir dig der løber af med sejren :)

Tak for hjælpen begge to :)

Nis Sarup.
Avatar billede nute Nybegynder
20. november 2001 - 18:11 #14
nikolajdu >> :-D

tamen >> testet du overhodet mitt siste script ??

:-( :-( ingen points :-( :-(

;-)
Avatar billede nikolajdu Nybegynder
20. november 2001 - 18:12 #15
Det var så lidt og tak for point. :-)

Jeg opretter et spørgsmål til Nute med halvdelen, så er den fikset.

http://www.eksperten.dk/spm/136361

/Nikolaj
Avatar billede nikolajdu Nybegynder
20. november 2001 - 18:12 #16
Ro på nute se nu hvad jeg har gjort for din norske sindstilstand ;-)
Avatar billede nute Nybegynder
20. november 2001 - 18:17 #17
puha....det hjalp....

*er rolig nå*

:-)
Avatar billede tamen Nybegynder
20. november 2001 - 18:17 #18
Desværre jeg er slet ikke nået så langt som til at teste det, stoler på at det virker :)
Men jeg kunne ikke se dit navn i den boks hvor man vælger hvem der skal have pointsne, kun nikolajdu var der. Sikkert fordi jeg kører på mac ;))

Nis Sarup
Avatar billede nikolajdu Nybegynder
20. november 2001 - 18:20 #19
Det var fordi Nute kun havde kommenteret - En anden gang, så bed fjeldræven om at lægge et svar inden du lukker :-)
Avatar billede nute Nybegynder
20. november 2001 - 18:27 #20
tamen >> det ikke noe poeng i å poste et svar med mindre man er sikker på at ens svar er det spørsmålstilleren er på jakt etter ( no offence, nikolajdu ;-) ). jeg kommenterer ofte bare for å \"snuse\" litt etter noe mer info fra den som stiller spørsmålet. som et \"skrekkeksempel\" kan den første posting i denne thread trekkes frem:

http://www.eksperten.dk/spm/136354

det er tydelig at mannen er her inne *kun* i håp om å få noen (gratis ufortjente) poeng og egentlig ikke for å hjelpe.

men som nikolajdu skriver...hvis du ønsker å dele noen poeng i fremtiden, og alle aktuelle ikke har postet et svar...be dem om å poste et svar, så ordner tingene seg nok. (du så ellers hvordan jeg begynte å brokke meg ;-) )

/nute
Avatar billede nikolajdu Nybegynder
20. november 2001 - 18:30 #21
:-)
Avatar billede tamen Nybegynder
20. november 2001 - 18:32 #22
Ja, det må du sundskylde, det er kun tredje gang jeg benytter eksperten, og jeg har (som en rigtig nørd) ikke læst nogen manualer ;D
Jeg skal nok vær elidt omhygeligere næste gang. Håber i får delt pointene, ellers skal jeg nok give dig nogen :)
Avatar billede nikolajdu Nybegynder
20. november 2001 - 18:36 #23
Vi har delt lige over og Nute har som tak lovet mig en flaske af hans norske hjemmebryg :-)
Avatar billede tamen Nybegynder
20. november 2001 - 18:45 #24
Hehe, så kunne det jo ikke være bedre ;D
Avatar billede olebole Juniormester
20. november 2001 - 19:16 #25
..........who, *meeeeee* ....?!?!?!  O:)
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