Avatar billede sigsten Nybegynder
27. november 2001 - 17:53 Der er 25 kommentarer og
1 løsning

Layers igen igen igen....

Hej...

Jeg er ved at lave et website, hvor jeg bruger et enkelt layer der skal ligge oven på en tabel (men skal ikke konverteres dertil)

Så opstår det evige problem: mit layer flytter sig i forskellige opløsninger!!!

Hvad kan jeg gøre???

På forhånd tak!!!
Avatar billede pelkjaer Nybegynder
27. november 2001 - 18:53 #1
Sæt markøren inde i den celle layeret skal følge. Så siger du \"insert\"-->\"layer\" - så er felterne top og left i prospertiesboksen tomme. Det skal de også være for at det virker.

Alternativt kan du blot trække din placeholder (gult ikon) ind i tabelcellen, og derefter slette top og left informationerne. Dette giver samme resultat.

/pelkjaer
Avatar billede pelkjaer Nybegynder
27. november 2001 - 18:59 #2
En anden (og efter min mening bedre) metode er at bruge javascript. Vi DW brugere er så heldige at der er nogle geniale gutter der sidder og laver extentions til os :)

http://www.projectseven.com/extensions/index.htm skal du downloade \"snap layers\" - med den extention kan du sætte dine layers til at følge et tabelcelle, en anchor eller et billede.
Se evt. tutorial på samme side.
Avatar billede sigsten Nybegynder
27. november 2001 - 19:10 #3
Pelkjaer>> Mit layer skal ligge på tværs af tabellen!!

Jeg har forsøgt at få de der snap layer til at virke (du har fortalt mig om dem før :-) men funktionen er ikke aktiv når jeg markere mit layer!!

Avatar billede pelkjaer Nybegynder
27. november 2001 - 22:45 #4
Hvad mener du med \"på tværs af tabellen\"?

Ang. snap layers. Det skal tilføjes body...
Du klikker på <body> nede i venstre hjørne, og så tilføjer du behavioren som ligger under \"studio VII\"-->\"snap layers\". Der vælger du hvilke lag som skal \"snappes\", og hvad dit anchorpunkt skal være. Hvis fx. er et billede (kan blot være en spacergif) så husk at navngive billedet inden.
Derefter angiver du top og left - fra anchorpunktet vel og mærke.

Når dette er gjort sletter du top og left i layersprospertiesboxen - skal ikke bruges mere.

Til aller sidst sætter du en location.reload() på dit bodytag, så de også virker ved rezise.

Se evt. dette eks:

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

