Avatar billede stoffer Nybegynder
13. januar 2000 - 12:06 Der er 23 kommentarer og
1 løsning

Kan nogen færdig gøre dette script?

funtionen skal laves som....

http://www.imma.dk/stoffer/test/imma.asp?id=3



indtil videre er jeg nået hertil og det virker i både netscape og IE 4.0+:

jeg har fået meget af scriptet fra Bratta.com.

Det skal tilpasses, så den skjuler alle andre end den man lige har trykket på - som eksemplet ovenover. Det er vigtigt at det bliver gjort med DIV tags, da der er meget der skal vises og skjules.

<style type="text/css">
#divLinks{position:absolute; top:200; left:50; font-family:arial; font-size:10pt}
#test{position:absolute; top:185; left:350; width:100; font-family:arial; font-size:10pt}
</style>



<SCRIPT LANGUAGE="JavaScript">



function checkBrowser(){
    this.ver=navigator.appVersion
    this.dom=document.getElementById?1:0
    this.ie5=(this.ver.indexOf("MSIE 5")>-1 && this.dom)?1:0;
    this.ie4=(document.all && !this.dom)?1:0;
    this.ns5=(this.dom && parseInt(this.ver) >= 5) ?1:0;
    this.ns4=(document.layers && !this.dom)?1:0;
    this.bw=(this.ie5 || this.ie4 || this.ns4 || this.ns5)
    return this
}

bw=new checkBrowser()

//Shows the div
function vis(div, nest){
    obj=bw.dom?document.getElementById(div).style:bw.ie4?document.all[div].style:bw.ns4?nest?document[nest].document[div]:document[div]:0;
    obj.visibility ='visible'   
}

//Hides the div
function skjul(div, nest){
    obj=bw.dom?document.getElementById(div).style:bw.ie4?document.all[div].style:bw.ns4?nest?document[nest].document[div]:document[div]:0;
    obj.visibility='hidden'
}



</script>


<div id="divLinks" >
    Regular:
    <a href="#" onclick="skjul('test')">hide 1</A> -
    <a href="#" onclick="vis('test')">show 1</A>

</div>


<div id="test" STYLE='position:absolute; visibility:hidden; width:100%; height:1'>

Layer 1


</div>
Avatar billede stoffer Nybegynder
13. januar 2000 - 13:18 #1
nb den kode som jeg har pastet er den samme som her:

http://www.imma.dk/stoffer/test/test1.asp

den virker, men skal udvides til den samme funktionalitet som:

http://www.imma.dk/stoffer/test/imma.asp

Avatar billede stoffer Nybegynder
13. januar 2000 - 13:19 #2
Den MÅ ikke refreshe og SKAL være kompatibel med IE og NN 4+
Avatar billede stoffer Nybegynder
13. januar 2000 - 13:58 #3
med refreshe mener jeg self. reloader
Avatar billede stoffer Nybegynder
13. januar 2000 - 14:12 #4
http://www.imma.dk/stoffer/test/test2.asp

dette DHTML script som jeg har taget og gjort lidt ved, gør næsten hvad jeg vil ha' MEN den virker ikke i NETSCAPE - kan nogen lave så den virker
Avatar billede skjoldby Nybegynder
13. januar 2000 - 14:55 #5
Et lille tip. der måske kan hjælpe i NN:
NN kan fucker op når to lag der overlapper hinanden har samme z-index. Jeg kan se du kalder først siger show til lag_txt_x og derefter siger hide til lag_txt_0.
Enten bør du lave forskellige index på lag_txt_0 og de øvrige, eller også bude du bytte om på disse kald.
Jeg ved ikke om der virker - men det er da et forsøg værd.

skjoldby
Avatar billede stoffer Nybegynder
13. januar 2000 - 15:13 #6
Hvordan mener du --> de har da forsk. navne

lag_txt_0 er den tekst der skal vises når der ikke er mosuover på noget
Avatar billede skjoldby Nybegynder
13. januar 2000 - 18:12 #7
Ja men ens z-index. Z-indexerne er dimensionen for lagene. Netscape kan have problemer flere lag i samme 'dimension'.

