Avatar billede pnr Nybegynder
13. juni 2006 - 10:36 Der er 69 kommentarer og
1 løsning

Hjælp til at lave et "rullegardin"

Jeg har brug for et "Rullegardin" hvor man kan trykke på en for at få den rullet ned, når man vil have den væk trykker man på en anden knap også ruller den op igen. Den skal meget gerne kunne bruges i de fleste browsere
Avatar billede mclemens Nybegynder
14. juni 2006 - 13:47 #1
Noget i denne stil?


ww  w.dki  f.com/users/clemens/curtain/curtain.html
Avatar billede mclemens Nybegynder
14. juni 2006 - 13:52 #2
... jeg bruger desværre kun paint :P
Avatar billede mclemens Nybegynder
14. juni 2006 - 13:58 #3
... eller:
ww  w.dki  f.com/users/clemens/curtain/curtain2.html
Avatar billede inctor Nybegynder
14. juni 2006 - 14:01 #4
Hvad er forskellen ? :S
Avatar billede mclemens Nybegynder
14. juni 2006 - 14:09 #5
Den første er et layer på 0 px højde der udvider sig i højden - den sidste er et layer med 100% højde der trækkes ned af ... Hvad der virker bedst afhænger lidt af hvad man skal have som baggrunden...
Avatar billede mclemens Nybegynder
14. juni 2006 - 14:10 #6
Hvad der virker bedst -> Hvad der ser bedst ud (de virker lige godt)
Avatar billede mclemens Nybegynder
14. juni 2006 - 14:14 #7
Kaster lige et svar hvis nu det var det du tænkte på pnr...
Jeg er ikke på nettet igen før ved 16-17 tiden...
Avatar billede inctor Nybegynder
14. juni 2006 - 14:21 #9
nu kunne man klikke .. :)
Avatar billede mclemens Nybegynder
14. juni 2006 - 14:30 #10
HVAD HAR DU GANG I!
Avatar billede mclemens Nybegynder
14. juni 2006 - 14:44 #11
ww    -  fjern mellemrum  w.dkif.com/users/clemens/curtai/curtain.html
ww    -  fjern mellemrum  .dkif.com/users/clemens/curtai/curtain2.html
Avatar billede mclemens Nybegynder
14. juni 2006 - 14:47 #12
ww    -  fjern mellemrum  w.dkif.com/users/clemens/curtai/curtain2.html

... fejl i den sidste ...

inctor, undskyld jeg blev lidt stresset ... siderne jeg linker til
skal ikke indekseres derfor laver jeg dem ikke klikbare...
Avatar billede mclemens Nybegynder
14. juni 2006 - 14:58 #13
Inctor, nu har jeg lige sat både noindex og
nofollow på så kan vi godt linke den ;o)

www.dkif.com/users/clemens/curtain/curtain.html
www.dkif.com/users/clemens/curtain/curtain2.html

... Domænet dkif.com's sider/undersider skal
bare ikke indekseres ( ikke lige p.t. ;o) )
Avatar billede inctor Nybegynder
14. juni 2006 - 20:12 #14
Hvorfor ikke det ? :S
Avatar billede inctor Nybegynder
14. juni 2006 - 20:15 #15
hvorfor "hakker" den sån af sted ? kan man ikk lave den flydene ? hvis du forstår ..
Avatar billede mclemens Nybegynder
14. juni 2006 - 20:21 #16
if((tmppos==0)&&(cuchk)){tmpos=1;
  if((tmp!=-2)&&(tmp<-1))setTimeout("cutoolplc("+tmppos+");",10);
}

else if((tmppos==-36)&&(!cuchk)){tmpos=-1;
  if((tmp!=-35)&&(tmp>-36))setTimeout("cutoolplc("+tmppos+");",10);
}

... timeout værdier kan øges det er det der gør det ... browsere har svært ved at holde en så lav timeout ... så kan man øge px forøgelserne istedet (tmpos) ... dog skal man lige sørge for at man rammer siden på px'len eller også skal den øges så der er 3px ekstra at give af...
Avatar billede mclemens Nybegynder
14. juni 2006 - 20:23 #17
[ Hvorfor ikke det ? :S ]
- Jeg skal måske bruge den til noget - p.t. står
den bare "klar" til en evt. senere beslutning...

(vil ikke have irrelevante links på søgestationer
der henviser til andet indhold end det indhold jeg
senere beslutter at der skal være på siden ...)
Avatar billede pnr Nybegynder
14. juni 2006 - 20:48 #19
hej mclemens tak for dine kommentare

det script jeg søger skal gerne kunne følgende:
Selve rullegardinet skal kunne indholde noget HTML

når man laver et onclick på et element oven over rullegardinet(ikke i rullegardinet) skal det rulle ned

Når man laver et onclick på et element i bunden af rullegardinet skal den rulle op.

Det skal være muligt efter et postback at have gardinet rullet ned fra start
Avatar billede mclemens Nybegynder
14. juni 2006 - 21:21 #20
[ det script jeg søger skal gerne kunne følgende:
Selve rullegardinet skal kunne indholde noget HTML ]
- Ordnet...

[ når man laver et onclick på et element oven over rullegardinet(ikke i rullegardinet) skal det rulle ned ]

[ Når man laver et onclick på et element i bunden af rullegardinet skal den rulle o ]

- Ikke helt sikker på disse? Er det bare knapper du tænker på?
... Lidt mere info? Ellers så skifter denne ene knap både mellem rul op og rul ned... skal det være to adskilte knapper i top og bund istedet?

onclick="curtchk=(curtchk)?false:true;cuact();"

- alternativt ville denne altid rulle gardiner ned:

onclick="curtchk=true;cuact();"

og denne altid op:

onclick="curtchk=false;cuact();"


... kigger lige på en cookie ... nåh joh...

www.dkif.com/users/clemens/curtain/curtain-ed2.html
Avatar billede mclemens Nybegynder
14. juni 2006 - 21:26 #21
Avatar billede mclemens Nybegynder
14. juni 2006 - 21:37 #22
[ Det skal være muligt efter et postback at have gardinet rullet ned fra start ]
- Ikke muligt fra start af - så skal du gøre det serverside hvor du varierer id på curtbody så den evt. starter med fuld højde ... ellers kan den først lave det ved onload...
Avatar billede mclemens Nybegynder
14. juni 2006 - 22:07 #23
.
Avatar billede pnr Nybegynder
15. juni 2006 - 11:59 #24
Nu har jeg efterhånden fået den til at opføre sig som jeg gerne vil have, der dog stadig et problem, den virker ikke 100% som som et rullegardin. Jeg mangler at det første man ser når den ruller ned er bunden, og det sidste man ser når den ruller op også er bunden. Du kan se hvad jer er kommet frem til her: http://net.ibil.dk/
Avatar billede mclemens Nybegynder
15. juni 2006 - 12:17 #25
curtain2 og 2b samt den nye fungerede som et rullegardin - curtain og curtainb øgede blot størrelsen... Den er ikke optimeret til placering i enkelte elementer - og højde øgelse baseret på oprindelig højde ... nu ved jeg hvordan den skal virke - kigger på en anden udgave (iaften) hvis der ikke kommer et andet bud inden :o)
Avatar billede pnr Nybegynder
15. juni 2006 - 12:55 #26
Jeg glæder mig til at se hvad du finder p :-)
Avatar billede mclemens Nybegynder
15. juni 2006 - 17:54 #27
Er gået lidt igang med at lave det nu ...
det har dog fanget mig lidt m.h.t. kodningen
- forstået på den måde at jeg synes:

1.1 Den skal være uafhængig af positioner med js måling på box størrelser.
1.2 Evt. med offset til knappen man trykker på med absolut position herfra ...

2.1 Mulighed for at vælge om den skal være synlig ved klik på næste boks.
2.2 Evt. også senere mulighed for funktion som dropdown...

