Index Of Mujhse Shaadi Karogi (Must See)
.btn border: none; font-size: 1.35rem; font-weight: 600; padding: 0.9rem 1.8rem; border-radius: 60px; cursor: pointer; transition: 0.2s; font-family: inherit; display: inline-flex; align-items: center; gap: 12px; box-shadow: 0 5px 0 rgba(0,0,0,0.1);
// ---------- HELPER: show romantic message & celebration ---------- function showAcceptance() // Celebration effect: confetti & big romantic message questionDiv.innerHTML = "🎉 YOU SAID YES! 🎉 <br> 💑 HAMESHA SATH 💑"; questionDiv.style.background = "#ffdae2"; // Change response area with proposal accepted gifSpan.innerHTML = "💒🎊💒🎊💒"; messagePara.innerHTML = "YAYYY! 💖 TUMNE HAAN KARDI! 💖 <br> Main aapko hamesha pyaar karunga/karungi. Ab shaadi ki taiyari shuru! 🥳✨"; responseDiv.style.background = "#fff0c0"; // Disable buttons after yes yesBtn.disabled = true; noBtn.disabled = true; yesBtn.style.opacity = "0.6"; noBtn.style.opacity = "0.6"; yesBtn.style.cursor = "default"; noBtn.style.cursor = "default"; // Add confetti effect triggerConfetti(); // extra romantic touch: floating hearts createFloatingHearts();
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0, user-scalable=yes"> <title>Mujhse Shaadi Karogi? | Will You Marry Me?</title> <style> * margin: 0; padding: 0; box-sizing: border-box; user-select: none; /* avoid accidental text selection on buttons */ body background: linear-gradient(145deg, #f8b8c0 0%, #f06b7c 100%); min-height: 100vh; display: flex; justify-content: center; align-items: center; font-family: 'Segoe UI', 'Poppins', 'Dancing Script', cursive, system-ui, -apple-system, sans-serif; padding: 1rem; index of mujhse shaadi karogi
.buttons display: flex; flex-wrap: wrap; justify-content: center; gap: 1.4rem; margin: 1.5rem 0 1rem;
<script> (function() // ----- DOM elements ----- const yesBtn = document.getElementById('yesBtn'); const noBtn = document.getElementById('noBtn'); const responseDiv = document.getElementById('responseArea'); const messagePara = document.getElementById('messageText'); const gifSpan = document.querySelector('#responseArea .gif-placeholder'); const card = document.getElementById('proposalCard'); const questionDiv = document.getElementById('questionText'); 💖 <br> Main aapko hamesha pyaar karunga/karungi
// simple floating heart creator function createFloatingHearts() for(let i=0;i<18;i++) let heart = document.createElement('div'); heart.innerHTML = '❤️'; heart.style.position = 'fixed'; heart.style.bottom = '-20px'; heart.style.left = Math.random() * 100 + '%'; heart.style.fontSize = (Math.random() * 24 + 16) + 'px'; heart.style.opacity = '0.8'; heart.style.pointerEvents = 'none'; heart.style.zIndex = '9998'; heart.style.transition = 'transform 4s linear, opacity 3s ease-out'; heart.style.animation = `floatHeart $Math.random() * 3 + 3s linear forwards`; document.body.appendChild(heart); setTimeout(() => heart.remove(); , 5000); // add keyframes dynamically if not exist if(!document.querySelector('#floatHeartStyle')) const styleSheet = document.createElement("style"); styleSheet.id = "floatHeartStyle"; styleSheet.textContent = `@keyframes floatHeart 0% transform: translateY(0) rotate(0deg); opacity: 1; 100% transform: translateY(-100vh) rotate(20deg); opacity: 0; `; document.head.appendChild(styleSheet);
.question background: #fff2f4; border-radius: 60px; padding: 0.7rem 1rem; font-size: 1.8rem; font-weight: bold; color: #a13046; margin: 1.2rem 0 1.5rem; box-shadow: inset 0 0 0 1px white, 0 6px 12px rgba(0,0,0,0.05); | Will You Marry Me
@keyframes pulse 0% transform: scale(1); opacity: 0.9; text-shadow: 0 0 0 rgba(255,80,120,0.4); 50% transform: scale(1.12); opacity: 1; text-shadow: 0 0 12px #ff3366; 100% transform: scale(1); opacity: 0.9;
<div class="response-area" id="responseArea"> <div class="gif-placeholder">🌸💌🌸</div> <div id="messageText">Tap 'Haan' to say yes or 'Nahi' ... but I know your answer 💖</div> </div> <footer>✨ Pyaar se sochna ✨ | for my special one</footer> </div>
// Function to move No button to random position inside buttons container (relative/absolute) let noButtonMovedFlag = false; function moveNoButtonRandomly(force = false) if(!force && noButtonMovedFlag) return; noButtonMovedFlag = true; const btnContainer = document.querySelector('.buttons'); const rect = btnContainer.getBoundingClientRect(); const noRect = noBtn.getBoundingClientRect(); // set positioning to absolute but relative to buttons container noBtn.style.position = 'absolute'; noBtn.style.transition = 'all 0.25s cubic-bezier(0.34, 1.2, 0.64, 1)'; btnContainer.style.position = 'relative'; btnContainer.style.minHeight = '80px'; // random left & top within container boundaries const maxLeft = btnContainer.clientWidth - noBtn.offsetWidth - 10; const maxTop = btnContainer.clientHeight - noBtn.offsetHeight - 5; const randLeft = Math.max(5, Math.floor(Math.random() * maxLeft)); const randTop = Math.max(2, Math.floor(Math.random() * maxTop)); noBtn.style.left = randLeft + 'px'; noBtn.style.top = randTop + 'px'; noBtn.style.margin = '0'; // ensure yes button remains visible & unchanged yesBtn.style.position = 'relative'; yesBtn.style.zIndex = '2'; noBtn.style.zIndex = '10'; // after 1.8 seconds maybe reset? but we want to keep moving on further clicks if(noClickCount > 5) // on each extra no click we re-move const newLeft = Math.max(5, Math.floor(Math.random() * maxLeft)); const newTop = Math.max(2, Math.floor(Math.random() * maxTop)); noBtn.style.left = newLeft + 'px'; noBtn.style.top = newTop + 'px';
.gif-placeholder font-size: 3rem; margin-bottom: 8px;