taste of ink
Threadersteller
Dabei seit: 14.06.2005
Ort: Hamburg
Alter: 39
Geschlecht:
|
Verfasst Di 11.04.2006 14:34
Titel [JS] onMouseOut |
|
|
Habe folgendes Problem und leider keine Ahnung von Javascript.
Ich habe eine Grafik "1.gif" als Menüpunkt. OnMouseover soll "2.gif" als animiertes Gif erscheinen. OnMouseOut soll dann das "3.giv", ebenfalls animiert ablaufen. Ich habe es mit Dreamweaver soweit auch hinbekommen, doch folgendes Problem:
Wenn jemand den Cursor von der Grafik wegbewegt bevor die Animation vollständig abgelaufen ist, soll erst die Animation zu Ende ablaufen und dann "3.gif" folgen.
Ich hoffe das war verständlich. Ich dachte an eine Mindestzeitangabe, damit das Gif immer die Zeit hat bis zum Ende abzulaufen (Es geht hierbei gerade mal um ein bis zwei Sekunden)
Von Dreamwaever generierter Code
Code: |
...
<script language="JavaScript" type="text/JavaScript">
<!--
function MM_preloadImages() { //v3.0
var d=document; if(d.images){ if(!d.MM_p) d.MM_p=new Array();
var i,j=d.MM_p.length,a=MM_preloadImages.arguments; for(i=0; i<a.length; i++)
if (a[i].indexOf("#")!=0){ d.MM_p[j]=new Image; d.MM_p[j++].src=a[i];}}
}
function MM_findObj(n, d) { //v4.01
var p,i,x; if(!d) d=document; if((p=n.indexOf("?"))>0&&parent.frames.length) {
d=parent.frames[n.substring(p+1)].document; n=n.substring(0,p);}
if(!(x=d[n])&&d.all) x=d.all[n]; for (i=0;!x&&i<d.forms.length;i++) x=d.forms[i][n];
for(i=0;!x&&d.layers&&i<d.layers.length;i++) x=MM_findObj(n,d.layers[i].document);
if(!x && d.getElementById) x=d.getElementById(n); return x;
}
function MM_swapImage() { //v3.0
var i,j=0,x,a=MM_swapImage.arguments; document.MM_sr=new Array; for(i=0;i<(a.length-2);i+=3)
if ((x=MM_findObj(a[i]))!=null){document.MM_sr[j++]=x; if(!x.oSrc) x.oSrc=x.src; x.src=a[i+2];}
}
function MM_swapImgRestore() { //v3.0
var i,x,a=document.MM_sr; for(i=0;a&&i<a.length&&(x=a[i])&&x.oSrc;i++) x.src=x.oSrc;
}
//-->
</script>
...
<body onLoad="MM_preloadImages('2.gif','3.gif')">
<div align="center"><a href="javascript:;" onMouseOver="MM_swapImage('Image1','','2.gif',1)" onMouseOut="MM_swapImage('Image1','','3.gif',1)"><img src="1.gif" name="Image1" width="30" height="30" border="0" id="Image1"></a>
</div>
</body>
</html>
|
Vielleicht gibt es auch komplett andere Herangehensweisen, wollte Flash aber gerne vermeiden.
// GROSSES DANKE SCHONMAL
Zuletzt bearbeitet von taste of ink am Di 11.04.2006 14:36, insgesamt 2-mal bearbeitet
|
|
Raumwurm
Dabei seit: 21.12.2004
Ort: -
Alter: -
Geschlecht:
|
Verfasst Di 11.04.2006 16:00
Titel
|
|
|
Du könntest dem onMouseOut einen Timeout
mitgeben. Also quasi so:
onMouseOut="window.setTimeout('MM_swapImage(\'Image1\',\'\',\'3.gif\',1)', 300);"
300 ist der Wert in Millisekunden. Die
Backslashes beim MM_swapImage dann
nicht vergessen. Theoretisch müsste man
aber den Timeout vorher mit clearTimeout
noch resetten. Aber probiers doch mal aus.
|
|