Testhtml / index.html
Aleksmorshen's picture
Update index.html
0414504 verified
<!DOCTYPE html>
<html lang="ru">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Morshen Alpha</title>
<link rel="manifest" href="/manifest.json">
<link rel="stylesheet" href="style.css">
<link rel="apple-touch-icon" href="/icon.png">
<meta name="apple-mobile-web-app-capable" content="yes">
<meta name="apple-mobile-web-app-status-bar-style" content="default">
<link rel="icon" type="image/png" sizes="192x192" href="/icon.png">
<style>
/* Общие стили */
body {
padding: 0;
font-family: -apple-system, BlinkMacSystemFont, "Arial", sans-serif;
margin: 0;
overflow: hidden; /* Предотвращает полосы прокрутки */
}
h1 {
font-size: 1.2rem;
margin-top: 0;
}
p {
color: rgb(107, 114, 128);
font-size: 0.9rem;
margin-bottom: 0.5rem;
margin-top: 0.25rem;
}
.card {
max-width: 100%;
margin: 0 auto;
padding: 0.5rem;
border: 1px solid lightgray;
border-radius: 0.5rem;
}
.card p:last-child {
margin-bottom: 0;
}
/* Адаптивные стили */
@media (min-width: 640px) {
body {
padding: 0;
}
h1 {
font-size: 1.6rem;
}
p {
font-size: 1rem;
}
.card {
max-width: 620px;
padding: 1rem;
border-radius: 1rem;
}
}
/* Стили для iframe */
iframe {
position: fixed;
top: 0;
left: 0;
width: 100%;
height: 100%;
border: none;
margin: 0;
padding: 0;
}
/* Стили для кнопок установки */
#installButton, #iosInstallPrompt {
display: none;
position: fixed;
bottom: 20px;
left: 50%;
transform: translateX(-50%);
padding: 12px 20px;
background-color: #007bff;
color: white;
border: none;
border-radius: 5px;
cursor: pointer;
z-index: 1000;
font-size: 16px;
text-transform: uppercase;
letter-spacing: 1px;
box-shadow: 0 0 10px #007bff;
transition: box-shadow 0.3s ease-in-out, transform 0.3s ease-in-out;
}
/* Hover эффект с усилением свечения и небольшим подъемом */
#installButton:hover, #iosInstallPrompt:hover {
box-shadow: 0 0 20px #007bff, 0 0 30px #007bff;
transform: translateX(-50%) scale(1.05); /* Небольшое увеличение */
}
/* Дополнительный эффект пульсации с использованием keyframes */
@keyframes pulse {
0% {
box-shadow: 0 0 10px #007bff;
}
50% {
box-shadow: 0 0 20px #007bff, 0 0 30px #007bff;
}
100% {
box-shadow: 0 0 10px #007bff;
}
}
/* Применение анимации к кнопке */
#installButton.pulse-animation, #iosInstallPrompt.pulse-animation {
animation: pulse 2s infinite;
}
#iosInstallPrompt {
background-color: #28a745;
box-shadow: 0 0 10px #28a745;
}
#iosInstallPrompt:hover {
box-shadow: 0 0 20px #28a745, 0 0 30px #28a745;
}
</style>
</head>
<body>
<iframe
src="https://v0-morshen-alpha-landing-xffod9.vercel.app/"
frameborder="0"
allowfullscreen></iframe>
<button id="installButton">Установить приложение</button>
<button id="iosInstallPrompt">Установить приложение </button>
<script>
let deferredPrompt;
const installButton = document.getElementById('installButton');
const iosInstallPrompt = document.getElementById('iosInstallPrompt');
function isIos() {
return /iphone|ipad|ipod/i.test(navigator.userAgent);
}
function isInStandaloneMode() {
return window.matchMedia('(display-mode: standalone)').matches || window.navigator.standalone;
}
if (isIos() && !isInStandaloneMode()) {
iosInstallPrompt.style.display = 'block';
installButton.style.display = 'none';
iosInstallPrompt.classList.add('pulse-animation');
iosInstallPrompt.addEventListener('click', () => {
alert("1. Нажмите кнопку 'Поделиться' (иконка внизу Safari).\n2. на экран Домой'.\n3. Подтвердите установку.");
});
} else {
installButton.style.display = deferredPrompt ? 'block' : 'none';
iosInstallPrompt.style.display = 'none';
if (deferredPrompt) {
installButton.classList.add('pulse-animation');
}
}
window.addEventListener('beforeinstallprompt', (event) => {
event.preventDefault();
deferredPrompt = event;
installButton.style.display = 'block';
installButton.addEventListener('click', async () => {
deferredPrompt.prompt();
const { outcome } = await deferredPrompt.userChoice;
if (outcome === 'accepted') {
console.log('User accepted the install prompt');
} else {
console.log('User dismissed the install prompt');
}
deferredPrompt = null;
installButton.style.display = 'none';
installButton.classList.remove('pulse-animation'); // Удаляем класс после установки
});
});
if ('serviceWorker' in navigator) {
window.addEventListener('load', () => {
navigator.serviceWorker.register('/service-worker.js')
.then((registration) => {
console.log('Service Worker registered:', registration);
})
.catch((error) => {
console.log('Service Worker registration failed:', error);
});
});
}
</script>
</body>
</html>