Create a Button Loading Animation in HTML CSS & JavaScript Last Updated : 19 Apr, 2025 Comments Improve Suggest changes Like Article Like Report A "Button Loading Animation" in HTML, CSS, and JavaScript is a user interface element that temporarily transforms a button into a loading state with a spinner or animation to indicate ongoing processing or data retrieval, providing feedback to users during asynchronous tasks.Approach:HTML page with a user form, including username, password fields, and a "Submit" button that triggers a loading animation.CSS styles define the page's visual layout, including button styling, loader appearance, and form container formatting.JavaScript adds a "loading" class to the button and displays the loader when the "Submit" button is clicked.Simulated async operation using setTimeout for 2 seconds before restoring the button's normal state and resetting the form.Interactive form with a loading animation to improve user experience during form submission or other async actions.Example: HTML <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>Button Loading Animation</title> <link rel="stylesheet" href="style.css"> </head> <body> <div class="form-container"> <h1>GeeksforGeeks</h1> <form id="my-form"> <label for="username">Username:</label> <input type="text" id="username" name="username" required> <br><br> <label for="password">Password:</label> <input type="password" id="password" name="password" required> <br><br> <div class="btn-container"> <button id="loadButton" class="btn"> Submit <div class="loader" id="loader"> </div> </button> </div> </form> </div> <script src="script.js"></script> </body> </html> CSS body { display: flex; justify-content: center; align-items: center; height: 100vh; margin: 0; } .form-container { background-color: gray; width: 40%; padding: 20px; } .btn-container { display: flex; align-items: center; } .btn { padding: 10px 20px; background-color: blue; color: #fff; border: none; cursor: pointer; border-radius: 5px; transition: background-color 0.3s; display: flex; align-items: center; justify-content: space-between; } .btn:hover { background-color: #0056b3; } .loader { display: none; border: 4px solid rgba(255, 255, 255, 0.3); border-top: 4px solid blue; border-radius: 50%; width: 25px; height: 25px; animation: spin 1s linear infinite; margin-left: 10px; } @keyframes spin { 0% { transform: rotate(0deg); } 100% { transform: rotate(360deg); } } .loading { background-color: #ccc; pointer-events: none; } JavaScript const loadButton = document.getElementById('loadButton'); const loader = document.getElementById('loader'); const demoForm = document.getElementById('my-form'); loadButton.addEventListener('click', () => { // Disable the button // and prevent further clicks loadButton.disabled = true; loader.style.display = 'inline-block'; setTimeout(() => { // Restore the button state //after the operation is done loadButton.disabled = false; loader.style.display = 'none'; demoForm.reset(); }, 2000); }); Output: Comment More info P parzival_op Follow Improve Article Tags : JavaScript Web Technologies Geeks Premier League JavaScript-Questions Geeks Premier League 2023 +1 More Explore JavaScript BasicsIntroduction to JavaScript4 min readVariables and Datatypes in JavaScript6 min readJavaScript Operators5 min readControl Statements in JavaScript4 min readArray & StringJavaScript Arrays7 min readJavaScript Array Methods7 min readJavaScript Strings6 min readJavaScript String Methods9 min readFunction & ObjectFunctions in JavaScript5 min readJavaScript Function Expression3 min readFunction Overloading in JavaScript4 min readObjects in Javascript4 min readJavaScript Object Constructors4 min readOOPObject Oriented Programming in JavaScript3 min readClasses and Objects in JavaScript4 min readWhat Are Access Modifiers In JavaScript ?5 min readJavaScript Constructor Method7 min readAsynchronous JavaScriptAsynchronous JavaScript2 min readJavaScript Callbacks4 min readJavaScript Promise4 min readEvent Loop in JavaScript4 min readAsync and Await in JavaScript2 min readException HandlingJavascript Error and Exceptional Handling6 min readJavaScript Errors Throw and Try to Catch2 min readHow to create custom errors in JavaScript ?2 min readJavaScript TypeError - Invalid Array.prototype.sort argument1 min readDOMHTML DOM (Document Object Model)9 min readHow to select DOM Elements in JavaScript ?3 min readJavaScript Custom Events4 min readJavaScript addEventListener() with Examples9 min readAdvanced TopicsClosure in JavaScript4 min readJavaScript Hoisting6 min readJavascript Scope3 min readJavaScript Higher Order Functions7 min readDebugging in JavaScript4 min read Like