ingeva Skrevet 30. juni 2007 Del Skrevet 30. juni 2007 Jeg har i lengre tid brukt denne koden for å flytte et element. id = elementets ID left = posisjon "left" i prosent av vindusbreddeen, regnet fra 0,0 ratio = forholdet mellom "top" og "left" W = global; bredden på indre vindu (Er definert). function moveimg (id, left, ratio) { if (document.getElementById(id)) { var P = left*W/100; document.getElementById(id).style.left = P; document.getElementById(id).style.top = P/ratio; } } Problemet er at FireFox (v.2) ikke forstår dette. Innsetting av alert-funksjonen for å avdekke feil har til nå ikke gitt noe tolkbrt resultat. Tilsvarende ignorerer FireFox også disse: document.getElementById(id).style.width = P; document.getElementById(id).style.height = P/ratio; Jeg har forgjeves forsøkt å finne dokumentasjon for dette, mn W3C dokumenterer ovenstående, og de virker fint fx. i IE7 og Opera. Så vidt jeg kan se er FireFox den desidert dårligste browseren når det gjelder aksepterte standarder. Hvorfor er det så mange som bruker den (Ja, Unix/linux-brukere har vel ikke så mange valg.... ) Lenke til kommentar
luxus Skrevet 30. juni 2007 Del Skrevet 30. juni 2007 Hei du. Grunnen til at du ikke får flyttet på bildet i Firefox, men at dette virker i IE7 og Opera er at IE og Opera tilgir deg en feil, der Firefox ikke gjør det. Du skriver i koden at du har: document.getElementById(id).style.left = P; og det er nesten riktig. Feilen din ligger i at du glemmer å ta med at det er pixler du oppgir. Jeg tror med andre ord det vil fungere bedre hvis du setter document.getElementById(id).style.left = P + "px"; (Det samme gjelder selvfølgelig også top tilordningin din osv.) Firefox følger btw standarer ganske så godt, og er det en som ikke gjør det av nevnte browsere så må det nok være IE-serien. Lenke til kommentar
ingeva Skrevet 1. juli 2007 Forfatter Del Skrevet 1. juli 2007 (endret) Hei du. Grunnen til at du ikke får flyttet på bildet i Firefox, men at dette virker i IE7 og Opera er at IE og Opera tilgir deg en feil, der Firefox ikke gjør det. Du skriver i koden at du har: document.getElementById(id).style.left = P; og det er nesten riktig. Feilen din ligger i at du glemmer å ta med at det er pixler du oppgir. Jeg tror med andre ord det vil fungere bedre hvis du setter document.getElementById(id).style.left = P + "px"; (Det samme gjelder selvfølgelig også top tilordningin din osv.) Firefox følger btw standarer ganske så godt, og er det en som ikke gjør det av nevnte browsere så må det nok være IE-serien. 8977565[/snapback] Du har sikkert rett, men jeg kan ikke huske å ha lest noe sted at "px" skal være med. Takk for hjelpen (Satset på at det virkelig hjelper! Hadde bare 1px = 1/1000 av vindusbredden, så hadde vi sluppet å se så mange sider med helt feil størrelse..... SISTE: Siden dette var raskt å teste, har jeg gjort det. Det virker fremdeles i IE og Opera, men FireFox ser ikke ut til å utføre det. Jeg tester om elemenentet finnes: if (document.getElementById(id)) { ... } men rekker ikke å teste om dette fungerer i dag, siden tiden er knapp. Nå får jeg ikke lest evt. svar før til helgen. Endret 1. juli 2007 av ingeva Lenke til kommentar
ingeva Skrevet 10. juli 2007 Forfatter Del Skrevet 10. juli 2007 Dette med "px" var riktig, men utrolig nok (!!??) var det en annen feil der også, som medførte at FF ikke utførte de aktuelle setningene. Lenke til kommentar
Anbefalte innlegg
Opprett en konto eller logg inn for å kommentere
Du må være et medlem for å kunne skrive en kommentar
Opprett konto
Det er enkelt å melde seg inn for å starte en ny konto!
Start en kontoLogg inn
Har du allerede en konto? Logg inn her.
Logg inn nå