hallö,
ich hab ein klitzekleines javascript, das nicht ganz so funktioniert, wie ichs mir vorstelle.
ein <div> ist wie folgt eingebunden und soll bei onClick auf einen verweis verschwinden und wieder ins bild rutschen:
<div style="position:relative;" id="sneak">rutschender text</div>
er kommt (bei "normalen" auflösungen) eher unten als links an, soll deswegen bei etwa 0px vertikaler abweichung (a) weiterhin bis zum horizontalen ausgangspunkt vertikal wackeln (b).
die gesamte funktion soll am ausgangspunkt enden (c).
<script type="text/javascript">
<!--
var sneakhor = screen.availWidth-120; // horizontaler anfang
var sneakver = -300; // vertikaler anfang
function sneakback()
{
if(sneakhor>0)
{
sneakhor -= Math.round(Math.random()*10)+5;
if(sneakver < -8) sneakver += Math.round(Math.random()*8); // (a)
else sneakver == Math.round(Math.random()*8)-4; // (b)
document.getElementById("sneak").style.left = sneakhor+ "px";
document.getElementById("sneak").style.top = sneakver+ "px";
window.setTimeout("sneakback()",10); // (d)
}
else // (c)
{
document.getElementById("sneak").style.left = "0px";
document.getElementById("sneak").style.top = "0px";
}}
//-->
</script>
das ganze wackelt zwar durchs bild, aber:
[1] wenn der <div> die ausgangshöhe (a) erreicht, bleibt er ab dort auf einer höhe und wackelt nicht weiter vertikal (b).
[2] außerdem ist die funktion nur einmal aufrufbar, erst nach einem reload steht sie wieder zur verfügung. meine kümmerliche if/else-logik (c) umgeht da scheinbar nicht den setTimeout (d).
gleich noch zwei fragen:
[3] ist es möglich, eine laufende funktion per javascript abzubrechen???
[4] kann man für die ausführung einer for-schleife einen timeout definieren oder sie sonst in ihrer ausführungsgeschwindigkeit beeinflussen? vorstellbar wäre ja etwas in der art:
for (sneakhor = screen.availWidth-120; sneakhor >= 0; sneakhor -= 10)
{
// etc.
}
danke für die unterstützung!
willie *jemandderkeineahnunghat*