- har fået kastet object objectet sammen med offsetWidth m.v.
... men, det er en stor mundfuld for mig umiddelbart så jeg når ikke at blive færdig med det idag ... ved heller ikke om jeg kan kaste alt det sammen men prøver (man kan jo altid prøve) ... ville bare lige skrive det så du ikke sidder og venter på mig ... ved ikke hvor langsomt/hurtigt det går (langsomt nok nærmere) ;o)
Avatar billede mclemens Nybegynder
15. juni 2006 - 17:56 #28
Og så ville det selvfølgelig være rart med en mulighed for at vælge mellem curtain dropdown , opacity fremvisning og omgående visning ... men som du kan høre skal jeg lige have en ting af gangen - den er bare lidt for oplagt til en udvidelse ...
Avatar billede mclemens Nybegynder
15. juni 2006 - 17:57 #29
( og kan jo også selv bruge en sådan )
Avatar billede pnr Nybegynder
15. juni 2006 - 19:57 #30
Jeg er spændt på at se hvad du ender op med :-)
Avatar billede mclemens Nybegynder
15. juni 2006 - 21:39 #31
P.t. - Den skal lige have den anden fremvisningsfunktion...



<!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>Ingen titel</title><meta name="robots" content="noindex, nofollow">

<style type="text/css">

/* Demo page css */
html,body{margin:0px;padding:0px;border:0px;}
body{padding:10px;font:14px arial,sans-serif;position:relative;}



/* Needed for script */
#mcp_div{overflow:hidden;}
.mcp_abs{position:absolute;top:0px;left:0px;}
.mcp_app{position:relative;height:0px;overflow:hidden;}

</style>

<script type="text/javascript">

/* MCPosition:absolute layer */
/* Script by Marc Clemmensen */
/* http://exp.dk/spm/715114  */
/* - - - Version: 0.90 - - - */
/* Free use - keep this note */
/* If changed add extra note */


/* Changeable values */
mcpcs=10; // Speed of animation in ms.
mcpcp=1; // Amount of pixels used for each change.
/* ----------------- */


/* Don't touch script below unless you know where to edit */

var mcp={}; // Object for transportation of objects and their properties

window.onload=function(){ // Initiate script onload

var tns=document.getElementById("mcp_div").childNodes; // Get object shotcuts and info
for(i=0;i<tns.length;i++)if(tns[i].id){
  mcp[tns[i].id]={c:false,h:tns[i].offsetHeight,o:tns[i],s:tns[i].style,w:tns[i].offsetWidth};
  tns[i].style.height="0px";tns[i].style.overflow="hidden";
}

}


function mcppos(mcp0,mcp1){ // Extend/minimize layers

mcp0=mcp["mcp"+mcp0]; // Activate shortcut

tmpn=document.getElementById(mcp0.o.id+"_"); // Set top postition
tmpt=tmpn.offsetTop;tmpl=tmpn.offsetLeft;alert(tmpt);
while(tmpn=tmpn.offsetParent){tmpt=tmpt+tmpn.offsetTop;tmpl=tmpn.offsetLeft;}
mcp0.s.top=tmpt+"px";mcp0.s.left=tmpl+"px";

if(mcp1==3)mcp1=!mcp0.c; // Make a check value for the action
else mcp1=(mcp1==1)?true:false;
mcp0.c=mcp1;mcp1=(mcp1)?1:0;

mcpact(mcp0.o.id,mcp1); // Activate layer handling

}


function mcpact(o,sh){

o=mcp[o]; // Activate shortcut

oh=parseInt(o.s.height.replace("px","")); // Get current height

if((o.c)&&(oh<o.h)&&(sh==1)){
  if((mcpcp+oh)<(o.h+1)){
  o.s.height=mcpcp+oh+"px"; // Set new height
  setTimeout("mcpact('"+o.o.id+"',1);",mcpcs); // Loop script
  }
}

else if((!o.c)&&(oh>0)&&(sh==0)){
  if((-mcpcp+oh)>-1){
  o.s.height=-mcpcp+oh+"px"; // Set new height
  setTimeout("mcpact('"+o.o.id+"',0);",mcpcs); // Loop script
  }
}

}

</script></head><body>


<b onclick="mcppos('brev',1)">Vis brev1</b><br>
<b onclick="mcppos('brev',2)">Skjul brev1</b><br>
<b onclick="mcppos('brev',3)">Vis/skjul brev1</b><br><br>

<b onclick="mcppos('brev2',1)">Vis brev2</b><br>
<b onclick="mcppos('brev2',2)">Skjul brev2</b><br>
<b onclick="mcppos('brev2',3)">Vis/skjul brev2</b><br><br>

Lige nedenunder er mcpbrev<br>
<div id="mcpbrev_" class="mcp_app">&nbsp;</div>
Lige ovenover er mcpbrev<br><br><br><br><br>

Lige nedenunder er mcpbrev2<br>
<div id="mcpbrev2_" class="mcp_app"></div>
Lige ovenover er mcpbrev2





<div id="mcp_div">


<div id="mcpbrev" class="mcp_abs">

<div style="position:relative;width:200px;background:#aaa;border:1px solid #000;margin-bottom:10px;">Small message...<br><b>Bold tag</b><br><br><b onclick="mcppos('brev',1)">Vis brev1</b><br>
<b onclick="mcppos('brev',2)">Skjul brev1</b><br>
<b onclick="mcppos('brev',3)">Vis/skjul brev1</b></div>

</div>

<div id="mcpbrev2" class="mcp_abs">

<div style="position:relative;width:500px;height:300px;background:#888;border:5px solid #000;margin-bottom:10px;margin-left:200px">Longer message...<br><b>Bold tag</b><br><i>Italic tag</i><br><br><b onclick="mcppos('brev2',1)">Vis brev2</b><br>
<b onclick="mcppos('brev2',2)">Skjul brev2</b><br>
<b onclick="mcppos('brev2',3)">Vis/skjul brev2</b></div>

</div>


</div>

</body></html>
Avatar billede mclemens Nybegynder
15. juni 2006 - 21:39 #32
( de andre features jeg nævnte må blive senere :P )
Avatar billede mclemens Nybegynder
15. juni 2006 - 21:42 #33
mcppos('brev2',3)
'brev' henviser til id navn på div
( mcpbrev2 og en der hedder mcpbrev2_ )
3 - skifter mellem åben og lukket
2 - lukker den
1 - åbner den
Avatar billede mclemens Nybegynder
15. juni 2006 - 21:45 #34
Man kan jo også bruge den til onmouseover
og onmouseout på nogle menu ting måske ;o)
Avatar billede mclemens Nybegynder
15. juni 2006 - 21:46 #35
Erstat lige det her funktions afsnit ...
der var en dum alert jeg glemte...

function mcppos(mcp0,mcp1){ // Extend/minimize layers

mcp0=mcp["mcp"+mcp0]; // Activate shortcut

tmpn=document.getElementById(mcp0.o.id+"_"); // Set top postition
tmpt=tmpn.offsetTop;tmpl=tmpn.offsetLeft;
while(tmpn=tmpn.offsetParent){tmpt=tmpt+tmpn.offsetTop;tmpl=tmpn.offsetLeft;}
mcp0.s.top=tmpt+"px";mcp0.s.left=tmpl+"px";

if(mcp1==3)mcp1=!mcp0.c; // Make a check value for the action
else mcp1=(mcp1==1)?true:false;
mcp0.c=mcp1;mcp1=(mcp1)?1:0;

mcpact(mcp0.o.id,mcp1); // Activate layer handling

}
Avatar billede mclemens Nybegynder
15. juni 2006 - 21:54 #36
Hehe, sjov lille ting hvis man trykker flere gange på en knap der skal lukke eller åbne løber funktionen hurtige da den starte flere tråde :D ... skal jeg deaktivere det?
Avatar billede mclemens Nybegynder
15. juni 2006 - 22:05 #37
<!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>Ingen titel</title><meta name="robots" content="noindex, nofollow">

<style type="text/css">

/* Demo page css */
html,body{margin:0px;padding:0px;border:0px;}
body{padding:10px;font:14px arial,sans-serif;position:relative;}



/* Needed for script */
#mcp_div{overflow:hidden;}
.mcp_abs{position:absolute;top:0px;left:0px;}
.mcp_app{position:relative;height:0px;overflow:hidden;}