Jeg har taget udgangspunkt i den sidste fil http://www.imma.dk/stoffer/test/test2.asp du har lavet. Prøv engang at lave lag_txt_0 til z-index: -1

skjoldby
Avatar billede skjoldby Nybegynder
13. januar 2000 - 19:56 #8
Jeg fandt et tidligere forslag i mine arkiver som virker i begge browsere:

<html>
<head>
<title>MouseOver 1</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<script language="javascript">
<!--

// Bestemmelse af browseren
n=document.layers;
ie=document.all;

// Globale cross-browser show/hide variabler
if (n) {
visible='show';
hidden='hide'; }

else if (ie) {
visible='visible';
hidden='hidden';}

// Funktion til at vise lag
function vis_lag(menuid){
if(n) {document.layers[menuid].visibility=visible; document.layers["lag0"].visibility=hidden;}
else if (ie) {document.all(menuid).style.visibility=visible; document.all("lag0").style.visibility=hidden;}
}

// Funktion til at skjule lag
function skjul_lag(menuid){
if(n) {document.layers[menuid].visibility=hidden; document.layers["lag0"].visibility=visible;}
else if (ie) {document.all(menuid).style.visibility=hidden; document.all("lag0").style.visibility=visible;}
}

//-->
</script>
<style type="text/css">
.lag      {position:absolute;
      left: 210;
          top: 10px;
          width: 180px;
      layer-background-color: #cccccc;
      background-color: #cccccc;
          border: 5px solid #cccccc;
          color: #000000;
          font-family: verdana, arial, helvetica;
          font-size: 10px;
          }

</style>
</head>

<body bgcolor="#FFFFFF" marginheight="0" marginwidth="0" leftmargin="0" topmargin="0">
<!-- --- Tekst lag --- //-->
<div id="lag0" style="z-index:0; visibility: visible" class="lag">
  Denne tekst vil blive vist når man ikke rører nogle links</div>

<div id="lag1" style="z-index:1; visibility: hidden" class="lag">
  Dette er det tekstfelt vises ved berøring af Link 1</div>

<div id="lag2" style="z-index:1; visibility: hidden" class="lag">
  Dette er det tekstfelt vises ved berøring af Link 2</div>

<div id="lag3" style="z-index:1; visibility: hidden" class="lag">
  Dette er det tekstfelt vises ved berøring af Link 3<br>der vises ikke noget billede da jeg ikke har lagt noget ud for link 3</div>

<div id="lag4" style="z-index:1; visibility: hidden" class="lag">
  Dette er det tekstfelt vises ved berøring af Link 4<br>der vises ikke noget billede da jeg ikke har lagt noget ud for link 4</div>
     
<p><a href="link1.htm" onMouseOver="vis_lag('lag1')"; onMouseOut="skjul_lag('lag1')">Link1</a></p>
<p><a href="link2.htm" onMouseOver="vis_lag('lag2')"; onMouseOut="skjul_lag('lag2')">Link2</a></p>
<p><a href="link3.htm" onMouseOver="vis_lag('lag3')"; onMouseOut="skjul_lag('lag3')">Link3</a></p>
<p><a href="link4.htm" onMouseOver="vis_lag('lag4')"; onMouseOut="skjul_lag('lag4')">Link4</a></p>
</body>
</html>
Avatar billede stoffer Nybegynder
14. januar 2000 - 09:39 #9
Det virker jo bare!

der 30p oveni, hvis du kan få funktionen til at virke med dette i stedet

<p><a href="#" onClick="vis_lag('lag1')">Link1</a></p>
<p><a href="#" onClick="vis_lag('lag2')">Link2</a></p>
<p><a href="#" onClick="vis_lag('lag3')">Link3</a></p>
<p><a href="#" onClick="vis_lag('lag4')">Link4</a></p>


mhv.

