Hallo!
Ik wil graag met JavaScript/DHTML een animatie maken van een element over het scherm.
De bedoeling is als volgt: het element moet van positie x1, y1 worden verplaatst naar positie x2, y2.
setInterval/clearInterval, instellen van x/y positie van het element en dat soort technische dingen lukken allemaal, daaromtrent geen probleem. Waar ik alleen wat (wiskundig/natuurkundig) denkwerk bij nodig heb is vertraging versnelling. Ik wil graag dat de animatie zo verloopt, dat het element eerst steeds sneller beweegt, totdat hij op de helft is op maximale snelheid. Daarna het omgekeerde, dus vertraging totdat het element op zijn doelbestemming is.
De elementen die volgens mij te maken hebben met de berekening:
- Ten eerste berekenen van de afstand die het element in x en y richting moet afleggen (deltaX en deltaY)
- Aantal stappen waarin de animatie moet worden afgerond (is overigens variabel om te kunnen experimenteren met hoe vloeiend de animatie verloopt)
- Huidige stap
- Iets met een kwadratische functie (parabool) voor versnelling/vertraging
Met die elementen zou je volgens mij de x en y positie voor de betreffende stap moeten kunnen berekenen. Ik zie alleen niet zo goed hoe.
Hardop verder denkend...
De kwadratische functie moet voor step = 0 een versnelling geven van 0 EN voor step = (<total_steps> + 1) ook 0 geven.
De kwadratische functie moet beginnen met -x^2, want hij moet worden "geinverteerd".
En dan is er ook nog iets dat ervoor moet zorgen dat in het aantal stappen uiteindelijk ook precies de beoogde deltaX en deltaY afgelegd wordt.
Dat is zo'n beetje wat ik zelf kan verzinnen. Als het al nuttig zou zijn, dan zou ik niet weten hoe is zoiets zou moeten Googelen.
Alvast veeeeel dank voor het meedenken.
Ik wil graag met JavaScript/DHTML een animatie maken van een element over het scherm.
De bedoeling is als volgt: het element moet van positie x1, y1 worden verplaatst naar positie x2, y2.
setInterval/clearInterval, instellen van x/y positie van het element en dat soort technische dingen lukken allemaal, daaromtrent geen probleem. Waar ik alleen wat (wiskundig/natuurkundig) denkwerk bij nodig heb is vertraging versnelling. Ik wil graag dat de animatie zo verloopt, dat het element eerst steeds sneller beweegt, totdat hij op de helft is op maximale snelheid. Daarna het omgekeerde, dus vertraging totdat het element op zijn doelbestemming is.
De elementen die volgens mij te maken hebben met de berekening:
- Ten eerste berekenen van de afstand die het element in x en y richting moet afleggen (deltaX en deltaY)
- Aantal stappen waarin de animatie moet worden afgerond (is overigens variabel om te kunnen experimenteren met hoe vloeiend de animatie verloopt)
- Huidige stap
- Iets met een kwadratische functie (parabool) voor versnelling/vertraging
Met die elementen zou je volgens mij de x en y positie voor de betreffende stap moeten kunnen berekenen. Ik zie alleen niet zo goed hoe.
Hardop verder denkend...
De kwadratische functie moet voor step = 0 een versnelling geven van 0 EN voor step = (<total_steps> + 1) ook 0 geven.
De kwadratische functie moet beginnen met -x^2, want hij moet worden "geinverteerd".
En dan is er ook nog iets dat ervoor moet zorgen dat in het aantal stappen uiteindelijk ook precies de beoogde deltaX en deltaY afgelegd wordt.
Dat is zo'n beetje wat ik zelf kan verzinnen. Als het al nuttig zou zijn, dan zou ik niet weten hoe is zoiets zou moeten Googelen.
Alvast veeeeel dank voor het meedenken.