</style>

<script type="text/javascript">

/* MCPosition:absolute layer */
/* Script by Marc Clemmensen */
/* http://exp.dk/spm/715114  */
/* - - - Version: 0.90 - - - */
/* Free use - keep this note */
/* If changed add extra note */


/* Changeable values */
mcpcs=10; // Speed of animation in ms.
mcpcp=1; // Amount of pixels used for each change.
/* ----------------- */


/* Don't touch script below unless you know where to edit */

var mcp={}; // Object for transportation of objects and their properties

window.onload=function(){ // Initiate script onload

var tns=document.getElementById("mcp_div").childNodes; // Get object shotcuts and info
for(i=0;i<tns.length;i++)if(tns[i].id){
  mcp[tns[i].id]={c:false,h:tns[i].offsetHeight,o:tns[i],s:tns[i].style,w:tns[i].offsetWidth};
  tns[i].style.height="0px";tns[i].style.overflow="hidden";
}

}


function mcppos(mcp0,mcp1,mcp2){ // Extend/minimize layers

mcp0=mcp["mcp"+mcp0]; // Activate shortcut

tmpn=document.getElementById(mcp0.o.id+"_"); // Set top postition
tmpt=tmpn.offsetTop;tmpl=tmpn.offsetLeft;
while(tmpn=tmpn.offsetParent){tmpt=tmpt+tmpn.offsetTop;tmpl=tmpn.offsetLeft;}
mcp0.s.top=tmpt+"px";mcp0.s.left=tmpl+"px";

if(mcp1==3)mcp1=!mcp0.c; // Make a check value for the action
else mcp1=(mcp1==1)?true:false;
mcp0.c=mcp1;mcp1=(mcp1)?1:0;

mcpact(mcp0.o.id,mcp1,mcp2); // Activate layer handling

}


function mcpact(mcp0,mcp1,mcp2){

if(!mcp2)mcp2=0;

o=mcp[mcp0]; // Activate shortcut

oh=parseInt(o.s.height.replace("px","")); // Get current height

if((o.c)&&(oh<o.h)&&(mcp1==1)){
  if((mcpcp+oh)<(o.h+1)){
  if(mcp2==0)o.o.childNodes[0].style.top=-o.h+mcpcp+oh+"px"; // Set top
  o.s.height=mcpcp+oh+"px"; // Set new height
  setTimeout("mcpact('"+o.o.id+"',1,'"+mcp2+"');",mcpcs); // Loop script
  }
}

else if((!o.c)&&(oh>0)&&(mcp1==0)){
  if((-mcpcp+oh)>-1){
  o.s.height=-mcpcp+oh+"px"; // Set new height
  setTimeout("mcpact('"+o.o.id+"',0,'"+mcp2+"');",mcpcs); // Loop script
  }
}

}

</script></head><body>


<b onclick="mcppos('brev',1)">Vis brev1</b><br>
<b onclick="mcppos('brev',2)">Skjul brev1</b><br>
<b onclick="mcppos('brev',3)">Vis/skjul brev1</b><br><br>

<b onclick="mcppos('brev2',1)">Vis brev2</b><br>
<b onclick="mcppos('brev2',2)">Skjul brev2</b><br>
<b onclick="mcppos('brev2',3)">Vis/skjul brev2</b><br><br>

<b onclick="mcppos('brev3',1,1)">Vis brev3</b><br>
<b onclick="mcppos('brev3',2,1)">Skjul brev3</b><br>
<b onclick="mcppos('brev3',3,1)">Vis/skjul brev3</b><br><br>

Lige nedenunder er mcpbrev<br>
<div id="mcpbrev_" class="mcp_app">&nbsp;</div>
Lige ovenover er mcpbrev<br><br><br><br><br>

Lige nedenunder er mcpbrev2<br>
<div id="mcpbrev2_" class="mcp_app"></div>
Lige ovenover er mcpbrev2<br><br><br><br><br>

Lige nedenunder er mcpbrev3<br>
<div id="mcpbrev3_" class="mcp_app"></div>
Lige ovenover er mcpbrev2<br><br><br><br><br>



<div id="mcp_div">


<div id="mcpbrev" class="mcp_abs">

<div style="position:relative;width:200px;background:#aaa;border:1px solid #000;margin-bottom:10px;">Small message...<br><b>Bold tag</b><br><br><b onclick="mcppos('brev',1)">Vis brev1</b><br>
<b onclick="mcppos('brev',2)">Skjul brev1</b><br>
<b onclick="mcppos('brev',3)">Vis/skjul brev1</b></div>

</div>


<div id="mcpbrev2" class="mcp_abs">

<div style="position:relative;width:500px;height:300px;background:#888;border:5px solid #000;margin-bottom:10px;margin-left:200px">Longer message...<br><b>Bold tag</b><br><i>Italic tag</i><br><br><b onclick="mcppos('brev2',1)">Vis brev2</b><br>
<b onclick="mcppos('brev2',2)">Skjul brev2</b><br>
<b onclick="mcppos('brev2',3)">Vis/skjul brev2</b></div>

</div>


<div id="mcpbrev3" class="mcp_abs">

<div style="position:relative;width:400px;height:300px;background:#888;border:5px solid #000;margin-bottom:10px;margin-left:100px">Longer message...<br><b>Bold tag</b><br><i>Italic tag</i><br><br><b onclick="mcppos('brev3',1)">Vis brev3</b><br>
<b onclick="mcppos('brev3',2)">Skjul brev3</b><br>
<b onclick="mcppos('brev3',3)">Vis/skjul brev3</b></div>

</div>


</div>

</body></html>
Avatar billede mclemens Nybegynder
15. juni 2006 - 22:07 #38
Hov for tidligt ... mangler lige en sidste kontrol ... den kan håndtere begge måder bagefter...

mcppos('brev2',3,0) (eller mcppos('brev2',3) )
'brev' henviser til id navn på div
( mcpbrev2 og en der hedder mcpbrev2_ )
3 - skifter mellem åben og lukket
2 - lukker den
1 - åbner den
- dropdown gardin...


mcppos('brev2',3,1)
'brev' henviser til id navn på div
( mcpbrev2 og en der hedder mcpbrev2_ )
3 - skifter mellem åben og lukket
2 - lukker den
1 - åbner den
- fremvisende fra top og nedaf..
Avatar billede mclemens Nybegynder
15. juni 2006 - 22:09 #39
Sådan ... de andre funktioner med opacity må komme senere


<!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>Ingen titel</title><meta name="robots" content="noindex, nofollow">

<style type="text/css">

/* Demo page css */
html,body{margin:0px;padding:0px;border:0px;}
body{padding:10px;font:14px arial,sans-serif;position:relative;}



/* Needed for script */
#mcp_div{overflow:hidden;}
.mcp_abs{position:absolute;top:0px;left:0px;}
.mcp_app{position:relative;height:0px;overflow:hidden;}

</style>

<script type="text/javascript">

/* MCPosition:absolute layer */
/* Script by Marc Clemmensen */
/* http://exp.dk/spm/715114  */
/* - - - Version: 0.91 - - - */
/* Free use - keep this note */
/* If changed add extra note */


/* Changeable values */
mcpcs=10; // Speed of animation in ms.
mcpcp=1; // Amount of pixels used for each change.
/* ----------------- */


/* Don't touch script below unless you know where to edit */

var mcp={}; // Object for transportation of objects and their properties

window.onload=function(){ // Initiate script onload

var tns=document.getElementById("mcp_div").childNodes; // Get object shotcuts and info
for(i=0;i<tns.length;i++)if(tns[i].id){
  mcp[tns[i].id]={c:false,h:tns[i].offsetHeight,o:tns[i],s:tns[i].style,w:tns[i].offsetWidth};
  tns[i].style.height="0px";tns[i].style.overflow="hidden";
}

}


