Avatar billede jenslyn_s Nybegynder
19. marts 2005 - 01:10 Der er 26 kommentarer og
2 løsninger

Angive bredde og højde på 2 celler

(Er ikke en haj til javascript)
Da jeg har nogle patterns som skal passe sammen, skal jeg justere mit site, så venstremargen(id="widthCalculated") og topmargen(id="heightCalculated") er deleligt med 22. Jeg vil have mit site placeret i midten. Jeg kan nemt trace bredden og højden, men skal have hjælp til at beregne det, så jeg får et helt tal deleligt med 22.

Hvordan 'skriver' jeg til min id'er, altså angiver højden? - noget alá document.write....??
Avatar billede roenving Novice
19. marts 2005 - 07:41 #1
document.getElementById('widthCalculated').style.width = '22px';

-- men jeg har ikke forstået, hvad det er, du vil ?-)
Avatar billede jenslyn_s Nybegynder
19. marts 2005 - 12:45 #2
har et pattern på 22x22px. Jeg vil centrere en flash-fil med samme pattern, og for at undgå at pattern'et bliver ødelagt skal top og venstre cellernes størrelse være deleligt med 22px.

Hvilken funktion skal jeg benytte til at runde af med?
i.ex.: 266/22 = 12,091
Hvordan rundes dette af til 12?
Avatar billede roenving Novice
19. marts 2005 - 12:51 #3
F.eks.

document.getElementById('widthCalculated').style.width = 22*Math.floor(266/22) + 'px';
Avatar billede jenslyn_s Nybegynder
19. marts 2005 - 13:18 #4
Giver mening, men det gør intet. smider dette i min body ---->

<script>
document.getElementById('widthCalculated').style.height = 22*Math.floor((table.offsetHeight-700)/22) + 'px'; // 700 = width på min flash
document.getElementById('heightCalculated').style.width = 22*Math.floor((table.offsetwidth-700)/22) + 'px'; // 700 = width på min flash
</script>
Avatar billede roenving Novice
19. marts 2005 - 13:23 #5
Så får du vel script-fejl ?-)

Fordi elementerne ikke er dannet endnu !-)

-- skal du positionere et element, så det passer, for så skal det nok være onload, du laver positioneringen ...
Avatar billede jenslyn_s Nybegynder
19. marts 2005 - 13:35 #6
"Et objekt var ventet" :/
Avatar billede jenslyn_s Nybegynder
19. marts 2005 - 13:43 #7
Det er min kode som fejler - så skal bare lige finde fejlen.
Avatar billede jenslyn_s Nybegynder
19. marts 2005 - 13:53 #8
Tak, nu kan jeg sætte størrelsen. Kan nok selv fikse selve beregningen. smid et svar roenving.
Avatar billede jenslyn_s Nybegynder
19. marts 2005 - 14:04 #9
forresten. Hvis jeg nu smide det i en funktion, kan jeg så ikke gøre sådan at den funktion bliver udført hvis brugeren resizer sit browser vindue?
Avatar billede jenslyn_s Nybegynder
19. marts 2005 - 14:39 #10
Kan jeg optimere min kode, så den virker i Firefox? - I Safari beregner den og sætter W og H, men de er sgu' lidt forkerte :/
Avatar billede olebole Juniormester
19. marts 2005 - 16:06 #11
<ole>

Hvordan ser resten af siden ud? Kan du evt. lægge et link til den, for noget tyder på, du laver nogle andre fejl?

/mvh
</bole>
Avatar billede jenslyn_s Nybegynder
19. marts 2005 - 16:31 #12
Mit eneste problem er nu at det ikke virker i Firefox. Samt jeg gerne vil have at den køre min funktion position(); hver gang brugeren ændrer størrelse.

Mit script er placeret efter mit </table>-tag.
Avatar billede olebole Juniormester
19. marts 2005 - 16:49 #13
Der er intet, der tyder på, det er dit eneste problem ... tværtimod. Den kode, der er vist her, fungerer blændende godt i Moz - så du har tydeligvis lavet andre fejl  :)
... link?
Avatar billede roenving Novice
19. marts 2005 - 18:24 #14
Hvad er table ?-)

Hvis det er id på din tabel, forudsætter det, at browseren kender document.all, som er en M$-ting ...
Avatar billede jenslyn_s Nybegynder
19. marts 2005 - 19:20 #15
Ja, table er id'et på min table. Ok, hvor skal jeg placere den istedet?

