thomas: Problem mit Script

Hallo,

ich möchte mit dem unten stehenden script grafiken animiert einblenden.

dabei treten allerdings folgende probleme auf:

1. ich bekomme es nicht im FF zum laufen (IE und opera funktioniert )
2. im IE "blitzt" die grafik kurz auf bevor sie eingeblendet wird. also ich sehe sie ein paar milisekunden bevor der fadein effekt startet.

kann mit wer helfen?

das script:

function opacity(id, opacStart, opacEnd, millisec) {
    //speed for each frame
    var speed = Math.round(millisec / 100);
    var timer = 0;

//determine the direction for the blending, if start and end are the same nothing happens
    if(opacStart > opacEnd) {
        for(i = opacStart; i >= opacEnd; i--) {
            setTimeout("changeOpac(" + i + ",'" + id + "')",(timer * speed));
            timer++;
        }
    } else if(opacStart < opacEnd) {
        for(i = opacStart; i <= opacEnd; i++)
            {
            setTimeout("changeOpac(" + i + ",'" + id + "')",(timer * speed));
            timer++;
        }
    }
}
//change the opacity for different browsers
function changeOpac(opacity, id) {
    var object = document.getElementById(id).style;
    object.opacity = (opacity / 100);
    object.MozOpacity = (opacity / 100);
    object.KhtmlOpacity = (opacity / 100);
    object.filter = "alpha(opacity=" + opacity + ")";
}

einbindung in hp:

<body onload="javascript:opacity('grafik1', 0, 100, 500)">

vg thomas

  1. Hi und Hallo,

    1. ich bekomme es nicht im FF zum laufen (IE und opera funktioniert )

    Der onload-event selbst ist ja schon ein javascript-event, da brauchst
    dann kein javascript:...
    Besser ists sowieso den event im script zu definieren.

    1. im IE "blitzt" die grafik kurz auf bevor sie eingeblendet wird.
      also ich sehe sie ein paar milisekunden bevor der fadein effekt startet.

    Das Problem ist, dass das Bild kurzzeitig angezeigt wird, bevor der
    onload event die function startet. Deshalb wärs besser du versteckst
    das Bild erstmal, gibts ihm dann opacity 0 und schaltest dann display
    wieder auf 'block'.

    So quasi:

      
    window.onload = function ()  
    {  
     objId = 'grafik1';  
     changeOpac(0, objId);  
     document.getElementById(objId).style.display = 'block';  
     opacity(objId, 0, 100, 500);  
    }  
    
    

    ... und im body das onload komplett raus.

    Gruß
    Marcel