function mcppos(mcp0,mcp1,mcp2){ // Extend/minimize layers

mcp0=mcp["mcp"+mcp0]; // Activate shortcut

tmpn=document.getElementById(mcp0.o.id+"_"); // Set top postition
tmpt=tmpn.offsetTop;tmpl=tmpn.offsetLeft;
while(tmpn=tmpn.offsetParent){tmpt=tmpt+tmpn.offsetTop;tmpl=tmpn.offsetLeft;}
mcp0.s.top=tmpt+"px";mcp0.s.left=tmpl+"px";

if(mcp1==3)mcp1=!mcp0.c; // Make a check value for the action
else mcp1=(mcp1==1)?true:false;
mcp0.c=mcp1;mcp1=(mcp1)?1:0;

mcpact(mcp0.o.id,mcp1,mcp2); // Activate layer handling

}


function mcpact(mcp0,mcp1,mcp2){

if(!mcp2)mcp2=0;

o=mcp[mcp0]; // Activate shortcut

oh=parseInt(o.s.height.replace("px","")); // Get current height

if((o.c)&&(oh<o.h)&&(mcp1==1)){
  if((mcpcp+oh)<(o.h+1)){
  if(mcp2==0)o.o.childNodes[0].style.top=-o.h+mcpcp+oh+"px"; // Set top
  o.s.height=mcpcp+oh+"px"; // Set new height
  setTimeout("mcpact('"+o.o.id+"',1,'"+mcp2+"');",mcpcs); // Loop script
  }
}

else if((!o.c)&&(oh>0)&&(mcp1==0)){
  if((-mcpcp+oh)>-1){
  if(mcp2==0)o.o.childNodes[0].style.top=-o.h+mcpcp+oh+"px"; // Set top
  o.s.height=-mcpcp+oh+"px"; // Set new height
  setTimeout("mcpact('"+o.o.id+"',0,'"+mcp2+"');",mcpcs); // Loop script
  }
}

}

</script></head><body>


<b onclick="mcppos('brev',1)">Vis brev1</b><br>
<b onclick="mcppos('brev',2)">Skjul brev1</b><br>
<b onclick="mcppos('brev',3)">Vis/skjul brev1</b><br><br>

<b onclick="mcppos('brev2',1)">Vis brev2</b><br>
<b onclick="mcppos('brev2',2)">Skjul brev2</b><br>
<b onclick="mcppos('brev2',3)">Vis/skjul brev2</b><br><br>

<b onclick="mcppos('brev3',1,1)">Vis brev3</b><br>
<b onclick="mcppos('brev3',2,1)">Skjul brev3</b><br>
<b onclick="mcppos('brev3',3,1)">Vis/skjul brev3</b><br><br>

Lige nedenunder er mcpbrev<br>
<div id="mcpbrev_" class="mcp_app">&nbsp;</div>
Lige ovenover er mcpbrev<br><br><br><br><br>

Lige nedenunder er mcpbrev2<br>
<div id="mcpbrev2_" class="mcp_app"></div>
Lige ovenover er mcpbrev2<br><br><br><br><br>

Lige nedenunder er mcpbrev3<br>
<div id="mcpbrev3_" class="mcp_app"></div>
Lige ovenover er mcpbrev2<br><br><br><br><br>



<div id="mcp_div">


<div id="mcpbrev" class="mcp_abs">

<div style="position:relative;width:200px;background:#aaa;border:1px solid #000;margin-bottom:10px;">Small message...<br><b>Bold tag</b><br><br><b onclick="mcppos('brev',1)">Vis brev1</b><br>
<b onclick="mcppos('brev',2)">Skjul brev1</b><br>
<b onclick="mcppos('brev',3)">Vis/skjul brev1</b></div>

</div>


<div id="mcpbrev2" class="mcp_abs">

<div style="position:relative;width:500px;height:300px;background:#888;border:5px solid #000;margin-bottom:10px;margin-left:200px">Longer message...<br><b>Bold tag</b><br><i>Italic tag</i><br><br><b onclick="mcppos('brev2',1)">Vis brev2</b><br>
<b onclick="mcppos('brev2',2)">Skjul brev2</b><br>
<b onclick="mcppos('brev2',3)">Vis/skjul brev2</b></div>

</div>


<div id="mcpbrev3" class="mcp_abs">

<div style="position:relative;width:400px;height:300px;background:#888;border:5px solid #000;margin-bottom:10px;margin-left:100px">Longer message...<br><b>Bold tag</b><br><i>Italic tag</i><br><br><b onclick="mcppos('brev3',1,1)">Vis brev3</b><br>
<b onclick="mcppos('brev3',2,1)">Skjul brev3</b><br>
<b onclick="mcppos('brev3',3,1)">Vis/skjul brev3</b></div>

</div>


</div>

</body></html>
Avatar billede mclemens Nybegynder
15. juni 2006 - 22:10 #40
P.s.: Beskrivelsen er på engelsk da jeg nok skal
have lagt den ind på et evt. senere websted...
Avatar billede mclemens Nybegynder
15. juni 2006 - 22:18 #41
Hov der kom en fejl i ff nu ... kigger lige på den del :/
Avatar billede mclemens Nybegynder
15. juni 2006 - 22:33 #42
<!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>Ingen titel</title><meta name="robots" content="noindex, nofollow">

<style type="text/css">

/* Demo page css */
html,body{margin:0px;padding:0px;border:0px;}
body{padding:10px;font:14px arial,sans-serif;position:relative;}



/* Needed for script */
#mcp_div{overflow:hidden;}
.mcp_abs{position:absolute;top:0px;left:0px;}
.mcp_app{position:relative;height:0px;overflow:hidden;}

</style>

<script type="text/javascript">

/* MCPosition:absolute layer */
/* Script by Marc Clemmensen */
/* http://exp.dk/spm/715114  */
/* - - - Version: 0.92 - - - */
/* Free use - keep this note */
/* If changed add extra note */


/* Changeable values */
mcpcs=10; // Speed of animation in ms.
mcpcp=1; // Amount of pixels used for each change.
/* ----------------- */


/* Don't touch script below unless you know where to edit */

var mcp={}; // Object for transportation of objects and their properties

window.onload=function(){ // Initiate script onload

var tns=document.getElementById("mcp_div").childNodes; // Get object shotcuts and info
for(i=0;i<tns.length;i++)if(tns[i].id){
  mcp[tns[i].id]={c:false,h:tns[i].offsetHeight,o:tns[i],s:tns[i].style,w:tns[i].offsetWidth};
  tns[i].style.height="0px";tns[i].style.overflow="hidden";
}

}


function mcppos(mcp0,mcp1,mcp2){ // Extend/minimize layers

mcp0=mcp["mcp"+mcp0]; // Activate shortcut

tmpn=document.getElementById(mcp0.o.id+"_"); // Set top postition
tmpt=tmpn.offsetTop;tmpl=tmpn.offsetLeft;
while(tmpn=tmpn.offsetParent){tmpt=tmpt+tmpn.offsetTop;tmpl=tmpn.offsetLeft;}
mcp0.s.top=tmpt+"px";mcp0.s.left=tmpl+"px";

if(mcp1==3)mcp1=!mcp0.c; // Make a check value for the action
else mcp1=(mcp1==1)?true:false;
mcp0.c=mcp1;mcp1=(mcp1)?1:0;

mcpact(mcp0.o.id,mcp1,mcp2); // Activate layer handling

}


function mcpact(mcp0,mcp1,mcp2){

o=mcp[mcp0]; // Activate shortcut

oh=parseInt(o.s.height.replace("px","")); // Get current height

if(((o.c)&&(oh<o.h)&&(mcp1==1)&&((mcpcp+oh)<(o.h+1)))||((!o.c)&&(oh>0)&&(mcp1==0)&&((-mcpcp+oh)>-1))){
  if(mcp2==0)o.o.childNodes[0].style.top=-o.h+mcpcp+oh+"px"; // Set top
  o.s.height=(o.c)?mcpcp+oh+"px":-mcpcp+oh+"px"; // Set new height
  setTimeout("mcpact('"+o.o.id+"','"+mcp1+"','"+mcp2+"');",mcpcs);
}

}

</script></head><body>


<b onclick="mcppos('brev',1,0)">Vis brev1</b><br>
<b onclick="mcppos('brev',2,0)">Skjul brev1</b><br>
<b onclick="mcppos('brev',3,0)">Vis/skjul brev1</b><br><br>

