Avatar billede winkill Nybegynder
08. marts 2001 - 15:59 Der er 27 kommentarer og
1 løsning

Netscapes property - tilsvarende ie\'s style.position = \'absolute\'

Ok, i IE kan man lave en myDiv.style.position = \'absolute\'; og derved få ting til at floate. Hvordan gøres dette i Netscape ?

Jeg kan få det til at virke med <div style=\"position:absolute;\"> men jeg er nød til at kunne gøre det \"runtime\" gennem javascript...
Avatar billede nute Nybegynder
08. marts 2001 - 16:10 #1
bruk:

<div id=\"[navn]\" style=\"position:absolute;top:20px;left:20px;\">

dermed aksesserer du dette med:

IE:
document.all.[navn].[parameter]

NS4:
document.[navn].[parameter]

NS6:
document.getElementById(\"[navn]\").style.[parameter]

/nute
Avatar billede winkill Nybegynder
08. marts 2001 - 16:13 #2
nute > Det jeg skal bruge er en måde at undgå <div style=\"........\"> og jeg kan ikke få document.myDivThingy.position = \'absolute\'; til at virke.
Avatar billede nute Nybegynder
08. marts 2001 - 16:39 #3
prøv dette...

<html>

<script>

function moveLayer(){
  if( document.layers ){ //NS4
        document.test.left = \'200\';
    }
    if( document.all ){
      document.all.test.style.left = \'200px\';
    }
    return false;
}
</script>
<body>
<a href=\"\" onClick=\"java script: return moveLayer();\">Move layer</a>
<div id=\"test\" style=\"position:absolute;left:20px;top:200px;borderColor:black;\">HEI</div>
</body>
</html>

/nute
Avatar billede winkill Nybegynder
08. marts 2001 - 16:42 #4
nute > Jeg kan stadigt ikke bruge noget der indeholder style=\"....\" da det netop er det jeg prøver at undgå.
Avatar billede nute Nybegynder
08. marts 2001 - 16:49 #5
hvorfor kan du ikke bruke det ??? hva er det som gjør at du ikke kan bruke det ???
Avatar billede winkill Nybegynder
08. marts 2001 - 16:57 #6
Denne lille bid tekst er grunden til at jeg ikke kan bruge det.

style=\"position:absolute;left:20px;top:200px;borderColor:black;\"

Jeg har en function (MakeFloating(item, halign, valign)) der tager en vilkårlig <DIV> og aligner den på siden (left, right, center, middle, bottom, top) alt efter de parametre jeg angiver. Det eneste jeg så skal skrive for at aligne en DIV er så eks. MakeFloating(myDiv, \'right\', \'bottom\'); og så klarer scriptet selv resten.

Dette virker også fint i IE, men i NS er jeg nød til at angive style=\"position:absolute;\" for at det kan lade sig gøre og det er jeg ikke interesseret i da det ødelægger hele princippet bag funktionen.

Det må da kunne lade sig gøre uden at angive style direkte i DIV-tagget ???
Avatar billede engrob Nybegynder
08. marts 2001 - 17:04 #7
Hvad med

document.layers[\"lag2\"].position = \'absolute\'
Avatar billede winkill Nybegynder
08. marts 2001 - 17:07 #8
Nej, det giver heller ikke noget resultat... bliver DIV tagget regnet for et layer ??
Avatar billede nute Nybegynder
08. marts 2001 - 17:41 #9
dette er antakelig så generisk du kan komme....

<html>
<head>
<title>Test move</title>
<script language=\"JavaScript\">
<!--

ns4 = (document.layers)? true:false
ie4 = (document.all)? true:false

var blockArr = [ \"block1\",\"block2\",\"block3\"];

function init() {
  for( i = 0; i < blockArr.length ; i++ ){
        if (ns4) {
          block = eval(\"document.\" + blockArr[i] );
            block.backgroundColor = \'black\';
        }
        if (ie4) {
          block = eval(\"document.all.\" + blockArr[i] + \".style\");
            //block.backgroundColor = \'black\';
            //block.borderStyle = \'solid\';
        }
      block.xpos = parseInt(block.left);
      block.ypos = parseInt(block.top);
    }
}

function move(item, x, y ) {
  if( ns4 ){
      block = eval( \"document.\" + item);
    }
    if( ie4 ){
      block = eval( item + \".style\" );
    }
    block.xpos = x
    block.ypos = y
    block.left = block.xpos
    block.top = block.ypos
}


//-->
</SCRIPT>
</HEAD>

<BODY BGCOLOR=\"#FFFFFF\" onLoad=\"init();\">


<A HREF=\"java script:move(\'block1\', 100, 80)\">Move the block1 to: (100,80)</A> <br>
<A HREF=\"java script:move(\'block1\', 200, 160)\">Move the block1 to (200,160)</A> <br>
<A HREF=\"java script:move(\'block2\', 300, 240)\">Move the block2 to (300,240)</A><br>
<A HREF=\"java script:move(\'block3\', 300, 250)\">Move the block3 to (300,250)</A>

<DIV ID=\"block1\" STYLE=\"position:absolute; left:50px; top:100px; width:30px; height:30px; clip:rect(0px 30px 30px 0px); background-color:red; layer-background-color:red;\"></div>
<DIV ID=\"block2\" STYLE=\"position:absolute; left:100px; top:100px; width:30px; height:30px; clip:rect(0px 30px 30px 0px); background-color:black; layer-background-color:black;\"></div>
<DIV ID=\"block3\" STYLE=\"position:absolute; left:150px; top:100px; width:30px; height:30px; clip:rect(0px 30px 30px 0px); background-color:green; layer-background-color:green;\"></div>
</DIV>

</BODY>
</HTML>

/nute
Avatar billede winkill Nybegynder
08. marts 2001 - 17:52 #10
nute > Prøv at læse spørgsmålet forfra.

Dette virker i IE - hvordan får jeg det til at virke i NS uden at bruge STYLE i DIV tagget ???

<div id=test>Test</div>
<script language=JavaScript>
  test.style.position = \'absolute\';
  test.style.left = \'100px\';
  test.style.top = \'150px\';
</script>
Avatar billede winkill Nybegynder
08. marts 2001 - 17:53 #11
Jumper > Hvis du er der ude... please help !!
Avatar billede engrob Nybegynder
08. marts 2001 - 17:54 #12
Får du en fejl eller virker det bare ikke?
Avatar billede nute Nybegynder
08. marts 2001 - 17:55 #13
det bør du vel snart kunne forstå at dette er *eneste* måte å flytte layers i NS !! NS *krever* et style-tag på !! men jeg undrer meg over at du ikke aksepterer mitt svar, for det fungerer, og hvis du leser koden så vil du forstå at det fungerer å flytte et \"vilkårlig\" layer...

/nute
Avatar billede nute Nybegynder
08. marts 2001 - 17:56 #14
*hvorfor* kan du ikke bruke STYLE i ditt DIV tag....det er jeg utrolig spent på å høre om hvorfor du ikke kan...
Avatar billede winkill Nybegynder
08. marts 2001 - 17:57 #15
Det virker bare ikke. Gør jeg derimod følgende virker det, men så hardvoder jeg style og det er det jeg vil væk fra.

<div id=test style=\"position:absolute;\">Test</div>
<script language=JavaScript>
  if (document.layers) {
    test.left = 100;
    test.top = 150;
  } else {
    test.style.left = \'100px\';
    test.style.top = \'150px\';
  }
</script>
Avatar billede nute Nybegynder
08. marts 2001 - 17:59 #16
har du testeet min siste kode i NS? i hvilken versjon ?

/nute
Avatar billede winkill Nybegynder
08. marts 2001 - 18:02 #17
nute > Fordi jeg er ved at lave en side med en masse vinduer (DIV) der skal kunne docke bestemte steder på skærmen ELLER trækkes rundt med musen alt efter hvad brugeren har lyst til.

Hvis jeg hardcoder STYLE=\"position:absolute;\" så skal jeg gøre det ved alle DIV tags og så kan jeg ikke slippe af med dem igen hvis brugeren ønsker at docke vinduet et sted på siden.
Samtidigt med skal jeg kunne ændrer på om position er absolute eller relative for at kunne lægge det relativt i forhold til andre vinduer.

*derfor* kan jeg ikke bruge <div style=... til noget som helst.
Avatar billede winkill Nybegynder
08. marts 2001 - 18:03 #18
nute > Jeg er ikke i tvivl om at din kode virker - det er bare ikke det spørgsmålet går på.
Avatar billede nute Nybegynder
08. marts 2001 - 18:14 #19
du vil at skal plasserer på et bestemt sted, og deretter skal de kunne plassere (drag/drop) hvor de vil på din side ??

forstår jeg deg rett ??
Avatar billede winkill Nybegynder
08. marts 2001 - 18:19 #20
Jeg har allerede lavet drag\'n drop effekten, jeg har lavet placering left/right alligning mv. Det eneste jeg mangler er at kunne påføre et objekt disse egenskaber efter at de er oprettede.

Med andre ord, jeg vil kunne flytte en DIV uden at angive STYLE= noget som helst sted inden i DIV tagget.

I IE gøres det sådan her:
<script language=JavaScript>
  navn.style.position = \'absolute\';
</script>

Hvordan gøres det i Netscape ???
<script language=JavaScript>
  Hvad skal der stå her ???
</script>
Avatar billede nute Nybegynder
08. marts 2001 - 18:21 #21
du skal ikke bruke \'style\' (som du selv sier)

så hvorfor gjør du ikke dette:

navn.position = \'absolute\';

/nute
Avatar billede olebole Juniormester
08. marts 2001 - 18:23 #22
<ole>
nute >> Du misforstår spørgsmålet! Han vil kunne tilgå positioneringen af et lag gennem JavaScript. Altså i princippet kunne vælge mellem \'relative\' og \'absolute\' - VIA JavaScript.

winkill >> Du har problemet, at NS vil have laget (<div>, <span>, eller <layer>) anbragt \'position:absolute\', før du kan tilgå det via \'id\' med JavaScript. Det, der går galt, er altså, at du ikke kan kalde det FØR, det er positioneret \'absolute\'. Desværre er der - så vidt jeg ved - ikke noget at gøre ved det :(
/mvh
</bole>
Avatar billede winkill Nybegynder
08. marts 2001 - 18:24 #23
nute > Det virker ikke.
Avatar billede winkill Nybegynder
08. marts 2001 - 18:28 #24
olebole > Tak, så slipper jeg for at bruge mere tid på at forklarer mig. Jeg tror (for at få lukket dette ?) at jeg vil prøve mig frem med at indsætte <div> tagget via document.write eller document.body.insertAdjundentHTML som Jumber her inde fra har lavet en netscape version af.

Anyways, tak ole, jeg tror ikke det er muligt at udpensle dette ? mere... ;o)
Avatar billede olebole Juniormester
08. marts 2001 - 18:32 #25
Du kan godt anbringe et lag i forhold til et andet alligevel. Du kan også, hvis du laver din kode objektorienteret tildele hvert lag drag-egenskaber, du kan \'tænde og slukke for\'. Du kan læse om det på:
    http://www.dansteinman.com/dynduo/
Det står ikke explicit forklaret, men du må kunne finde ud af, hvordan - ellers skal jeg nok hjælpe dig - men prøv nu først selv :)

nute >> Læs min kommentar 18:23:58, så vil du se, du ikke kan gøre, hvad du skriver i 18:21:55 :)
/mvh
Avatar billede nute Nybegynder
08. marts 2001 - 18:34 #26
olebole >> det var forsåvidt det jeg \"prøvde\" å si 17:55:43  , men jeg var bare ikke så veltalende og forståelig ;)
Avatar billede olebole Juniormester
08. marts 2001 - 18:40 #28
nute >> OK :)
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