---MIN KODE------------------------------------------>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd"
<html>
<head>
<title>Thirstdays</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<style type="text/css">
<!--
body {
    background-image:  url(pattern7.gif);
    margin-left: 0px;
    margin-top: 0px;
    margin-right: 0px;
    margin-bottom: 0px;
}
-->
</style>

</head>
<body id="table">

<table  width="100%"  border="0" cellpadding="0" cellspacing="0">

  <tr>
    <td bgcolor="#00FF00" id="heightCalculated"></td>
    <td></td>
  </tr>
  <tr>
    <td></td>
    <td align="left" valign="top" ><object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,29,0" width="700" height="550">
      <param name="movie" value="flash.swf">
      <param name="quality" value="high">
      <embed src="flash.swf" quality="high" pluginspage="http://www.macromedia.com/go/getflashplayer" type="application/x-shockwave-flash" width="700" height="550"></embed>
    </object></td>
  </tr>
</table>
<SCRIPT language="JavaScript">
//alert(table.offsetWidth);
alert("H "+table.offsetHeight+" - W "+table.offsetWidth);
var hCalc = 22*Math.floor((table.offsetHeight-449)/44);
var wCalc = 22*Math.floor((table.offsetWidth-700)/44);
//alert("h "+hCalc+" w "+wCalc);
document.getElementById('heightCalculated').style.height = hCalc + 'px';
document.getElementById('heightCalculated').style.width =  wCalc + 'px';
</SCRIPT>
</body>
</html>
Avatar billede olebole Juniormester
19. marts 2005 - 19:24 #16
<script type="text/JavaScript">
var table = document.getElementById("table");
... osv, osv ...

- så er den defineret - og du har en ordentlig reference til tabellen. Dog bør du vælge en anden ID og et andet navn til variablen. Det kan ofte være at sætte vand over til øretæver at benytte ord, der i forvejen har en veldefineret betydning  :)
Avatar billede jenslyn_s Nybegynder
19. marts 2005 - 19:30 #17
Jeg har ændret navnet så jeg ikke løber ind i nogle reserverede ord, men stadig uden virkning...
Avatar billede roenving Novice
19. marts 2005 - 19:32 #18
-- har du også tilføjet den linje, ole skrev ?-)
Avatar billede olebole Juniormester
19. marts 2005 - 19:35 #19
Det har han sikkert, men mon ikke, det er bedre at spørge på documentElement, end på body'en? Prøv dette  :)

<script type="text/JavaScript">
var docHeight = document.documentElement.offsetHeight;
var hCalc = 22*Math.floor((docHeight-449)/44);
var wCalc = 22*Math.floor((docHeight-700)/44);
document.getElementById('heightCalculated').style.height = hCalc + 'px';
document.getElementById('heightCalculated').style.width =  wCalc + 'px';
</script>
Avatar billede jenslyn_s Nybegynder
19. marts 2005 - 19:35 #20
Jep og nu virker det! Ok, at i deler point? - Vil med glæder oprette et nyt 100poin spørgsmål, hvis i kan hjælpe mig med at udføre en funktion hver gang brugeren ændrer størrelsen på sit vindue.
Avatar billede jenslyn_s Nybegynder
19. marts 2005 - 19:36 #21
Jo, har også lagt ID'et på body istedet.
Avatar billede olebole Juniormester
19. marts 2005 - 19:38 #22
<script type="text/JavaScript">
function myPlace() {
  var docHeight = document.getElementById("table").offsetHeight;
  var hCalc = 22*Math.floor((docHeight-449)/44);
  var wCalc = 22*Math.floor((docHeight-700)/44);
  document.getElementById('heightCalculated').style.height = hCalc + 'px';
  document.getElementById('heightCalculated').style.width =  wCalc + 'px';
}
window.onload = window.onresize = myPlace;
</script>
Avatar billede jenslyn_s Nybegynder
19. marts 2005 - 19:46 #23
Super, smid nogle begge 2.
Avatar billede jenslyn_s Nybegynder
19. marts 2005 - 19:50 #24
var nogle = svar;
alert("Gik lidt hurtigt...");
Avatar billede roenving Novice
19. marts 2005 - 19:55 #25
*lol*

-- velbekomme '-)
Avatar billede olebole Juniormester
19. marts 2005 - 20:33 #26
;o)
Avatar billede roenving Novice
19. marts 2005 - 20:42 #27
-- og tak for point ;~}
Avatar billede olebole Juniormester
19. marts 2005 - 20:47 #28
- og tak herfra også  :)
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