<b onclick="mcppos('brev2',1,0)">Vis brev2</b><br>
<b onclick="mcppos('brev2',2,0)">Skjul brev2</b><br>
<b onclick="mcppos('brev2',3,0)">Vis/skjul brev2</b><br><br>

<b onclick="mcppos('brev3',1,1)">Vis brev3</b><br>
<b onclick="mcppos('brev3',2,1)">Skjul brev3</b><br>
<b onclick="mcppos('brev3',3,1)">Vis/skjul brev3</b><br><br>

Lige nedenunder er mcpbrev<br>
<div id="mcpbrev_" class="mcp_app">&nbsp;</div>
Lige ovenover er mcpbrev<br><br><br><br><br>

Lige nedenunder er mcpbrev2<br>
<div id="mcpbrev2_" class="mcp_app"></div>
Lige ovenover er mcpbrev2<br><br><br><br><br>

Lige nedenunder er mcpbrev3<br>
<div id="mcpbrev3_" class="mcp_app"></div>
Lige ovenover er mcpbrev2<br><br><br><br><br>



<div id="mcp_div">


<div id="mcpbrev" class="mcp_abs"><div style="position:relative;width:200px;background:#aaa;border:1px solid #000;margin-bottom:10px;">Small message...<br><b>Bold tag</b><br><br><b onclick="mcppos('brev',1,0)">Vis brev1</b><br>
<b onclick="mcppos('brev',2,0)">Skjul brev1</b><br>
<b onclick="mcppos('brev',3,0)">Vis/skjul brev1</b></div></div>


<div id="mcpbrev2" class="mcp_abs"><div style="position:relative;width:500px;height:300px;background:#888;border:5px solid #000;margin-bottom:10px;margin-left:200px">Longer message...<br><b>Bold tag</b><br><i>Italic tag</i><br><br><b onclick="mcppos('brev2',1,0)">Vis brev2</b><br>
<b onclick="mcppos('brev2',2,0)">Skjul brev2</b><br>
<b onclick="mcppos('brev2',3,0)">Vis/skjul brev2</b></div></div>


<div id="mcpbrev3" class="mcp_abs"><div style="position:relative;width:400px;height:300px;background:#888;border:5px solid #000;margin-bottom:10px;margin-left:100px">Longer message...<br><b>Bold tag</b><br><i>Italic tag</i><br><br><b onclick="mcppos('brev3',1,1)">Vis brev3</b><br>
<b onclick="mcppos('brev3',2,1)">Skjul brev3</b><br>
<b onclick="mcppos('brev3',3,1)">Vis/skjul brev3</b></div></div>


</div>

</body></html>
Avatar billede mclemens Nybegynder
15. juni 2006 - 22:36 #43
<div id="mcpbrev" class="mcp_abs"><div style="position:relative;width
^ - Det var fordi der var mellemrum mellem popup ydre div og indre ... indre divs styles kan selvfølgelig rykkes over i stylesheet og designes samlet med

.mcp_abs div for alle eller #mcpbrev div for unik
... ellers så lige en id/class på den indeni istedet...
Avatar billede mclemens Nybegynder
16. juni 2006 - 00:10 #44
P.s.: forklaring på varianter står i
http://www.eksperten.dk/spm/715114#rid6305924
dog har jeg denne korte form: (eller mcppos('brev2',3) )
Avatar billede mclemens Nybegynder
16. juni 2006 - 00:44 #45
Forbedret koden en tand mere...
http://www.eksperten.dk/spm/715114#rid6305963
... ovenstående div og knapper virker stadig :)
- og funktions opkald er stadig det
samme som i ovenstående indlæg...

<!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>Ingen titel</title><meta name="robots" content="noindex, nofollow">

<style type="text/css">

/* Demo page css */
html,body{margin:0px;padding:0px;border:0px;}
body{padding:10px;font:14px arial,sans-serif;position:relative;}



/* Needed for script */
#mcp_div{overflow:hidden;}
.mcp_abs{position:absolute;top:0px;left:0px;}
.mcp_app{position:relative;height:0px;overflow:hidden;}

</style>

<script type="text/javascript">

/* MCPosition:absolute layer */
/* Script by Marc Clemmensen */
/* http://exp.dk/spm/715114  */
/* - - - Version: 0.93 - - - */
/* Free use - keep this note */
/* If changed add extra note */


/* Changeable values */
mcpcs=10; // Speed of animation in ms.
mcpcp=1; // Amount of pixels used for each change.
/* ----------------- */


/* Don't touch script below unless you know where to edit */

var mcp={}; // Object for transportation of objects and their properties

window.onload=function(){ // Initiate script onload

var tns=document.getElementById("mcp_div").childNodes; // Get object shotcuts and info
for(i=0;i<tns.length;i++)if(tns[i].id){
  mcp[tns[i].id]={c:false,h:tns[i].offsetHeight,o:tns[i],s:tns[i].style,w:tns[i].offsetWidth};
  tns[i].style.height="0px";tns[i].style.overflow="hidden";
}

}


function mcppos(mcp0,mcp1,mcp2){ // Extend/minimize layers

mcp0=mcp["mcp"+mcp0]; // Activate shortcut

tmpn=document.getElementById(mcp0.o.id+"_"); // Set top postition
tmpt=tmpn.offsetTop;tmpl=tmpn.offsetLeft;
while(tmpn=tmpn.offsetParent){tmpt=tmpt+tmpn.offsetTop;tmpl=tmpn.offsetLeft;}
mcp0.s.top=tmpt+"px";mcp0.s.left=tmpl+"px";

if(mcp1==3)mcp1=!mcp0.c; // Make a check value for the action
else mcp1=(mcp1==1)?true:false;

mcp0.c=mcp1;
mcpact(mcp0.o.id,mcp2); // Activate layer handling

}


function mcpact(mcp0,mcp2){

o=mcp[mcp0]; // Activate shortcut

oh=parseInt(o.s.height.replace("px","")); // Get current height

if(((o.c)&&(oh<o.h)&&((mcpcp+oh)<(o.h+1)))||((!o.c)&&(oh>0)&&((-mcpcp+oh)>-1))){
  if(mcp2==0)o.o.childNodes[0].style.top=-o.h+mcpcp+oh+"px"; // Set top
  o.s.height=(o.c)?mcpcp+oh+"px":-mcpcp+oh+"px"; // Set new height
  setTimeout("mcpact('"+o.o.id+"','"+mcp2+"');",mcpcs);
}

}

</script></head><body>


<div onmouseover="mcppos('brev',1,0);" onmouseout="mcppos('brev',2,0);" style="border:2px solid #000;width:200px;">TEST</div>
<div id="mcpbrev_" class="mcp_app">&nbsp;</div>


<div id="mcp_div">

<div onmouseover="mcppos('brev',1,0);" onmouseout="mcppos('brev',2,0);" id="mcpbrev" class="mcp_abs"><div style="position:relative;width:200px;background:#aaa;border:2px solid #000;margin-left:10px;margin-bottom:2px;">Small message...<br><b>Bold tag</b><br><br></div></div>

</div>

</body></html>
Avatar billede pnr Nybegynder
16. juni 2006 - 11:54 #46
Du er jo simpelthen kongen i javascript ;-)