Christoffer Munck
Avatar billede skjoldby Nybegynder
14. januar 2000 - 10:57 #10
Kan du ikke bare gøre sådan her, det tror jeg er nemmest:
<p><a href="#" onClick="vis_lag('lag1'); skjul_lag('lag2');  skjul_lag('lag3'); skjul_lag('lag4');">Link1</a></p>
<p><a href="#" onClick="vis_lag('lag2'); skjul_lag('lag1'); skjul_lag('lag3'); skjul_lag('lag4');">Link2</a></p>
<p><a href="#" onClick="vis_lag('lag3'); skjul_lag('lag1'); skjul_lag('lag2'); skjul_lag('lag4');">Link3</a></p>
<p><a href="#" onClick="vis_lag('lag4'); skjul_lag('lag1'); skjul_lag('lag2'); skjul_lag('lag3');">Link4</a></p>

skjoldet.dk
Avatar billede stoffer Nybegynder
14. januar 2000 - 11:21 #11
Hmmm jo det kunne jeg godt - det er bare ikke så fikst vel...I den opgave jeg har er der 16 punkter og så begynder det at blive en rodet affære. Kunne man ikke på en eller anden måde sætte de 2 funktioner sammen, så den skjuler alle andre end den der er i fokus.
Avatar billede skjoldby Nybegynder
14. januar 2000 - 15:21 #12
klart der. Jeg har et script derhemme som jeg paster ind i aften. ok med dig? Jeg gider ikke at side og programmere det nu, når jeg ved jeg har det derhjemme.
Avatar billede stoffer Nybegynder
14. januar 2000 - 15:31 #13
ok lyder lækkert
Avatar billede olebole Juniormester
15. januar 2000 - 03:40 #14
Lad skjoldbys 'vis' og 'skjul' funktioner blive. Tilføj så:

// Funktion til at vise eet lag og skjule resten
function vis_kun_et(menuid) {
    for (i=0; i<5;i++) {
        skjul_lag('lag'+i);
    }
    vis_lag(menuid);
}

Kald så med:

<p><a href="java script:vis_kun_et('lag1')">Link1</a></p>
<p><a href="java script:vis_kun_et('lag2')">Link2</a></p>
<p><a href="java script:vis_kun_et('lag3')">Link3</a></p>
<p><a href="java script:vis_kun_et('lag4')">Link4</a></p>

This does the trick ;-)
/VH
Ole Clausen
Avatar billede skjoldby Nybegynder
15. januar 2000 - 13:09 #15
ja, det var også næsten det jeg havde:

// Antal menuer
numMenus = 4;

// Funktion til at skjule alle andre undtagen 'menuid'
function hideall(menuid){
for(i=1;i<=numMenus;i++)
if (menuid != "lag"+i) {
if(n) {document.layers["lag"+i].visibility = hidden;}
else if (ie) {document.all("lag"+i).style.visibility = hidden;}
vis_lag(menuid);
}

men din er da langt nemmere ole.
Avatar billede olebole Juniormester
15. januar 2000 - 13:54 #16
Takker :-))
Avatar billede stoffer Nybegynder
17. januar 2000 - 11:21 #17
Perfekt :)

du er gud
Avatar billede stoffer Nybegynder
18. januar 2000 - 14:45 #18
Hejsa, hvis i gider hjælpe mig én gang, jeg kan ikke helt forstå hvorfor dette ikke virker


<SCRIPT LANGUAGE="JavaScript">

// Bestemmelse af browseren
    n=document.layers;
    ie=document.all;

// Globale cross-browser show/hide variabler
    if (n) {
    visible='show';
    hidden='hide'; }

    else if (ie) {
    visible='visible';
    hidden='hidden';}

// Funktion til at vise lag
    function vis_lag(menuid){
    if(n) {document.layers[menuid].visibility=visible; document.layers["lag0"].visibility=hidden;}
    else if (ie) {document.all(menuid).style.visibility=visible; document.all("lag0").style.visibility=hidden;}
    }

// Funktion til at skjule lag
    function skjul_lag(menuid){
    if(n) {document.layers[menuid].visibility=hidden; document.layers["lag0"].visibility=visible;}
    else if (ie) {document.all(menuid).style.visibility=hidden; document.all("lag0").style.visibility=visible;}
    }


