Temporizador de Oferta body { font-family: "Poppins", sans-serif; margin: 0; padding-top: 70px; /* espaço para a barra fixa */ background-color: #0b1f2a; } .timer-bar { background-color: #e74c3c; color: #fff; display: flex; align-items: center; justify-content: center; gap: 8px; border-radius: 14px; padding: 12px 18px; font-size: 16px; font-weight: 500; margin: 0 auto; width: 90%; max-width: 500px; box-shadow: 0 3px 10px rgba(0,0,0,0.3); /* 🔥 Deixa a barra sempre visível */ position: fixed; top: 10px; left: 50%; transform: translateX(-50%); z-index: 9999; } .timer-bar svg { width: 18px; height: 18px; } .timer-text { white-space: nowrap; } .timer-time { background: rgba(255, 255, 255, 0.2); padding: 4px 10px; border-radius: 6px; font-weight: 600; min-width: 45px; text-align: center; } @media (max-width: 480px) { .timer-bar { font-size: 14px; padding: 10px 14px; } }
Oferta termina em: 15:00
let duration = 15 * 60; // 15 minutos em segundos const display = document.getElementById('timer'); function startTimer(seconds) { let timer = seconds, minutes, secs; const countdown = setInterval(() => { minutes = Math.floor(timer / 60); secs = timer % 60; minutes = minutes < 10 ? "0" + minutes : minutes; secs = secs < 10 ? "0" + secs : secs; display.textContent = `${minutes}:${secs}`; if (--timer < 0) { clearInterval(countdown); display.textContent = "00:00"; } }, 1000); } startTimer(duration);
Notificações .notification-container { position: fixed; top: 20px; right: 20px; z-index: 9999; font-family: Arial, sans-serif; } .notification { background: #111; color: #fff; padding: 14px 18px; margin-bottom: 10px; border-radius: 8px; box-shadow: 0 10px 25px rgba(0,0,0,0.3); opacity: 0; transform: translateX(100%); animation: slideIn 0.5s forwards, slideOut 0.5s forwards 3.5s; font-size: 14px; max-width: 280px; } @keyframes slideIn { to { opacity: 1; transform: translateX(0); } } @keyframes slideOut { to { opacity: 0; transform: translateX(100%); } } .highlight { color: #00ff9c; font-weight: bold; }
const nomes = [ "Carlos Mucavele", "Ana Chongo", "João Mavota", "Nelson Mabunda", "Rosa Matola", "Paulo Nhachungue", "Maria Chissano", "Elias Mondlane", "Lídia Machel", "António Nhabinde", "Celina Mabote", "Ismael Jafar", "Sandra Muianga", "Tomás Langa", "Helena Manjate", "Fábio Chilundo", "Inês Macamo", "Sérgio Muthemba", "Vanessa Nhancale", "Alfredo Cossa", "Julieta Maluana", "Arnaldo Nhantumbo", "Berta Chongo", "Wilson Mucossa", "Patrícia Mucavel", "Rui Mbanze", "Albertina Nhampossa", "Edson Nhongo", "Margarida Machava", "Délcio Mula", "Alda Mucumbi", "Renato Sitoe", "Noémia Bila", "Cristiano Nhanombe", "Cláudia Macaringue", "Gilberto Nhancale", "Tatiana Uamusse", "Domingos Mavume", "Carla Mucanze", "Ercílio Mabjaia", "Estela Chivale", "Vítor Nguenha", "Rute Nhamussua", "Felisberto Mavota", "Natércia Muianga", "Lucas Nhanala", "Jéssica Cumbana", "Osvaldo Matusse", "Ivone Nhatumbo" ]; let index = 0; function mostrarNotificacao() { if (index >= nomes.length) index = 0; const container = document.getElementById("notificationContainer"); const notification = document.createElement("div"); notification.className = "notification"; notification.innerHTML = ${nomes[index]} pagou a taxa de 197 MT; container.appendChild(notification); setTimeout(() => { notification.remove(); }, 4000); index++; } setInterval(mostrarNotificacao, 4000);
Your cart is currently empty.Continue shopping
Subtotal MT0,00
Total MT0,00

Customer Information

Adicionar Apartment, suite, unit, etc.

Adicionar Apartment, suite, unit, etc.

Shipping Method

Order Summary

Produto
Total
Subtotal MT0,00
Total MT0,00

Método de pagamento

Os seus dados pessoais serão utilizados para processar a sua compra, apoiar a sua experiência em todo este site e para outros fins descritos na nossa política de privacidade.

© 2025 Pry Checkout. Todos os direitos reservados.

Sistema de Pagamento Digital Seguro