Jeg har bare et lille problem, jeg har en top margin på en omkrandsende div, den genere dit script lidt. Prøv at se en eksempel her : http://net.ibil.dk
Avatar billede mclemens Nybegynder
16. juni 2006 - 12:07 #47
Kigger lidt på det iaften hvis det her ikke hjælper...
<div id="mcp_div"> <- div'en med popup div's skal lægge lige før af slutningen af body (p.t. lægger den inde sammen med dit indhold) ... den skal ikke lægges ind sammen med din hoved div den skal lægge for sig selv før afslutningen af dokumentet (eller helt op i starten af dokumentet før din start div) ... de skulle så placere sig selv automatisk ... dog skal man måske give div's f.eks. lidt margin ... hvis der er margin på body elementet...
Avatar billede mclemens Nybegynder
16. juni 2006 - 12:10 #48
- og tak for ros foresten ... den har stadig lidt forbedringer
foran sig - men det må blive når jeg lige har tiden til det :)
Avatar billede pnr Nybegynder
16. juni 2006 - 21:36 #49
Endnu engang tak for din kommetar, nu har jeg lagt den i bunden lige før body taget slutter, men problemet er så at den ikke passer sammen med rester af siden som er centreret. se http://net.ibil.dk
Avatar billede mclemens Nybegynder
16. juni 2006 - 21:47 #50
Ok, kan godt se det... det ligner et margin problem i
scriptet... jeg kigger på den her iløbet af weekenden ;o)
... poster nok først når den spiller ( håber jeg :P ) ...
Avatar billede mclemens Nybegynder
17. juni 2006 - 02:35 #51
Forkortet det hele ned til den curtain type du skulle bruge istedet...
- scriptet er så blevet en del ændret ... det er lidt for sent til at skrive en forklaring til koden her kl. 2:33 :D ... men her er den som den ser ud p.t. ... alle forklaringerne i koden fjerner du bare hvis det er - skrev lidt forklaring til hvert punkt ... det er jo rart nok hvis man vil se hvordan den spiller rundt...

- Jeg har også løst problemet med at den drønede op
og ned hvis man kørte hurtigt ind og ud af et felt...


<!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>Ingen titel</title><meta name="robots" content="noindex, nofollow">

<style type="text/css">
/* Demo page css */
#brev{border:2px solid #000;width:200px;text-align:center;}
#mcpbrev{border:2px solid #000;border-top:0px;width:200px;background:#aaa;}


/* Needed for script */
.mcp_abs{position:absolute;overflow:hidden;}
.mcp_app{position:relative;height:0px;overflow:hidden;}
#mcp_div{position:relative;height:0px;overflow:hidden;}
</style>

<script type="text/javascript">

/* MCPosition:absolute layer */
/* Script by Marc Clemmensen */
/* http://exp.dk/spm/715114  */
/* - - - Version: 0.94 - - - */
/* Free use - keep this note */
/* If changed add extra note */


/* Changeable values */
mcpcs=10; // Speed of animation in ms.
mcpcp=1; // Amount of pixels used for each change.
mcperr=false; // Alert if missing a div in document (true/false)
/* ----------------- */


/* Don't touch script below unless you know where to edit */

var mcp={}; // Object for transportation of objects and their properties

window.onload=function(){

// Initiate element gathering onload
var tns=document.getElementById("mcp_div").childNodes; // Get all childs
for(i=0;i<tns.length;i++)if(tns[i].id){

  // Check if you've made all div's neccessary...
  if(tn=document.getElementById(tns[i].id+"_")){
  mcp[tns[i].id]={
    c:false,r:0, // Set open/close check and running count
    o:tns[i],s:tns[i].style, // Shortcut to object and style
    h:tns[i].offsetHeight,w:tns[i].offsetWidth // Store elements initial width and height
  };

  tns[i].style.top=-tns[i].offsetHeight+"px"; // Position div at top

  tn.style.height="0px"; // Set height of new parent div element
  tn.style.width=tns[i].offsetWidth+"px"; // Set width of new parent div element

  tn.removeChild(tn.childNodes[0]);tn.appendChild(tns[i]); // Move div element

  }else if(mcperr)alert("The div with id:\n"+tns[i].id+"_\n- was not found");

}

}



function mcppos(mcp0,mcp1){

mcp0=mcp["mcp"+mcp0]; // Activate shortcut
mcp2=++mcp0.r; // Get timeout run number

if(mcp1==3)mcp0.c=!mcp0.c; // Make a check value for the action
else mcp0.c=(mcp1==1)?true:false;

setTimeout("mcpact('"+mcp0.o.id+"',"+mcp2+");",2*mcpcs); // Activate layer handling

}



function mcpact(mcp0,mcp2){
mcp0=mcp[mcp0]; // Activate shortcut

if(mcp2==mcp0.r){ // Check if this is the active layer timeout

tmpns=mcp0.o.offsetParent.style;
tmpnsh=parseInt(tmpns.height.replace("px","")); // Get parent current height

tmpval=(mcp0.c)?mcpcp:-mcpcp; // Tmp value for offsetting

tmperr=false;
if((tmpnsh+tmpval)>mcp0.h)tmpval=mcp0.h-tmpnsh; // Don't make div above actual height
else if((tmpnsh+tmpval)<0)tmpval=tmpnsh; // Don't make div below 0px height
else tmperr=true;

tmpns.height=tmpval+tmpnsh+"px"; // Set new height

mcp0.s.top=-mcp0.h+tmpval+tmpnsh+"px"; // Set top

if(tmperr)setTimeout("mcpact('"+mcp0.o.id+"',"+mcp2+");",mcpcs);

}
}

</script></head><body>


<div onmouseover="mcppos('brev',1);" onmouseout="mcppos('brev',2);" id="brev">TEST</div>
<div id="mcpbrev_" class="mcp_app">&nbsp;</div>






<div id="mcp_div">

<div id="mcpbrev" onmouseover="mcppos('brev',1);" onmouseout="mcppos('brev',2);" class="mcp_abs">Small message...<br>Small message...<br>Small message...<br>Small message...<br>Small message...<br>Small message...</div>

</div>

</body></html>
Avatar billede mclemens Nybegynder
17. juni 2006 - 02:43 #52
Ny udgave igen ... div'erne hvor elementet placeres i skal være placeret inden i en absolute div som i denne body ... ellers rykker det indholdet nedenunder nedad...



<!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>Ingen titel</title><meta name="robots" content="noindex, nofollow">

<style type="text/css">
/* Demo page css */
#brev{border:2px solid #000;width:200px;text-align:center;}
#mcpbrev{border:2px solid #000;border-top:0px;width:200px;background:#aaa;}


/* Needed for script */
.abs{position:absolute;}
.mcp_abs{position:absolute;overflow:hidden;}
.mcp_app{position:relative;height:0px;overflow:hidden;}
#mcp_div{position:relative;height:0px;overflow:hidden;}
</style>

<script type="text/javascript">

/* MCPosition:absolute layer */
/* Script by Marc Clemmensen */
/* http://exp.dk/spm/715114  */
/* - - - Version: 0.95 - - - */
/* Free use - keep this note */
/* If changed add extra note */


/* Changeable values */
mcpcs=10; // Speed of animation in ms.
mcpcp=1; // Amount of pixels used for each change.
mcperr=false; // Alert if missing a div in document (true/false)
/* ----------------- */


/* Don't touch script below unless you know where to edit */

var mcp={}; // Object for transportation of objects and their properties

window.onload=function(){

// Initiate element gathering onload
var tns=document.getElementById("mcp_div").childNodes; // Get all childs
for(i=0;i<tns.length;i++)if(tns[i].id){

  // Check if you've made all div's neccessary...
  if(tn=document.getElementById(tns[i].id+"_")){
  mcp[tns[i].id]={
    c:false,r:0, // Set open/close check and running count
    o:tns[i],s:tns[i].style, // Shortcut to object and style
    h:tns[i].offsetHeight,w:tns[i].offsetWidth // Store elements initial width and height
  };

  tns[i].style.top=-tns[i].offsetHeight+"px"; // Position div at top

  tn.style.height="0px"; // Set height of new parent div element
  tn.style.width=tns[i].offsetWidth+"px"; // Set width of new parent div element

  tn.removeChild(tn.childNodes[0]);tn.appendChild(tns[i]); // Move div element

  }else if(mcperr)alert("The div with id:\n"+tns[i].id+"_\n- was not found");

}

}



function mcppos(mcp0,mcp1){

mcp0=mcp["mcp"+mcp0]; // Activate shortcut
mcp2=++mcp0.r; // Get timeout run number

if(mcp1==3)mcp0.c=!mcp0.c; // Make a check value for the action
else mcp0.c=(mcp1==1)?true:false;

setTimeout("mcpact('"+mcp0.o.id+"',"+mcp2+");",2*mcpcs); // Activate layer handling

}



