HighDots Forums  

Preload bei mouseover

Javascript (German) Programmiersprache JavaScript. (de.comp.lang.javascript)


Discuss Preload bei mouseover in the Javascript (German) forum.



Reply
 
Thread Tools Display Modes
  #1  
Old   
Lukas Meinertz
 
Posts: n/a

Default Preload bei mouseover - 06-21-2004 , 06:33 AM






Hallo!

Ich befinde mich zur Zeit in einer recht komischen Situtation da mir
eine Person nicht glauben moechte, dass ich es anders loesen kann. Ich
erzeuge mit folgendem Script einen Mouseover bei einem Bild:

<script language="JavaScript" type="text/javascript">
<!--
var img = new Array;
var d = document;
var t = false;

b0 = new Image();
b0.src = "images/links/home_1.gif";
b0on = new Image();
b0on.src = "images/links/home_2.gif";


function on3(name) {
d[name].src = eval(name + "on.src");
}
function off3(name) {
d[name].src = eval(name + ".src");
}

var t = true;

function on(name) {
if(t) on3(name);
}

function off(name) {
if(t) off3(name);
}
//-->
</script>

So rufe ich es auf:

<a href="index.php" onmouseover="on('b0'); return true;"
onmouseout="off('b0'); return true;"><img name="b0"
src="images/links/home_1.gif" border="0" alt="Home"></a>

Nun zum Problem: Die betreffende Person moechte, dass die MouOver-Bilder
schon waehrend des Ladens der Seite funktionieren. Also nicht, wie es
jetzt ist, dass die Bilder beim laden der Seite in den Cache geladen
werden und dann beim herueberfahren ohne Verzoegerung aufgerufen werden.
Ist dies ueberhaupt moeglich? Ich bin der Ansicht, dass ich das nicht
steuern kann.

Ueber eine Antwort waere ich sehr dankbar.

MfG Lukas

Reply With Quote
  #2  
Old   
Thomas 'PointedEars' Lahn
 
Posts: n/a

Default Re: Preload bei mouseover - 06-21-2004 , 07:03 AM






Lukas Meinertz wrote:
Quote:
script language="JavaScript" type="text/javascript"
!--
var img = new Array;
^^^^^^^^^^^^^^^^^^^
Wozu?

Quote:
var d = document;
var t = false;

b0 = new Image();
b0.src = "images/links/home_1.gif";
b0on = new Image();
b0on.src = "images/links/home_2.gif";
var _global = this;

Quote:
function on3(name) {
d[name].src = eval(name + "on.src");
eval() is evil[tm], Deine Referenzierung proprietär
und durch nichts abgesichert.

var img;
if (d.images && (img = d.images[name]))
{
img.src = _global[name + "on"].src;
}

Siehe <http://pointedears.de/scripts/test/whatami/>.

Quote:
}

[...]
var t = true;

function on(name) {
if(t) on3(name);
}

function off(name) {
if(t) off3(name);
}
Wozu?

Quote:
//--
/script

So rufe ich es auf:

a href="index.php" onmouseover="on('b0'); return true;"
onmouseout="off('b0'); return true;"><img name="b0"
src="images/links/home_1.gif" border="0" alt="Home"></a
Was denkst Du, was das "return true" in einem onmouse*-Handler bewirke?

Quote:
Nun zum Problem: Die betreffende Person moechte, dass die MouOver-Bilder
schon waehrend des Ladens der Seite funktionieren.
Möglich. Die Image-Objekte kann man durchaus vorher erzeugen, was Du ja
auch tust. Ob die document.images-Collection vor dem Ende des Ladens
des Dokuments schon verfügbar ist bzw. ob sie überhaupt jemals verfügbar
ist, hängt jedoch vom jeweiligen DOM und damit vom UA ab.

Wir haben das sogenannte "Vorladen" und die damit einhergehenden
Probleme hier bereits mehrfach diskutiert (woraus u.a. hoverMe[1]
entstanden ist). Google ist Dein Freund [psf 6.1], siehe FAQ-Pointer.


PointedEars
___________
[1] <http://pointedears.de/scripts/test/hoverMe/>


Reply With Quote
  #3  
Old   
Lukas Meinertz
 
Posts: n/a

Default Re: Preload bei mouseover - 06-21-2004 , 07:41 AM



Hallo!

