/ Forside / Teknologi / Udvikling / Java Scripts / Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
Java Scripts
#NavnPoint
molokyle 5410
Klaudi 2799
smorch 2439
kim 1360
Harlekin 1134
bentjuul 984
gibson 800
severino 695
Random 675
10  konsulent.. 626
Sætte bredde på div - virker ikke
Fra : Mikkel Z. Herold


Dato : 22-03-07 13:11

Hej.

Jeg roder lidt med en funktion, der skal sætte bredden på et layout
(http://www.d-vision.dk/ny/) ud fra højden, så de altid har forholdet
4:3, men jeg kan ikke få det til at virke i FF.

Jeg bruger denne kode:

function changeSize(el,styleProp) {
var x = document.getElementById(el);
if (x.currentStyle) {
var y = x.offsetHeight;
} else if (window.getComputedStyle) {
var y =
document.defaultView.getComputedStyle(x,null).getPropertyValue(styleProp);
}
x.style.width = (y/3)*4 + 'px';
}

men FF's fejlkonsol siger "Advarsel: Fejl i tolkning af værdi for
'width'. Erklæring droppet. Kildefil:
http://www.d-vision.dk/ny/home.html# Linje: 0"

IE (og Opera) resizer fint - hvad skal der til for at få FF med?

Mikkel

--
"At first just a rustle of canvas
And the gentlest breath on my face
But a galloping line of white horses
Said that soon we were in for a race"
Sting - The Wild Wild Sea

www.mzh.dk

 
 
Mikkel Z. Herold (22-03-2007)
Kommentar
Fra : Mikkel Z. Herold


Dato : 22-03-07 20:21

On 22-03-2007 13:10 Mikkel Z. Herold wrote:
> IE (og Opera) resizer fint - hvad skal der til for at få FF med?

Fandt selv løsningen: FF's getPropertyValue(styleProp) returnerer højden
plus enheden, dvs. f.eks. "808px", mens offsetHeight returnerer højden
uden enhed.

Derfor gik der ged i linjen x.style.width = (y/3)*4 + 'px', da y jo ikke
er et tal, men et tal og en enhed.

Med en replace koblet på, virker det:

function changeSize(el,styleProp) {
var x = document.getElementById(el);
if (x.currentStyle) {
var y = x.offsetHeight;
} else if (window.getComputedStyle) {
var y =
document.defaultView.getComputedStyle(x,null).getPropertyValue(styleProp).replace(/px/,
"");
}
x.style.width = (y/3)*4 + "px";
}

Mikkel

--
"At first just a rustle of canvas
And the gentlest breath on my face
But a galloping line of white horses
Said that soon we were in for a race"
Sting - The Wild Wild Sea

www.mzh.dk

Søg
Reklame
Statistik
Spørgsmål : 177459
Tips : 31962
Nyheder : 719565
Indlæg : 6408173
Brugere : 218881

Månedens bedste
Årets bedste
Sidste års bedste