function mcpact(mcp0,mcp2){
mcp0=mcp[mcp0]; // Activate shortcut

if(mcp2==mcp0.r){ // Check if this is the active layer timeout

tmpns=mcp0.o.offsetParent.style;
tmpnsh=parseInt(tmpns.height.replace("px","")); // Get parent current height

tmpval=(mcp0.c)?mcpcp:-mcpcp; // Tmp value for offsetting

tmperr=false;
if((tmpnsh+tmpval)>mcp0.h)tmpval=mcp0.h-tmpnsh; // Don't make div above actual height
else if((tmpnsh+tmpval)<0)tmpval=tmpnsh; // Don't make div below 0px height
else tmperr=true;

tmpns.height=tmpval+tmpnsh+"px"; // Set new height

mcp0.s.top=-mcp0.h+tmpval+tmpnsh+"px"; // Set top

if(tmperr)setTimeout("mcpact('"+mcp0.o.id+"',"+mcp2+");",mcpcs);

}
}

</script></head><body>


<div onmouseover="mcppos('brev',1);" onmouseout="mcppos('brev',2);" id="brev">TEST</div>
<div class="abs"><div id="mcpbrev_" class="mcp_app">&nbsp;</div></div>aaaaaaaa






<div id="mcp_div">

<div id="mcpbrev" onmouseover="mcppos('brev',1);" onmouseout="mcppos('brev',2);" class="mcp_abs">Small message...<br>Small message...<br>Small message...<br>Small message...<br>Small message...<br>Small message...</div>

</div>

</body></html>
Avatar billede mclemens Nybegynder
17. juni 2006 - 03:17 #53
Nåh sove tid ... der var en fejl ved to div's da jeg har skiftet
kodning til appending af elements istedet ... fejlen er rettet nu ...


<!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>Ingen titel</title><meta name="robots" content="noindex, nofollow">

<style type="text/css">
/* Demo page css */
#brev{border:2px solid #000;width:200px;text-align:center;}
#mcpbrev{border:2px solid #000;border-top:0px;width:200px;background:#aaa;}

#brev2{border:2px solid #000;width:200px;text-align:center;}
#mcpbrev2{border:2px solid #000;border-top:0px;width:200px;background:#888;}


/* Needed for script */
.abs{position:absolute;}
.mcp_abs{position:absolute;overflow:hidden;}
.mcp_app{position:relative;height:0px;overflow:hidden;}
#mcp_div{position:relative;height:0px;overflow:hidden;}
</style>

<script type="text/javascript">

/* MCPosition:absolute layer */
/* Script by Marc Clemmensen */
/* http://exp.dk/spm/715114  */
/* - - - Version: 0.96 - - - */
/* Free use - keep this note */
/* If changed add extra note */


/* Changeable values */
mcpcs=10; // Speed of animation in ms.
mcpcp=1; // Amount of pixels used for each change.
mcperr=false; // Alert if missing a div in document (true/false)
/* ----------------- */


/* Don't touch script below unless you know where to edit */

var mcp={}; // Object for transportation of objects and their properties

window.onload=function(){

// Initiate element gathering onload
var tns=document.getElementById("mcp_div").childNodes; // Get all childs
while(tns.length>0)if(tns[0].id){

  // Check if you've made all div's neccessary...
  if(tn=document.getElementById(tns[0].id+"_")){
  mcp[tns[0].id]={
    c:false,r:0, // Set open/close check and running count
    o:tns[0],s:tns[0].style, // Shortcut to object and style
    h:tns[0].offsetHeight,w:tns[0].offsetWidth // Store elements initial width and height
  };

  tns[0].style.top=-tns[0].offsetHeight+"px"; // Position div at top

  tn.style.height="0px"; // Set height of new parent div element
  tn.style.width=tns[0].offsetWidth+"px"; // Set width of new parent div element

  tn.removeChild(tn.childNodes[0]);tn.appendChild(tns[0]); // Move div element

  }else if(mcperr)alert("The div with id:\n"+tns[0].id+"_\n- was not found");

}

}



function mcppos(mcp0,mcp1){

mcp0=mcp["mcp"+mcp0]; // Activate shortcut
mcp2=++mcp0.r; // Get timeout run number

if(mcp1==3)mcp0.c=!mcp0.c; // Make a check value for the action
else mcp0.c=(mcp1==1)?true:false;

setTimeout("mcpact('"+mcp0.o.id+"',"+mcp2+");",2*mcpcs); // Activate layer handling

}



function mcpact(mcp0,mcp2){
mcp0=mcp[mcp0]; // Activate shortcut

if(mcp2==mcp0.r){ // Check if this is the active layer timeout

tmpns=mcp0.o.offsetParent.style;
tmpnsh=parseInt(tmpns.height.replace("px","")); // Get parent current height

tmpval=(mcp0.c)?mcpcp:-mcpcp; // Tmp value for offsetting

tmperr=false;
if((tmpnsh+tmpval)>mcp0.h)tmpval=mcp0.h-tmpnsh; // Don't make div above actual height
else if((tmpnsh+tmpval)<0)tmpval=tmpnsh; // Don't make div below 0px height
else tmperr=true;

tmpns.height=tmpval+tmpnsh+"px"; // Set new height

mcp0.s.top=-mcp0.h+tmpval+tmpnsh+"px"; // Set top

if(tmperr)setTimeout("mcpact('"+mcp0.o.id+"',"+mcp2+");",mcpcs);

}
}

</script></head><body>

<div style="float:left;">
<div onmouseover="mcppos('brev',1);" onmouseout="mcppos('brev',2);" id="brev">TEST</div>
<div class="abs"><div id="mcpbrev_" class="mcp_app">&nbsp;</div></div>
</div>

<div style="float:left;">
<div onmouseover="mcppos('brev2',1);" onmouseout="mcppos('brev2',2);" id="brev2">TEST</div>
<div class="abs"><div id="mcpbrev2_" class="mcp_app">&nbsp;</div></div>
</div>
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa






<div id="mcp_div">

<div id="mcpbrev" onmouseover="mcppos('brev',1);" onmouseout="mcppos('brev',2);" class="mcp_abs">Small message...<br>Small message...<br>Small message...<br>Small message...<br>Small message...<br>Small message...</div>

<div id="mcpbrev2" onmouseover="mcppos('brev2',1);" onmouseout="mcppos('brev2',2);" class="mcp_abs">Small message...<br>Small message...<br>Small message...<br>Small message...<br>Small message...<br>Small message...</div>

</div>

</body></html>
Avatar billede pnr Nybegynder
19. juni 2006 - 09:12 #54
Nu er den lige ved at være som den skal :-) den laver dog fejl i Mozilla Firefox og Opera.
Avatar billede mclemens Nybegynder
19. juni 2006 - 09:22 #55
Ser om jeg kan rette den lidt senere... det er ff og (måske også op)
der tæller mellemrum som childs... prøv dette bund stykke istedet sammen med ovenstående...

<div id="mcp_div"><div id="mcpbrev" onmouseover="mcppos('brev',1);" onmouseout="mcppos('brev',2);" class="mcp_abs">Small message...<br>Small message...<br>Small message...<br>Small message...<br>Small message...<br>Small message...</div><div id="mcpbrev2" onmouseover="mcppos('brev2',1);" onmouseout="mcppos('brev2',2);" class="mcp_abs">Small message...<br>Small message...<br>Small message...<br>Small message...<br>Small message...<br>Small message...</div></div>

</body></html>
Avatar billede pnr Nybegynder
19. juni 2006 - 09:39 #56
Problemet er der hvor du gennemløber alle div'er i mcp_div. Længden af tns i Mozilla er 5 mens den i IE er 2. Ved ikke om det fortæller dig noget?
Avatar billede mclemens Nybegynder
19. juni 2006 - 09:41 #57
[ Ser om jeg kan rette den lidt senere... det er ff og (måske også op)
der tæller mellemrum som childs... prøv dette bund stykke istedet sammen med ovenstående... ]