Thomas 'PointedEars' Lahn wrote:
Quote:
[...]
Nun zum Problem: Die betreffende Person moechte, dass die MouOver-Bilder
schon waehrend des Ladens der Seite funktionieren.

Möglich. Die Image-Objekte kann man durchaus vorher erzeugen, was Du ja
auch tust. Ob die document.images-Collection vor dem Ende des Ladens
des Dokuments schon verfügbar ist bzw. ob sie überhaupt jemals verfügbar
ist, hängt jedoch vom jeweiligen DOM und damit vom UA ab.
Vielen Dank fuer die schnelle Antwort. Ich kann es also nicht steuern
und das hierbei noch ein paar Fehler meinerseits entfernt wurden, hat
einen schoenen Nebeneffekt

Gruss,
Lukas


Reply With Quote
  #4  
Old   
Bernd Muent
 
Posts: n/a

Default Re: Preload bei mouseover - 06-21-2004 , 08:52 AM



Lukas Meinertz schrieb:

Quote:
Nun zum Problem: Die betreffende Person moechte, dass die MouOver-Bilder
schon waehrend des Ladens der Seite funktionieren. Also nicht, wie es
jetzt ist, dass die Bilder beim laden der Seite in den Cache geladen
werden und dann beim herueberfahren ohne Verzoegerung aufgerufen werden.
Ist dies ueberhaupt moeglich? Ich bin der Ansicht, dass ich das nicht
steuern kann.
Nicht direkt. Eine Möglichkeit ist vielleicht, in der vorhergehenden
Seite, die deine Seite aufruft, schon solche "new image()"-Befehle
einzubauen. Damit hast du die Bilder schon im Cache, wenn deine Seite
aufgerufen wird.
Geht natürlich nicht, wenn deine Seite keinen Vorgänger hat.

B.

--
BM Computer-Services, Bergmannstr. 66, 10961 Berlin
Webdesign, Internet, Layout und Grafik
Tel.: 030/20649400, mobil 0175/7419517, Fax: 030/20649401
Web: http://www.bmservices.de, eMail: kontakt (AT) bmservices (DOT) de


Reply With Quote
  #5  
Old   
Thomas 'PointedEars' Lahn
 
Posts: n/a

Default Re: Preload bei mouseover - 06-21-2004 , 09:06 AM



Bernd Muent wrote:
Quote:
[...] Eine Möglichkeit ist vielleicht, in der vorhergehenden
Seite, die deine Seite aufruft, schon solche "new image()"-Befehle
Wenn überhaupt, dann new Image(). ECMAScript/JS ist case-sensitive.

Quote:
einzubauen. Damit hast du die Bilder schon im Cache, wenn deine Seite
aufgerufen wird.
Vielleicht, vielleicht auch nicht. Es ist *mein* Cache.

Quote:
Geht natürlich nicht, wenn deine Seite keinen Vorgänger hat.
Eine (gute) Website hat nicht wirklich einen Anfang oder besteht aus
Seiten. man Google


PointedEars


Reply With Quote
  #6  
Old   
Lukas Meinertz
 
Posts: n/a

Default Re: Preload bei mouseover - 06-22-2004 , 07:19 AM



Bernd Muent wrote:
Quote:
Lukas Meinertz schrieb:

Nun zum Problem: Die betreffende Person moechte, dass die
MouOver-Bilder schon waehrend des Ladens der Seite funktionieren. Also
nicht, wie es jetzt ist, dass die Bilder beim laden der Seite in den
Cache geladen werden und dann beim herueberfahren ohne Verzoegerung
aufgerufen werden. Ist dies ueberhaupt moeglich? Ich bin der Ansicht,
dass ich das nicht steuern kann.


Nicht direkt. Eine Möglichkeit ist vielleicht, in der vorhergehenden
Seite, die deine Seite aufruft, schon solche "new image()"-Befehle
einzubauen. Damit hast du die Bilder schon im Cache, wenn deine Seite
aufgerufen wird.
Geht natürlich nicht, wenn deine Seite keinen Vorgänger hat.
Es ist keine "Startseite" vorhanden, also faellt diese Methode aus.
Trotzdem danke.


Reply With Quote
Reply




Thread Tools
Display Modes

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

vB code is On
Smilies are On
[IMG] code is On
HTML code is Off



Powered by vBulletin Version 3.5.4
Copyright ©2000 - 2008, Jelsoft Enterprises Ltd.