JAvascript Bildwechsel
Ron
- javascript
Hallo,
ich habe noch ein Problem...
ich versuche eine slideshow mit fadeefeckt umzusetzen.
ich tausche das bild per javascript aus
und rufe dann die funktion auf die das bild einfadet.
var namezusammensetzen = "images/zoom_"+pics[welchesbild];
document.getElementById('bildwechseln').src=namezusammensetzen;
window.setTimeout("fadeupwechsel();", 100);
Das Problem ist, das die Funktion manchmal schon aufgerufen wird bevor das bild auch wirklich gewechselt hat. D.h. auf dem Bildschirm sieht man während dem einfaden das bild wechseln. dabei soll das bild ja gewechselt haben, bevor das bild wieder eingefadet wird.
ein prüfen mittels
if(document.getElementById('bildwechseln').src==namezusammensetzen)
funktioniert nicht...
hier ein beispiellink, wobei es auch oft klappt, aber eben manchmal auch nicht. Gerade auf den Macs passiert das gerne..
[link]www.beaugeois.de/test/3.htm[/link]
Vielleicht weiss ja jemand wie man sowas normalerweise löst...
Mein 2. (Safari/Javascript/Div/style.height)-Problem
[link]http://forum.de.selfhtml.org/?t=158840&m=1033051/[link]
Hi Ron,
ich versuche eine slideshow mit fadeefeckt umzusetzen.
ich tausche das bild per javascript aus
und rufe dann die funktion auf die das bild einfadet.
var namezusammensetzen = "images/zoom_"+pics[welchesbild];
document.getElementById('bildwechseln').src=namezusammensetzen;
window.setTimeout("fadeupwechsel();", 100);
Das Problem ist, das die Funktion manchmal schon aufgerufen wird bevor das bild auch wirklich gewechselt hat. D.h. auf dem Bildschirm sieht man während dem einfaden das bild wechseln. dabei soll das bild ja gewechselt haben, bevor das bild wieder eingefadet wird.
hier ein beispiellink, wobei es auch oft klappt, aber eben manchmal auch nicht. Gerade auf den Macs passiert das gerne..
Ich kann dir erstmal nicht wirklich helfen, da ich es noch nicht ganz verstehe, aber du könntest
[link]www.beaugeois.de/test/3.htm[/link]
richtig verlinken, bei mir erscheint "Objekt nicht gefunden", dann kann man vielleicht besser nachvollziehen, was du meinst. Im Übrigen kannst du Links hier wie folgt einrichten http://forum.de.selfhtml.org/hilfe/bedienung.htm#verweise-einbinden
Mein 2. (Safari/Javascript/Div/style.height)-Problem
[link]http://forum.de.selfhtml.org/?t=158840&m=1033051/[link]
Mach dir keine Gedanken, es werden hier alle Anfragen gelesen. Dieser nochmal explizite Hinweis könnte als Drängelei gewertet werden. Ich weiß, es ist erstmal eine ungewöhnliche Sortierung hier, aber glaube mir, sie ist effektiv und dein Posting wird nichtuntergehen ;)
ciao
romy
Halo Romy,
Stimmt, das war ein falscher Link...
Und eingebunden ist er auch falsch.
Na, super...
Hoffe es schaut sich doch noch jemand die Sache an.
danke jedenfalls für deinen Hinweis.
http://www.abspacker.de/test/3.htm
Mein Hinweis sollte auch kein Spam sein.
Werde ich mich in Zukunft dran halten... ;)
Gruß Ron
Hi Ron,
ich versuche eine slideshow mit fadeefeckt umzusetzen.
ich tausche das bild per javascript aus
und rufe dann die funktion auf die das bild einfadet.var namezusammensetzen = "images/zoom_"+pics[welchesbild];
document.getElementById('bildwechseln').src=namezusammensetzen;
window.setTimeout("fadeupwechsel();", 100);Das Problem ist, das die Funktion manchmal schon aufgerufen wird bevor das bild auch wirklich gewechselt hat. D.h. auf dem Bildschirm sieht man während dem einfaden das bild wechseln. dabei soll das bild ja gewechselt haben, bevor das bild wieder eingefadet wird.
hier ein beispiellink, wobei es auch oft klappt, aber eben manchmal auch nicht. Gerade auf den Macs passiert das gerne..
Ich kann dir erstmal nicht wirklich helfen, da ich es noch nicht ganz verstehe, aber du könntest
[link]www.beaugeois.de/test/3.htm[/link]
richtig verlinken, bei mir erscheint "Objekt nicht gefunden", dann kann man vielleicht besser nachvollziehen, was du meinst. Im Übrigen kannst du Links hier wie folgt einrichten http://forum.de.selfhtml.org/hilfe/bedienung.htm#verweise-einbindenMein 2. (Safari/Javascript/Div/style.height)-Problem
https://forum.selfhtml.org/?t=158840&m=1033051
Mach dir keine Gedanken, es werden hier alle Anfragen gelesen. Dieser nochmal explizite Hinweis könnte als Drängelei gewertet werden. Ich weiß, es ist erstmal eine ungewöhnliche Sortierung hier, aber glaube mir, sie ist effektiv und dein Posting wird nichtuntergehen ;)ciao
romy
Hi Ron,
Hoffe es schaut sich doch noch jemand die Sache an.
danke jedenfalls für deinen Hinweis.
http://www.abspacker.de/test/3.htm
Mir tut es leid, dass ich zu deinem eigentlichen Problem nichts sagen konnte ;) Nimm meine Kommentare nur als Hinweis, nicht als Kritik. Willkommen im Forum!
Aber ich habe trotzdem noch was zu beanstanden: Wenn du zitierst, ist es nachher leichter nachzuvollziehen, wenn du nur die Textpassagen stehen lässt, auf welche du sich beziehst. Einfach den Text drunter stehen zu lassen erzeugt TOFU und ist sehr unschön.
Hast du es lösen können mit Struppis Hilfe?
ciao
romy
HI Romy,
leider hab ich es bis jetzt noch nicht hinbekommen.
Auch Struppis hinweis hat mir nicht weitergeholfen.
Vielleicht habe ich ihn auch falsch verstanden.
Habe ihm jedenfalls geantwortet und hoffe auf Hilfe...
Gruß Ron
var namezusammensetzen = "images/zoom_"+pics[welchesbild];
document.getElementById('bildwechseln').src=namezusammensetzen;
window.setTimeout("fadeupwechsel();", 100);Das Problem ist, das die Funktion manchmal schon aufgerufen wird bevor das bild auch wirklich gewechselt hat. D.h. auf dem Bildschirm sieht man während dem einfaden das bild wechseln. dabei soll das bild ja gewechselt haben, bevor das bild wieder eingefadet wird.
einfach warten bis der load Event gefeuert wird. In etwa so
var namezusammensetzen = "images/zoom_"+pics[welchesbild];
var img = document.getElementById('bildwechseln')
img.onload = function() {
window.setTimeout("fadeupwechsel();", 100);
};
img.src=namezusammensetzen;
Struppi.
Hallo Struppi,
vielen Dank erstmal das du dich damit beschäftigt hast und danke für deine Antwort.
Leider funktioniert dein genannter code nicht, oder ich habe etwas falsch umgesetzt.
dein code:
var namezusammensetzen = "images/zoom_"+pics[welchesbild];
var img = document.getElementById('bildwechseln')
img.onload = function() {
window.setTimeout("fadeupwechsel();", 100);
};
img.src=namezusammensetzen;
Geändert habe ich fadeupwechsel() in fadedownwechsel() da ja das bild nach dem hochfaden und tauschen zum runterfaden soll.
dein genannter code steht ja in fadeupwechsel.
ich hoffe du verstehst was ich meine...
Der relevante code ist also nun folgender:
function fadeupwechsel(){ // bild einfaden
trans_top += faderzahl; // opacity erhöhen
if(welcherbrowser!='Netscape')document.getElementById('bildwechseln').style.filter="alpha(opacity:"+trans_top+")";
if(welcherbrowser!='Netscape')document.getElementById('bildwechseln').style.KHTMLOpacity=trans_top/100;
if(welcherbrowser!='Netscape')document.getElementById('bildwechseln').style.opacity=trans_top/100;
document.getElementById('bildwechseln').style.MozOpacity=trans_top/101;
if(trans_top >= 100) { // wenn bild fertiggefadet
if(wechselanaus=="an") { // Solange nicht auf stop geklickt wurde weiter machen
var namezusammensetzen = "images/zoom_"+pics[welchesbild];
var img = document.getElementById('bildwechseln');
img.onload = function() {
window.setTimeout("fadedownwechsel();", 3000); // weiter zum wegfaden
}
img.src=namezusammensetzen;
} // Solange nicht auf stop geklickt wurde ende
} // wenn bild fertiggefadet ende
else {
window.setTimeout("fadeupwechsel()",10); // wenn noch nicht fertiggefadet wieder von vorne
}
}
Wenn ich das so ausführe passiert ein durcheinander.
Zu sehen unter:
http://www.abspacker.de/test/3.htm
Vielleicht kannst du mir weiterhelfen?
Gruß Ron
Hallo,
Vielleicht weiss ja jemand wie man sowas normalerweise löst...
der Suchbegriff "Bilder vorladen" sollte dir weiterhelfen. Kommt drauf an, wie groß deine Bilder sind, ob vorm Start alle Bilder angefordert werden oder während das eine Bild angezeigt wird nur das nächste geladen wird.
Gruß plan_B