^ - Siger mig ikke noget jeg ikke vidste i forvejen (glemte det bare) ... - den skal validere på om child er et div object ... men prøv den anden udgave af mcp_div istedet ... 19/06-2006 09:22:49
Avatar billede mclemens Nybegynder
19. juni 2006 - 09:44 #58
Kigger på child object validering senere har (desværre)
ikke tid lige p.t. (er på "arbjede" lige nu...)
Avatar billede mclemens Nybegynder
19. juni 2006 - 09:59 #59
Øhm, arbjede -> arbejde
Avatar billede mclemens Nybegynder
19. juni 2006 - 10:16 #60
<!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>Ingen titel</title><meta name="robots" content="noindex, nofollow">

<style type="text/css">
/* Demo page css */
#brev{border:2px solid #000;width:200px;text-align:center;}
#mcpbrev{border:2px solid #000;border-top:0px;width:200px;background:#aaa;}

#brev2{border:2px solid #000;width:200px;text-align:center;}
#mcpbrev2{border:2px solid #000;border-top:0px;width:200px;background:#888;}


/* Needed for script */
.abs{position:absolute;}
.mcp_abs{position:absolute;overflow:hidden;}
.mcp_app{position:relative;height:0px;overflow:hidden;}
#mcp_div{position:relative;height:0px;overflow:hidden;}
</style>

<script type="text/javascript">

/* MCPosition:absolute layer */
/* Script by Marc Clemmensen */
/* http://exp.dk/spm/715114  */
/* - - - Version: 0.97 - - - */
/* Free use - keep this note */
/* If changed add extra note */


/* Changeable values */
mcpcs=10; // Speed of animation in ms.
mcpcp=1; // Amount of pixels used for each change.
mcperr=false; // Alert if missing a div in document (true/false)
/* ----------------- */


/* Don't touch script below unless you know where to edit */

var mcp={}; // Object for transportation of objects and their properties

window.onload=function(){

// Initiate element gathering onload
var tns=document.getElementById("mcp_div").childNodes; // Get all childs
while(tns.length>0){

  if(tns[0].id){

  // Check if you've made all div's neccessary...
  if(tn=document.getElementById(tns[0].id+"_")){
    mcp[tns[0].id]={
    c:false,r:0, // Set open/close check and running count
    o:tns[0],s:tns[0].style, // Shortcut to object and style
    h:tns[0].offsetHeight,w:tns[0].offsetWidth // Store elements initial width and height
    };

  tns[0].style.top=-tns[0].offsetHeight+"px"; // Position div at top

  tn.style.height="0px"; // Set height of new parent div element
  tn.style.width=tns[0].offsetWidth+"px"; // Set width of new parent div element

  tn.removeChild(tn.childNodes[0]);tn.appendChild(tns[0]); // Move div element

  }else if(mcperr)alert("The div with id:\n"+tns[0].id+"_\n- was not found");

  }
  else{
  tnx=document.getElementById("mcp_div");
  tnx.removeChild(tnx.childNodes[0]);
  }
}

}



function mcppos(mcp0,mcp1){

mcp0=mcp["mcp"+mcp0]; // Activate shortcut
mcp2=++mcp0.r; // Get timeout run number

if(mcp1==3)mcp0.c=!mcp0.c; // Make a check value for the action
else mcp0.c=(mcp1==1)?true:false;

setTimeout("mcpact('"+mcp0.o.id+"',"+mcp2+");",2*mcpcs); // Activate layer handling

}



function mcpact(mcp0,mcp2){
mcp0=mcp[mcp0]; // Activate shortcut

if(mcp2==mcp0.r){ // Check if this is the active layer timeout

tmpns=mcp0.o.offsetParent.style;
tmpnsh=parseInt(tmpns.height.replace("px","")); // Get parent current height

tmpval=(mcp0.c)?mcpcp:-mcpcp; // Tmp value for offsetting

tmperr=false;
if((tmpnsh+tmpval)>mcp0.h)tmpval=mcp0.h-tmpnsh; // Don't make div above actual height
else if((tmpnsh+tmpval)<0)tmpval=tmpnsh; // Don't make div below 0px height
else tmperr=true;

tmpns.height=tmpval+tmpnsh+"px"; // Set new height

mcp0.s.top=-mcp0.h+tmpval+tmpnsh+"px"; // Set top

if(tmperr)setTimeout("mcpact('"+mcp0.o.id+"',"+mcp2+");",mcpcs);

}
}

</script></head><body>

<div style="float:left;">
<div onmouseover="mcppos('brev',1);" onmouseout="mcppos('brev',2);" id="brev">TEST</div>
<div class="abs"><div id="mcpbrev_" class="mcp_app">&nbsp;</div></div>
</div>

<div style="float:left;">
<div onmouseover="mcppos('brev2',1);" onmouseout="mcppos('brev2',2);" id="brev2">TEST</div>
<div class="abs"><div id="mcpbrev2_" class="mcp_app">&nbsp;</div></div>
</div>
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa






<div id="mcp_div">

<div id="mcpbrev" onmouseover="mcppos('brev',1);" onmouseout="mcppos('brev',2);" class="mcp_abs">Small message...<br>Small message...<br>Small message...<br>Small message...<br>Small message...<br>Small message...</div>

<div id="mcpbrev2" onmouseover="mcppos('brev2',1);" onmouseout="mcppos('brev2',2);" class="mcp_abs">Small message...<br>Small message...<br>Small message...<br>Small message...<br>Small message...<br>Small message...</div>

</div>

</body></html>
Avatar billede pnr Nybegynder
19. juni 2006 - 11:49 #61
Så tror jeg efterhånden at den sidder lige i skabet :-) TUSIND TAK FOR AL DIN HJÆLP ! ! ! !
Avatar billede pnr Nybegynder
19. juni 2006 - 11:50 #62
Du får lige lidt flere point...
Avatar billede mclemens Nybegynder
19. juni 2006 - 12:19 #63
Velbekom, og tak for point :)
Avatar billede mclemens Nybegynder
09. august 2006 - 22:58 #64
P.s. En fejl i den jeg lavede :D

else if((tmpnsh+tmpval)<0)tmpval=tmpnsh; // Don't make div below 0px height

Skal rettes til:

else if((tmpnsh+tmpval)<0)tmpval=-tmpnsh; // Don't make div below 0px height
Avatar billede pnr Nybegynder
15. august 2006 - 15:19 #65
Hej mclemens

Tak for din kommentar, det kalder jeg service!!
men hvad er forskellen på de 2 linier?
Avatar billede mclemens Nybegynder
15. august 2006 - 15:48 #66
Problemet opstod hvis nu at du f.eks. satte
mcpcp=1; // Amount of pixels used for each change.
til 90 eller måske 170 eller 1000 så ville den ikke skjule
hele div'en når højde beregningen kom under 0 px - det skulle
have været minus tallet og ikke plus tallet da målingen på om
højden kommer under 0 er relevant når der trækkes fra i højden
på den fremviste div ... prøv at rette værdien uden rettelsen
og herefter med (forklaringen er ikke for god)...

Opdagede fejlen herinde http://www.eksperten.dk/spm/725183
Avatar billede pnr Nybegynder
15. august 2006 - 15:57 #67
Men der står da det samme i de 2 linier du har "posted"?
Avatar billede mclemens Nybegynder
15. august 2006 - 16:07 #68
else if((tmpnsh+tmpval)<0)tmpval=tmpnsh; // Don't make div below 0px height
else if((tmpnsh+tmpval)<0)tmpval=-tmpnsh; // Don't make div below 0px height
else if((tmpnsh+tmpval)<0)tmpval=^ - Der er et minus foran...
Avatar billede mclemens Nybegynder
05. september 2006 - 12:02 #69
(slet bare kommentaren

/* MCPosition:absolute layer */
/* Script by Marc Clemmensen */
/* http://exp.dk/spm/715114  */
/* - - - Version: 0.97 - - - */
/* Free use - keep this note */
/* If changed add extra note */

... det var mere for at holde styr
på om jeg lavede en fejl - så jeg
kun skulle rette det et sted :P )
Avatar billede pnr Nybegynder
05. september 2006 - 12:41 #70
Ok, endnu engang mange tak for hjælpen :-)
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