24. maj 2005 - 21:11Der er
11 kommentarer og 1 løsning
Fade virker i IE men ikke i Firefox
Nu har jeg brug for hjælp, hvis min side skal være X-browser kompatibel - og det skal den jo! :-)
Jeg har et script, der fader en knap op, når jeg bevæger mig over den og ned igen, når jeg flytter musen igen. Det fungerer perfekt i IE, men i Firefox hænger det lidt.
Jeg kalder scriptet med værdien på, hvad den skal fade fra og til, men i Firefox fader den helt ned til 0 hver gang - og andre gange fader den slet ikke ned igen.
Scriptet (som jeg har lånt af roenving og modificeret lidt, så det fader hurtigere op og ned):
var OpC = new Array(); var ie = (document.all)?true:false; var moz = (navigator.userAgent.indexOf("Gecko")>-1);
function startOpChange(elm,end,tim){ if (!ie && !moz)return; var idx = OpC.length; for(var i=0;idx>i;i++){ if(OpC[i][0]==elm){ clearInterval(OpC[i][4]); idx = i; break; } OpC[idx] = new Array(); } if(idx==0)OpC[idx] = new Array();
if(ie)actOp=elm.filters.alpha.opacity; else actOp=(elm.style.MozOpacity*100); if (actOp!=end){ OpC[idx][0]=elm; OpC[idx][1]=actOp; OpC[idx][2]=end; OpC[idx][3]=(end>actOp)?4:-2; var delayTime = (Math.floor((tim*1000)/Math.abs((actOp-end)))); OpC[idx][4]=setInterval("opChange("+idx+")",delayTime); } }
function opChange(idx){ OpC[idx][1]+=OpC[idx][3]; if (ie)OpC[idx][0].filters.alpha.opacity=OpC[idx][1]; else OpC[idx][0].style.MozOpacity=Math.min(0.99,OpC[idx][1]/100); if (OpC[idx][1]==OpC[idx][2]){ clearInterval(OpC[idx][4]); return; } }
Og kaldet af det (der bliver hængende på 100 i FF):
Det ser godt nok mystikst ud, men jeg tror ikke det direkte har noget med scriptet at gøre, for det ser ud til, at der sker en ekstrem forsinkelse på udførelse af nogle events ...
-- prøv f.eks. at indsætte en span eller div et sted og skriv noget, som identificerer hvilken event, der kalder, i startOpChange !-)
Hmm, jeg havde sat min lid til, at du lige løste det uden videre, men på den anden side forklarer det så, hvorfor jeg ikke selv kunne gennemskue det! :-)
Jeg prøver, når jeg kommer hjem i aften, men det undrer mig meget, at det kun sker i FF så, da det jo efter sigende skulle være en hurtigere browser. Der kan vel ikke være så meget tvivl om, hvilken event, der kalder?
Øh tak, men hvis jeg sætter en <div> om f.eks. den ene knap og bevæger mig over den, får jeg en javafejl om, at Medlemmet ikke findes. .id printer ingenting og .src printer navnet på grafikken.
Jeg tænkte på i går, om du har en mail-adresse og tid/lyst til at prøve at teste det hos dig? Problemet får jeg både på min lokale IIS og på min udbyders, så jeg tror, at det har noget at gøre med scriptet...
Evt. at jeg har ændret på den hastighed, som den fader op og ned med? Sad og testede lidt på det i går, og hvad jeg lader indstillingerne være som i dit originale script, så ser det ud til at køre fint?!?
-- i hvert fald har jeg selv pillet utroligt meget i scriptet og har ikke fundet en ordentlig løsning på at kunne ændre hastigheden, og det tilskriver jeg javascript-arkitekturen, som jo så åbenbart er uhensigtsmæssig ,-(
-- men min mail-adresse skulle ikke være så svær at finde, endskønt den er en anelse scramblet i min brugerprofil !-)
Så har jeg fået rettet scriptet til af en bekendt med forstand på javascript, så jeg lukker spørgsmålet. Nu fungerer det nøjagtig som det skal i begge browsere! ;-)
Synes godt om
Ny brugerNybegynder
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.