versuch13
Erfahrenes Mitglied
Hi, ich grübel mittlerweile schon ziemlich lange daran, wie es möglich
ist eine Animation mit setInterval innerhalb einer bestimmten Zeitspanne
ablaufen zu lassen.
Ich habe hier mal ein einfaches Beispiel angefertigt.
Jetzt möchte ich als "duration" gerne eine Zeitspanne in Sekunden oder
Millisekunden übergeben, sagen wir hier im Beispiel jetzt am besten mal
eine Sekunde.
Ich müßte also irgendwie "this.position" nicht jeweils um +1 erhöhen, sondern
in diesem Beispiel um +12. Also, wie kann ich jetzt "this.position" so berechnen
dass die Animation bis zu "this.to" innerhalb der angebenen Zeitspanne durchlaufen
ist?
Danke schon mal. Grüße
ist eine Animation mit setInterval innerhalb einer bestimmten Zeitspanne
ablaufen zu lassen.
Ich habe hier mal ein einfaches Beispiel angefertigt.
HTML:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>Animation</title>
<style type="text/css">
#test {
background:#f00;
padding:30px;
position:relative;
}
</style>
<script type="text/javascript">
function initAnimation(element, duration) {
this.element = document.getElementById(element);
this.position = this.element.style.top;
this.to = 120;
this.duration = duration;
this.timer = setInterval(steps ,30);
}
function steps() {
this.position++;
if(this.position >= this.to) {
clearInterval(this.timer);
}
animate();
}
function animate() {
this.element.style.top = this.position +'px';
}
</script>
</head>
<body>
<button onclick="initAnimation('test', 1000)">animieren</button><br /><br />
<div id="test">Test</div>
</body>
</html>
Jetzt möchte ich als "duration" gerne eine Zeitspanne in Sekunden oder
Millisekunden übergeben, sagen wir hier im Beispiel jetzt am besten mal
eine Sekunde.
Ich müßte also irgendwie "this.position" nicht jeweils um +1 erhöhen, sondern
in diesem Beispiel um +12. Also, wie kann ich jetzt "this.position" so berechnen
dass die Animation bis zu "this.to" innerhalb der angebenen Zeitspanne durchlaufen
ist?
Danke schon mal. Grüße