Supportnet / Forum / Webseiten/HTML
Mous over Effekt beim laden
Frage
Wie ermögliche es das die Buttons für den Mouse over Effekt gleich beim laden der Seite mitgeladen werden? also das niemand bei jeder Grafik warten muss bis die zweite für den Effekt geldaen ist.
Danke schonmal!
Antwort 1 von Friedel
Dazu lädst du die Biler am besten einfach in den Browsercache. Du baust irgendwo in der Seite alle Bilder ein, damit sie gleich beim Aufrufen der Seite geladen werden. Dazu kannst du die Bilder auf 1*1 Pixel verkleinern, oder sie in ein unsichtbares Div legen, oder die Bilder per CSS unsichtbar machen, oder die Bilder durch absolute positionierung außerhalb des Fensters positionieren, oder...
Antwort 2 von abschweb
Wenn du den MouseOver-Effekt mit Javascript realisierst, empfiehlt sich die Methode, im <head> ein script einrichtest in dem du für jedes Bild formulierst:
Bei vielen Bildchen machst du am besten ein Array mit den Dateinamen
und erzeugst die Bildobjekte in einer for-Schleife.
Gruß
Manfred
var Bild = new Image ();
Bild.src = ´knopf.gif´;
Bei vielen Bildchen machst du am besten ein Array mit den Dateinamen
var Bildchen = new Array (´knopf1.gif´, ´knopf2.gif´);
und erzeugst die Bildobjekte in einer for-Schleife.
Gruß
Manfred
Antwort 3 von abschweb
Zur Ergänzung:
Mein Vorschlag hat im Prinzip den gleichen Effekt wie Friedels Vorschlag. Der Vorteil ist, dass man nichts dafür tun muss, die Bildchen zu verstecken; sie werden ja durch diese Javascript-Anweisungen definitiv nicht angezeigt.
Es gibt keine Notwendigkeit, die erzeugten Bildobjekte danach noch mal anzusprechen.
Sie sind im Cache und es können bei der späteren Verwendung problemlos die Dateinamen zugewiesen werden.
Gruß
Manfred
Mein Vorschlag hat im Prinzip den gleichen Effekt wie Friedels Vorschlag. Der Vorteil ist, dass man nichts dafür tun muss, die Bildchen zu verstecken; sie werden ja durch diese Javascript-Anweisungen definitiv nicht angezeigt.
Es gibt keine Notwendigkeit, die erzeugten Bildobjekte danach noch mal anzusprechen.
Sie sind im Cache und es können bei der späteren Verwendung problemlos die Dateinamen zugewiesen werden.
Gruß
Manfred
Antwort 4 von vasquez
kleine ergänzung :
falls ein bild noch nicht geladen ist , (weil die laden
ja asynchron) gibts eventuel probleme ....
wenn du das mit dem javascript preloading machst ,
müsstest du eventuel die readyState eigenschaft abfragen von den image objecten ,
bei mozilla gibts da aber probleme , weil es da kein
vernünftiges onReadyStateChange event gibt ,
und somit die links nicht erst in die seite eingefügt werden können wenn ihre animation komplett
geladen ist.
also musst du den readyState abfragen ,wenn ein mouseOver ausgelöst wird , und falls die bilder noch nicht fertig sind , machst du einen Css effect , falls doch nimmst du das image.
(ein standart bild für alle am anfang , während die anderen geladen werden sollte auch akzeptabel sein)
für leute die schnell mal auf die seite gehen wollen um irgendwo hinzukommen ohne lange auf animationen zu warten
ist diese möglichkeit eh am besten.
falls ein bild noch nicht geladen ist , (weil die laden
ja asynchron) gibts eventuel probleme ....
wenn du das mit dem javascript preloading machst ,
müsstest du eventuel die readyState eigenschaft abfragen von den image objecten ,
bei mozilla gibts da aber probleme , weil es da kein
vernünftiges onReadyStateChange event gibt ,
und somit die links nicht erst in die seite eingefügt werden können wenn ihre animation komplett
geladen ist.
also musst du den readyState abfragen ,wenn ein mouseOver ausgelöst wird , und falls die bilder noch nicht fertig sind , machst du einen Css effect , falls doch nimmst du das image.
(ein standart bild für alle am anfang , während die anderen geladen werden sollte auch akzeptabel sein)
für leute die schnell mal auf die seite gehen wollen um irgendwo hinzukommen ohne lange auf animationen zu warten
ist diese möglichkeit eh am besten.
Antwort 5 von abschweb
warum so kompliziert?
Zeig doch einfach die heißen Objekte erst an, wenn alles geladen ist. Also in der Funktion, die du im <body onLoad= zuweist, setzt du die Knöpfe auf visible. Ich persönlich treibe diesen Aufwand meist nicht. Wenn da wirklich ein Hektiker einen Knopf klickt, dessen alternative Erscheinung noch nicht geladen ist, passiert ja nichts schlimmeres, als dass die Optik sich ein bisschen verzögert. Na und?
Gruß
Manfred
Zeig doch einfach die heißen Objekte erst an, wenn alles geladen ist. Also in der Funktion, die du im <body onLoad= zuweist, setzt du die Knöpfe auf visible. Ich persönlich treibe diesen Aufwand meist nicht. Wenn da wirklich ein Hektiker einen Knopf klickt, dessen alternative Erscheinung noch nicht geladen ist, passiert ja nichts schlimmeres, als dass die Optik sich ein bisschen verzögert. Na und?
Gruß
Manfred