Problem mit Script
thomas
- javascript
0 Marcel
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
Hi und Hallo,
- 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.
- 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