What is Window.requestAnimationFrame() in JavaScript?
Developers often use animations to make their web pages elegant and user-friendly. In JavaScript, programmers use the window.requestAnimationFrame() method of the window object to create animations.
This method generates animations that are in sync with the processing speed. It also slows down the animation's loading time when it is not in use, and saves the browser's resources while rendering web pages.
Syntax
Let's take a look at this method's syntax
window.requestAnimationFrame(callback);
Parameters
This method has a single parameter:
callback: This function creates the next frame of the animation. It takes atimestampas an argument to make changes in the animation variables when they are rendered on the screen.
Return value
The return value of this method is a non-zero long integer, which is a unique identifier for the animation in the callback function.
Example
The code below demonstrates the use of the window.requestAnimationFrame() method:
Explanation
- Lines 5–8: In this piece of code, we have a
<div>tag that encapsulates the<img>and the<h4>tags that we want to animate. - Line 9–22: These lines contain
<script>tags that enclose actual JavaScript code that depict the use ofwindow.requestAnimationFrame(). We can further break them down as follows: - Line 10–11: We initialize a variable named
starttonull. We fetch the<div>tag by usingdocument.getElementById()to apply the animation. - Line 12–20: These lines of code contain our self-defined function of
startAnimation(). This method checks if thestartvariable isnullusing anif-statement. It then adds linear motion to thedivtag using thestyle.transformproperty. - Line 18: Then, we use the
translateXproperty of CSS and theMath.min()function to apply the animation accordingly. - Line 19: The
window.requestAnimationFrame()method then passes the callback functionstartAnimation(), which renders the next frame. - Line 20: This line of code initiates the first call to the
startAnimation()method and renders the animation as seen in the output tab above.
Note: To learn more about the
Math.min()function, we can refer to this link.
Free Resources