function MM_findObj(n, d) { //v4.01
  var p,i,x;  if(!d) d=document; if((p=n.indexOf(\"?\"))>0&&parent.frames.length) {
    d=parent.frames[n.substring(p+1)].document; n=n.substring(0,p);}
  if(!(x=d[n])&&d.all) x=d.all[n]; for (i=0;!x&&i<d.forms.length;i++) x=d.forms[i][n];
  for(i=0;!x&&d.layers&&i<d.layers.length;i++) x=MM_findObj(n,d.layers[i].document);
  if(!x && d.getElementById) x=d.getElementById(n); return x;
}

function P7_Snap() { //v2.61 by PVII
  var x,y,ox,bx,oy,p,tx,a,b,k,d,da,e,el,args=P7_Snap.arguments;a=parseInt(a);
  for (k=0; k<(args.length-3); k+=4)
  if ((g=MM_findObj(args[k]))!=null) {
    el=eval(MM_findObj(args[k+1]));
    a=parseInt(args[k+2]);b=parseInt(args[k+3]);
    x=0;y=0;ox=0;oy=0;p=\"\";tx=1;da=\"document.all[\'\"+args[k]+\"\']\";
    if(document.getElementById) {
    d=\"document.getElementsByName(\'\"+args[k]+\"\')[0]\";
    if(!eval(d)) {d=\"document.getElementById(\'\"+args[k]+\"\')\";if(!eval(d)) {d=da;}}
    }else if(document.all) {d=da;}
    if (document.all || document.getElementById) {
    while (tx==1) {p+=\".offsetParent\";
      if(eval(d+p)) {x+=parseInt(eval(d+p+\".offsetLeft\"));y+=parseInt(eval(d+p+\".offsetTop\"));
      }else{tx=0;}}
    ox=parseInt(g.offsetLeft);oy=parseInt(g.offsetTop);var tw=x+ox+y+oy;
    if(tw==0 || (navigator.appVersion.indexOf(\"MSIE 4\")>-1 && navigator.appVersion.indexOf(\"Mac\")>-1)) {
      ox=0;oy=0;if(g.style.left){x=parseInt(g.style.left);y=parseInt(g.style.top);
      }else{var w1=parseInt(el.style.width);bx=(a<0)?-5-w1:-10;
      a=(Math.abs(a)<1000)?0:a;b=(Math.abs(b)<1000)?0:b;
      x=document.body.scrollLeft + event.clientX + bx;
      y=document.body.scrollTop + event.clientY;}}
  }else if (document.layers) {x=g.x;y=g.y;var q0=document.layers,dd=\"\";
    for(var s=0;s<q0.length;s++) {dd=\'document.\'+q0[s].name;
    if(eval(dd+\'.document.\'+args[k])) {x+=eval(dd+\'.left\');y+=eval(dd+\'.top\');break;}}}
  if(el) {e=(document.layers)?el:el.style;
  var xx=parseInt(x+ox+a),yy=parseInt(y+oy+b);
  if(navigator.appName==\"Netscape\" && parseInt(navigator.appVersion)>4){xx+=\"px\";yy+=\"px\";}
  if(navigator.appVersion.indexOf(\"MSIE 5\")>-1 && navigator.appVersion.indexOf(\"Mac\")>-1){
    xx+=parseInt(document.body.leftMargin);yy+=parseInt(document.body.topMargin);
    xx+=\"px\";yy+=\"px\";}e.left=xx;e.top=yy;}}
}

function MM_callJS(jsStr) { //v2.0
  return eval(jsStr)
}
//-->
</script>
</head>

<body bgcolor=\"#FFFFFF\" text=\"#000000\" onLoad=\"P7_Snap(\'snappic\',\'Layer1\',30,20)\" onResize=\"MM_callJS(\'location.reload()\')\">
<div id=\"Layer1\" style=\"position:absolute; width:100px; height:100px; z-index:1; background-color: #FF00FF; layer-background-color: #FF00FF; border: 1px none #000000\"></div>
<table width=\"200\" border=\"0\" cellspacing=\"0\" cellpadding=\"0\" height=\"100%\" align=\"center\">
  <tr>
    <td>
      <table width=\"200\" border=\"0\" cellspacing=\"0\" cellpadding=\"0\" bgcolor=\"#CCCCCC\">
        <tr>
          <td>
            <div align=\"center\"><b><font face=\"Verdana, Arial, Helvetica, sans-serif\" size=\"2\"><img src=\"file:///C|/WINDOWS/Desktop/demens_new/transparent.gif\" width=\"1\" height=\"1\" name=\"snappic\">tabel
              som lillat lag f&oslash;lger</font></b></div>
          </td>
        </tr>
      </table>
    </td>
  </tr>
</table>
</body>
</html>

/pelkjaer

Avatar billede sigsten Nybegynder
28. november 2001 - 10:21 #5
TAK !!!!
En lille forklaring var alt hvad jeg havde brug for!!
Jeg var ikke lige klar over, at det var på <body> at snap layer skulle tilføjes!!! MEN det virker nu!!

Endnu engang er du min redningsmand hvad ang. layers!! ...måske skulle du lave en 24-timers Layer-hotline :-)

Mange mange tak!

/sigsten
Avatar billede pelkjaer Nybegynder
28. november 2001 - 12:25 #6
Har du øget pointene?

Kan ikke huske at jeg har hjulpet dig før, men er glad for at virker nu ;D

Ang. 24 T hotline - hvornår skal jeg så sove *LOL*

/pelkjaer
Avatar billede sigsten Nybegynder
28. november 2001 - 12:35 #7
Ja, som tak for hjælpen fik du lige lidt flere point :-)

Det er nogle måneder siden du hjalp mig sidst...også med Snap Layers!! www.lindepartners.com/signe

...det er mig der bor i Luxembourg!!

Hmmm...jeg er da sikker på det var dig der hjalp mig..?
Avatar billede pelkjaer Nybegynder
28. november 2001 - 12:37 #8
Nå..ja nu kan jeg godt huske dig :)

Avatar billede pelkjaer Nybegynder
28. november 2001 - 13:10 #9
Hva\' så - har du fået fast jo som webdesigner i Luxenbourg? Er lønnen god?
Avatar billede sigsten Nybegynder
28. november 2001 - 19:16 #10
Jeg har ikke fået fast job (endnu) men arbejder en hel del freelance!!
Lønnen for et fast job er vist nogenlunde den samme som i Danmark, men skatten er en del lavere her, så man får alligevel mere ud af det i sidste ende!!!

De freelance jobs jeg har (og har haft) giver rigtig godt!!!

Derudover er Luxembourg også et rigtig dejligt sted at være :-)
Avatar billede pelkjaer Nybegynder
28. november 2001 - 19:45 #11
Lyder helt sikkert spændende ;D
Avatar billede sigsten Nybegynder
29. november 2001 - 10:30 #12
Pelkaejr??? Må jeg spørge dig om noget mere...du fik jo lidt ekstra points ;)
Avatar billede pelkjaer Nybegynder
29. november 2001 - 11:35 #13
Spørg løs :)
Avatar billede sigsten Nybegynder
29. november 2001 - 11:49 #14
Tak :-)

Jeg har fået indsat mit logo på et layer. Det virker sådanset godt nok med det der resize og snap layer, MEN... http://focus.lu/signe/

Logoet er det der bliver loaded sidst, og det ser ret dumt ud!! ...kan man gøre noget ved det???


Avatar billede pelkjaer Nybegynder
29. november 2001 - 12:19 #15
Sidder selv med samme problem på en side jeg arbejder på, se: www.demenskonsulen.dk/x

Jeg indsætter senere en preloadfunktion, hvilket jeg tror afhjælper problemet.

Jeg vil vende tilbage her når jeg selv har løst det - måske allerede senere idag.

/pelkjaer
Avatar billede pelkjaer Nybegynder
29. november 2001 - 12:19 #16
Avatar billede sigsten Nybegynder
29. november 2001 - 12:23 #17
Ja...det ser ud til at være præcis det samme problem!!

Det ville være fedt hvis du får det løst...det ser jo ikke så smart ud!!

Jeg følger med her på siden, og håber du finder ud af det :-D
Avatar billede pelkjaer Nybegynder
29. november 2001 - 12:59 #18
Prøv at preloade alle dine billeder - logoet først.

<script language=\'javascript\'>

var preImgs = new Array( \"billed1.jpg\", \"bgside2.gif\", \"hesten.jpg\" );
                            // dine billedadresser som du ville skrive dem
                            // i en <img kommando.
for (var i=0; preImgs.length>i; i++ ) {
    var tmp = preImgs[i];
    preImgs[i] = new Image();
    preImgs[i].src = tmp;
}

</script>

Dit problem er nok større end mit, da min side er ren Dhtml hvor alt afvikles på samme side. Derfor laver jeg blot en startside der preloader hele min \"hovedside\".

/pelkjaer
Avatar billede sigsten Nybegynder
29. november 2001 - 13:23 #19
hmmm...ok, det må jeg lige se om jeg kan finde ud af!!!

tak for hjælpen...jeg vender lige tilbage hvis der er problemer :-)
Avatar billede pelkjaer Nybegynder
29. november 2001 - 14:23 #20
Hør her - det er jo egentligt nemt at fixe uden en preload hvis man tænker sig lidt om :-)

Gem dit layer i DW (lukket øje), og kald det så frem med en show/hide på bodytagget.
Altså klik på <body> i nederste venstre hjørne -->behaviors-->sjow/hide layers.
Så bliver den auyomatisk aat til \"onload\".

/pelkjaer
Avatar billede sigsten Nybegynder
29. november 2001 - 14:46 #21
Pelkjaer>> DU ER GENIAL !!!!!

Det virker helt super og var skide nemt!!!!

TAK :-)))))
Avatar billede sigsten Nybegynder
29. november 2001 - 14:47 #22
...det var jeg ALDRIG selv kommet på!!!
Avatar billede pelkjaer Nybegynder
29. november 2001 - 14:48 #23
Ofte er det nemmere end man tror. Jeg måtte også sætte hovedet i blød :-))
Avatar billede sigsten Nybegynder
29. november 2001 - 14:59 #24
Hehe...ja, sådan er det jo tit!!!

Hmmm...måske skulle jeg alligevel lave en preload på de andre billeder...det går jo lidt langsomt!!

Jeg må også hellere få lært noget dhtml...det lyder smart at alt afvikles på samme side. Hvondan fungere det??
Avatar billede pelkjaer Nybegynder
29. november 2001 - 15:04 #25
Dhtml er en blanding af html, css og javascript.
Man kan så lave animationer af layers osv.
Fx. som på demenskonsulent.dk/x hvor alle menupunkter ligger i et lag.

Men der er da også dhtml på din linde.../signe - scrolleren og flere andre ting er jo dhtml :-))
Avatar billede sigsten Nybegynder
29. november 2001 - 15:07 #26
Ja, det er da rigtigt!! Det må jeg heller sætte mig lidt mere ind i når jeg engang har tid!!

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
Kurser inden for grundlæggende programmering

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