This code implements a responsive stop watch with milliseconds using Bootstrap 5. The stopwatch displays hours, minutes, seconds, and milliseconds. You can start and stop the stopwatch with the “Start/Stop” button and reset it with the “Reset” button. The circular frame and controls are styled with Bootstrap, ensuring a visually appealing and user-friendly design. It’s a helpful tool for tracking time accurately in various scenarios.
How to Create Stop Watch With Milliseconds Using Bootstrap 5
1. First of all, include the necessary Bootstrap and Font Awesome CDN links in the <head>
section of your HTML file.
<!-- Bootstrap 5 CSS --> <link href="https://cdn.jsdelivr.net/npm/[email protected]/dist/css/bootstrap.min.css" rel="stylesheet"> <!-- Font Awesome Icons --> <link href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/5.15.1/css/all.min.css" rel="stylesheet">
2. In HTML, create a container with the required elements for the stopwatch.
<div id="stopwatch-container"> <!-- Outer frame containing the circular frame and stopwatch --> <div id="outer-frame"> <div id="outer-circle"> <div id="stopwatch">00:00:00:00:00:00:000</div> </div> </div> <!-- Controls for the stopwatch --> <div id="controls"> <button class="btn btn-primary" onclick="startStop()"> <i class="fas fa-play"></i> Start/Stop </button> <button class="btn btn-danger" onclick="reset()"> <i class="fas fa-stop"></i> Reset </button> </div> </div>
3. Add the required styles to make the stopwatch visually appealing. Customize the colors, fonts, and sizes according to your preference.
body { font-family: 'Arial', sans-serif; display: flex; align-items: center; justify-content: center; height: 100vh; margin: 0; background-color: #2c3e50 !important; /* Dark grey background color */ color: #ecf0f1; /* Light text color */ } #stopwatch-container { text-align: center; } #outer-frame { width: 260px; height: 260px; border: 5px solid #ecf0f1; /* Circular frame color */ border-radius: 50%; display: flex; align-items: center; justify-content: center; margin: 0 auto; /* Center the frame */ } #outer-circle { width: 220px; height: 220px; border-radius: 50%; background-color: #3498db; display: flex; align-items: center; justify-content: center; } #stopwatch { font-size: 2em; color: #fff; } #controls { margin-top: 20px; } button { font-size: 1em; padding: 10px 20px; margin: 0 5px; cursor: pointer; }
4. Now, load the Bootstrap 5 JS, Popper JS, and jQuery by adding the following CDN links before closing the body tag:
<!-- Bootstrap 5 JS, Popper.js, and jQuery --> <script src="https://cdn.jsdelivr.net/npm/[email protected]/dist/js/bootstrap.bundle.min.js"></script> <script src="https://code.jquery.com/jquery-3.6.4.min.js"></script>
5. Finally, include the following JavaScript code for the stopwatch functionality. This code handles starting, stopping, resetting, and updating the display with the elapsed time:
let startTime; let accumulatedTime = 0; let running = false; function startStop() { if (running) { running = false; } else { startTime = null; requestAnimationFrame(updateTime); running = true; } } function reset() { accumulatedTime = 0; updateDisplay(); running = false; } function updateTime(timestamp) { if (!startTime) { startTime = timestamp; } if (!running) return; accumulatedTime = timestamp - startTime; updateDisplay(); requestAnimationFrame(updateTime); } function updateDisplay() { const totalMilliseconds = Math.floor(accumulatedTime); const days = Math.floor(totalMilliseconds / (24 * 60 * 60 * 1000)); const hours = Math.floor((totalMilliseconds % (24 * 60 * 60 * 1000)) / (60 * 60 * 1000)); const minutes = Math.floor((totalMilliseconds % (60 * 60 * 1000)) / (60 * 1000)); const seconds = Math.floor((totalMilliseconds % (60 * 1000)) / 1000); const milliseconds = totalMilliseconds % 1000; const timeString = `${formatTime(days)}:${formatTime(hours)}:${formatTime(minutes)}:${formatTime(seconds)}:${formatTime(milliseconds, 3)}`; document.getElementById('stopwatch').innerText = timeString; } function formatTime(value, digits = 2) { const paddedValue = value.toString().padStart(digits, '0'); return paddedValue.substring(0, digits); } // Add event listener to stop the stopwatch on any touch $(document).on('touchstart', function () { running = false; }); // Initial display updateDisplay();
That’s all! hopefully, you have successfully created a stopwatch with milliseconds using Bootstrap 5. If you have any questions or suggestions, feel free to comment below.
Similar Code Snippets:
I code and create web elements for amazing people around the world. I like work with new people. New people new Experiences.
I truly enjoy what I’m doing, which makes me more passionate about web development and coding. I am always ready to do challenging tasks whether it is about creating a custom CMS from scratch or customizing an existing system.