// Funktion til at vise eet lag og skjule resten
function vis_kun_et(menuid) {
    for (i=0; i<3;i++) {
        skjul_lag('lag'+i);
    }
    vis_lag(menuid);
}

//-->
</SCRIPT>



<MAP NAME="ImageMap32226">
<!-- bancosantander_es id=lag1 -->
<AREA SHAPE="CIRCLE" ALT="Banco Santander Central Hispano" COORDS="56,378,5" HREF="#" onclick"vis_kun_et('lag1')">
<!-- santander_pt id=lag2  -->
<AREA SHAPE="CIRCLE" ALT="Banco Santander Portugal" COORDS="14,361,4" HREF="#" onclick"vis_kun_et('lag2')">
</MAP>
<IMG border=0 height=432 src="../../images/banner/europakort.gif" useMap=#ImageMap32226 width=330>





<div ID="lag0" style="z-index:0; visibility: visible" class="lag">asdfasdf
</div> asdfasf
<div ID="lag1" STYLE="z-index:1; visibility:visible; position:absolute; width:100%; height:1" class="lag"> asfdasf
</div>
<div ID="lag2" STYLE="z-index:1; visibility:visible; position:absolute; width:100%; height:1" class="lag"> asdfas
</div>

Avatar billede skjoldby Nybegynder
18. januar 2000 - 19:03 #19
i div tagsne burde du nok skrive visibility: hidden
lag0 skal vist også have position:absolute; og en srørrelse.
Avatar billede olebole Juniormester
21. januar 2000 - 08:39 #20
Enig, desuden:
Lag 1 og 2 har kun en højde på '1' - er det rigtigt?
Du refererer til style-class 'lag', men det er ikke defineret.
/VH
Ole
Avatar billede stoffer Nybegynder
21. januar 2000 - 12:48 #21
olebole ---> det burde sådan set være lige meget, men jeg har slettet tagsne

i den version jeg arbejder med har jeg en table, og den udvider sig dynamisk, med lidt ASP, derfor kun højde 1

skjoldby ---> du havde ret, der skal være de nøjagtig samme tags i lag 0, ellers virker det ikke - NS's finurligheder....


Mange tak for hjælpen :-)

Avatar billede olebole Juniormester
21. januar 2000 - 19:29 #22
Jeg sidder selv og 'bakser' med en anden anvendelse af det senere så berømte script, 'Skjoldbys lag' :-)
Jeg regnede med at skjoldby havde ret i sin antagelse men hensyn til tag'ene, sagen er bare, at jeg får kløe af unødig 'gammel' kode. Den gør det altid meget sværere at debugge. C'est tout ;-)
Avatar billede stoffer Nybegynder
18. februar 2000 - 15:13 #23
hejsa, jeg ved godt dette er et gammelt spg. men jeg havde brug for scriptet igen og synes ikke det var helt perfekt, så jeg vil lige poste den version som jeg synes er bedre...

<SCRIPT LANGUAGE="JavaScript">
<!--

//Bestemmelse af browseren
    n=document.layers;
    ie=document.all;



// Globale cross-browser show/hide variabler
    if (n) {
    visible='show';
    hidden='hide'; }

    else if (ie) {
    visible='visible';
    hidden='hidden';}
   
   


// Funktion til at vise lag
    function vis_lag(temp){
    var obj = eval("document." + temp);
    if(n) {obj.visibility=visible;}
    else if (ie) {document.all(temp).style.visibility=visible;}
    }

// Funktion til at skjule lag
    function skjul_lag(temp){
    var obj = eval("document." + temp);
    if(n) {obj.visibility=hidden;}
    else if (ie) {document.all(temp).style.visibility=hidden;}
    }


// Funktion til at vise eet lag og skjule resten
function vis_kun_et(menuid) {
    var temp = menuid;
    for (i=1; i<4;i++) {
        skjul_lag('lag'+i);
    }
    vis_lag(temp);
}


//-->
</SCRIPT>
Avatar billede olebole Juniormester
19. februar 2000 - 00:01 #24
<ole>
Det er altid rart med opfølgning på gamle debatter - og scriptet er da blevet klart mere sexy :-)
/VH
</bole>
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