Ich habe eine Webseite, auf der der Benutzer ein neues Bild sehen soll, wenn er seine Maus über einen bestimmten Teil des Bildes legt. Ich habe eine Imagemap benutzt.Wie kann ich Bilder für die schnelle Anzeige mit Javascript im Cache zwischenspeichern?
<img src="pic.jpg" usemap="#picmap" />
<map id="picmap" name="picmap"><area shape="rect" coords ="10,20,30,40"
onMouseOver="mouse_on_write('mouse is on spot')"
onMouseOut="mouse_off('mouse is off spot')"
href="http://www....html" target="_blank" />
</map>
<p id="desc"></p>
Wo im Header ich diese Funktionen definiert:
<script type="text/javascript">
function mouse_off(txt)
{
document.getElementById("desc").innerHTML=txt;
document.p1.src="pic.jpg";
}
function mouse_on_write(txt)
{
document.getElementById("desc").innerHTML=txt;
document.p1.src="pic2.jpg";
</script>
Es funktioniert, aber es ist langsam. Wenn die Maus über das zweite Bild gelegt wird, dauert es einige Sekunden, bis sie erscheint. Meine vorläufige Lösung bestand darin, die Größe der Bilder drastisch zu reduzieren, weil sie riesig waren (bei 2,5 MB schalten sie jetzt schnell um, sind aber immer noch nicht nahtlos). Wie kann ich den Bildwechsel nahtloser ohne Reduzierung der Bildqualität machen? Auf den zweiten Gedanken erkenne ich, dass ich auch nur beide Bilder in einem kleinen und einem großen Maßstab angezeigt hätte, und auf Maus über sie würden Plätze wechseln; Wie würde ich das tun? Würde dies die Verzögerung reduzieren?
By the way, sind Sie wahrscheinlich sowieso nicht wollen, gehen eine 2.5 MB Bild auf Ihrem Benutzer zuzufügen. Wie groß ist der Raum, den Sie füllen möchten? – dshaw