How to wait resize end event and then perform an action using JavaScript ?

When we resize the browser window, the “resize” event is fired continuously, multiple times while resizing. We want the “resize” event to only be fired once we are done resizing.
Prerequisite: To solve this problem we use two functions:
Example: We will use setTimeout() so that the function in which we want to be fired after resizing waits for 500ms. Now, we keep the setTimeout() function in the “resize” event. Right before setTimeout(), we set clearTimeOut() which keeps clearing this setTimeout() timer. Since, the resize event is fired continuously when we resize the window, due to this the clearTimeOut() is also called continuously. Due to this, the function inside setTimeout() does not run until we stop resizing.
html
| <!DOCTYPE html> <htmllang="en"> <head>     <metacharset="utf-8"/>     <title></title> </head>  <body>     <!-- div is used to display a message           when we are done resizing -->    <divid="message"></div> </body> </html> | 
Javascript
| <script>     // Message variable contains the div object which     // is used to display message after we are done resizing     varmessage = document.getElementById("message");                // timeOutFunctionId stores a numeric ID which is      // used by clearTimeOut to reset timer     vartimeOutFunctionId;          // The function that we want to execute after      // we are done resizing     functionworkAfterResizeIsDone() {         message.innerHTML += "     <p>Window Resized</p>     ";     }          // The following event is triggered continuously     // while we are resizing the window     window.addEventListener("resize", function() {                // clearTimeOut() resets the setTimeOut() timer         // due to this the function in setTimeout() is          // fired after we are done resizing         clearTimeout(timeOutFunctionId);                // setTimeout returns the numeric ID which is used by         // clearTimeOut to reset the timer         timeOutFunctionId = setTimeout(workAfterResizeIsDone, 500);     }); </script> | 
Output: Click here to check the live output.

 
				 
					


