.button-container {
display: flex;
justify-content: center;
align-items: center;
min-height: 150px;
background: linear-gradient(135deg, #667eea 0%, #764ba2 100%);
padding: 20px;
}
.loading-btn {
position: relative;
padding: 14px 32px;
background: #fff;
border: none;
border-radius: 50px;
font-size: 16px;
font-weight: 600;
color: #333;
cursor: pointer;
overflow: hidden;
transition: all 0.3s ease;
box-shadow: 0 4px 15px rgba(0, 0, 0, 0.1);
min-width: 120px;
}
.loading-btn:hover {
transform: translateY(-2px);
box-shadow: 0 6px 20px rgba(0, 0, 0, 0.15);
}
.btn-text {
display: inline-block;
transition: opacity 0.3s ease;
}
.btn-loader {
position: absolute;
top: 50%;
left: 50%;
transform: translate(-50%, -50%);
opacity: 0;
transition: opacity 0.3s ease;
}
.spinner {
width: 20px;
height: 20px;
border: 2px solid #f3f3f3;
border-top: 2px solid #333;
border-radius: 50%;
animation: spin 1s linear infinite;
}
.loading-btn.loading .btn-text {
opacity: 0;
}
.loading-btn.loading .btn-loader {
opacity: 1;
}
.loading-btn.loading {
pointer-events: none;
}
@keyframes spin {
0% { transform: rotate(0deg); }
100% { transform: rotate(360deg); }
}
document.addEventListener('DOMContentLoaded', function() {
const btn = document.getElementById('loadingBtn');
btn.addEventListener('click', function() {
// Add loading state
btn.classList.add('loading');
// Simulate async operation
setTimeout(() => {
btn.classList.remove('loading');
btn.querySelector('.btn-text').textContent = 'Success!';
btn.style.background = '#4CAF50';
btn.style.color = 'white';
// Reset after 2 seconds
setTimeout(() => {
btn.querySelector('.btn-text').textContent = 'Submit';
btn.style.background = '#fff';
btn.style.color = '#333';
}, 2000);
}, 3000);
});
});