Avatar billede limemedia Nybegynder
06. juni 2000 - 10:59 Der er 12 kommentarer og
2 løsninger

HASTER : beregn placering af layer


Jeg har udviklet et pulldown layer system, der virker i frames dokument. Problemet er blot, at den frame menuen åber i, ikke altid har samme størrelse.

Jeg har brug for at beregne højre kant minus 120 px. Altså, bredden af framen minus x (der er 120, 240 og 360)

Jeg har brug for eksemplet der beregner det ASAP... Skulle bruge det igår men har ikke tid til at kigge JS igennem for kommandoerne
Avatar billede olebole Juniormester
06. juni 2000 - 13:26 #1
<ole>
I dine dokumenters head kan du skrive dette script:

var myX;
var myY;
function setDimen() {
  if (document.layers) {
      myX = window.innerWidth
      myY = window.innerHeight
  } else if (document.all) {
      myX = document.body.scrollWidth
      myY = document.body.scrollHeight
  }
}

...så kan du kalde setDimen() på onload...så har du dimensionerne på denne frame. Dokumentet skal være loaded, før du spørger, da IE spørger til body'ens størrelse.
/Vh
</bole>
Avatar billede olebole Juniormester
06. juni 2000 - 13:27 #2
Måske:
    myX = frame.innerWidth
???...prøv ;-)
Avatar billede olebole Juniormester
06. juni 2000 - 13:30 #3
Hvis du lægger det i framesettet, får du hele vinduets inner-mål.
Du skal nok trække 16 pixels fra bredden i NS (til scrollbar) og 20 i IE.
Avatar billede limemedia Nybegynder
06. juni 2000 - 13:44 #4
Netscape virker, MSIE ikke ;(

Min modificerede kode :
    function setDimen() {
          if (document.layers) {
          myX = parent.centerframe.innerWidth;
          myY = parent.centerframe.innerHeight;
          } else if (document.all) {
          myX = parent.centerframe.scrollWidth;
          myY = parent.centerframe.scrollHeight;
          }
    }


Du har det halve spm hjemme !
Avatar billede limemedia Nybegynder
06. juni 2000 - 13:45 #5
parent.centerframe.body.scrollHeight; fejler med "IS NOT AN OBJECT"
Avatar billede limemedia Nybegynder
06. juni 2000 - 14:13 #6
PING ?!?
Avatar billede olebole Juniormester
06. juni 2000 - 15:02 #7
Har du mulighed for at have scriptet - som jeg oprindeligt skrev det - liggende i det dokument, du loader ind i 'centerframe'? Du kan jo evt. lægge variablerne ude i framesettet.
Avatar billede olebole Juniormester
06. juni 2000 - 15:04 #8
AHAaaaa...Prøv:
parent.centerframe.document.body.scrollHeight;
eller måske:
parent.centerframe.document.all.body.scrollHeight;
...???
Avatar billede limemedia Nybegynder
06. juni 2000 - 15:13 #9
det er der desværre ingen mulighed for... vi snakker ~20.000 dokumenter her !
Avatar billede limemedia Nybegynder
06. juni 2000 - 15:15 #10
nope, virker ikke... Jeg har også prøvet nogle mere og mindre vilde forslag... Det er første gang noget virker i Netscape men ikke i MSIE !
Avatar billede olebole Juniormester
06. juni 2000 - 15:22 #11
HA...!!! Du har sgu aldrig haft IE på Mac...STINKS!!!
Jeg prøver lige at finde ud af noget ;-)
Avatar billede limemedia Nybegynder
06. juni 2000 - 15:30 #12
jeg har aldrig rørt en MAC ;D
Avatar billede limemedia Nybegynder
06. juni 2000 - 15:31 #13
alternativ løsning er fundet... THX anyway
Avatar billede olebole Juniormester
06. juni 2000 - 15:34 #14
AHAaa...Du beder om størrelsen FØR dokumentet er loaded (altså det i 'centerframe')!
Læg kaldet på onload i frameset-tag'en, så kaldes der først når dokumenterne er loaded ind i dine frames. Det hedder iøvrigt:
    parent.centerframe.document.body.scrollWidth
Nu skulle det virke for dig ;-)
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