Compare commits
6 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| f96324265c | |||
| dd686e834f | |||
| 1a07519235 | |||
| 93ad68c78e | |||
| 78be3effc8 | |||
| a658dbf38d |
286
index.html
286
index.html
@ -205,21 +205,95 @@
|
|||||||
transform: translateY(-5px);
|
transform: translateY(-5px);
|
||||||
box-shadow: 0 15px 40px rgba(0,217,255,0.2);
|
box-shadow: 0 15px 40px rgba(0,217,255,0.2);
|
||||||
}
|
}
|
||||||
.exercise-card .video {
|
.exercise-card .exercise-image {
|
||||||
width: 100%;
|
width: 100%;
|
||||||
aspect-ratio: 16/9;
|
aspect-ratio: 16/9;
|
||||||
background: linear-gradient(135deg, #00d9ff, #00ff88);
|
background: linear-gradient(135deg, #00d9ff, #00ff88);
|
||||||
display: flex;
|
display: flex;
|
||||||
align-items: center;
|
align-items: center;
|
||||||
justify-content: center;
|
justify-content: center;
|
||||||
color: #1a1a2e;
|
overflow: hidden;
|
||||||
font-size: 48px;
|
|
||||||
cursor: pointer;
|
cursor: pointer;
|
||||||
}
|
}
|
||||||
|
.exercise-card .exercise-image:hover img {
|
||||||
|
transform: scale(1.1);
|
||||||
|
}
|
||||||
|
.exercise-card .exercise-image img {
|
||||||
|
width: 100%;
|
||||||
|
height: 100%;
|
||||||
|
object-fit: cover;
|
||||||
|
transition: transform 0.3s;
|
||||||
|
}
|
||||||
.exercise-card .info { padding: 20px; }
|
.exercise-card .info { padding: 20px; }
|
||||||
.exercise-card h4 { color: #00ff88; margin-bottom: 10px; }
|
.exercise-card h4 { color: #00ff88; margin-bottom: 10px; }
|
||||||
.exercise-card p { color: rgba(255,255,255,0.7); font-size: 14px; line-height: 1.6; }
|
.exercise-card p { color: rgba(255,255,255,0.7); font-size: 14px; line-height: 1.6; }
|
||||||
|
|
||||||
|
/* Workout Video Section */
|
||||||
|
.workout-video-container {
|
||||||
|
display: grid;
|
||||||
|
grid-template-columns: 1fr 350px;
|
||||||
|
gap: 30px;
|
||||||
|
margin-top: 30px;
|
||||||
|
}
|
||||||
|
@media (max-width: 900px) {
|
||||||
|
.workout-video-container { grid-template-columns: 1fr; }
|
||||||
|
}
|
||||||
|
.video-section {
|
||||||
|
background: rgba(255,255,255,0.05);
|
||||||
|
border-radius: 16px;
|
||||||
|
padding: 30px;
|
||||||
|
border: 1px solid rgba(255,255,255,0.1);
|
||||||
|
}
|
||||||
|
.exercise-list {
|
||||||
|
background: rgba(255,255,255,0.05);
|
||||||
|
border-radius: 16px;
|
||||||
|
padding: 20px;
|
||||||
|
border: 1px solid rgba(255,255,255,0.1);
|
||||||
|
max-height: 600px;
|
||||||
|
overflow-y: auto;
|
||||||
|
}
|
||||||
|
.exercise-item {
|
||||||
|
display: flex;
|
||||||
|
align-items: center;
|
||||||
|
gap: 15px;
|
||||||
|
padding: 15px;
|
||||||
|
margin-bottom: 10px;
|
||||||
|
background: rgba(255,255,255,0.08);
|
||||||
|
border-radius: 12px;
|
||||||
|
cursor: pointer;
|
||||||
|
transition: 0.3s;
|
||||||
|
border: 2px solid transparent;
|
||||||
|
}
|
||||||
|
.exercise-item:hover {
|
||||||
|
background: rgba(255,255,255,0.12);
|
||||||
|
transform: translateX(5px);
|
||||||
|
}
|
||||||
|
.exercise-item.active {
|
||||||
|
border-color: #00ff88;
|
||||||
|
background: rgba(0,255,136,0.1);
|
||||||
|
}
|
||||||
|
.exercise-item-icon {
|
||||||
|
width: 50px;
|
||||||
|
height: 50px;
|
||||||
|
border-radius: 50%;
|
||||||
|
background: linear-gradient(135deg, #00d9ff, #00ff88);
|
||||||
|
display: flex;
|
||||||
|
align-items: center;
|
||||||
|
justify-content: center;
|
||||||
|
font-size: 24px;
|
||||||
|
flex-shrink: 0;
|
||||||
|
}
|
||||||
|
.exercise-item-info h4 {
|
||||||
|
color: #00ff88;
|
||||||
|
margin: 0 0 5px 0;
|
||||||
|
font-size: 16px;
|
||||||
|
}
|
||||||
|
.exercise-item-info p {
|
||||||
|
color: rgba(255,255,255,0.6);
|
||||||
|
font-size: 13px;
|
||||||
|
margin: 0;
|
||||||
|
}
|
||||||
|
|
||||||
/* Music Player */
|
/* Music Player */
|
||||||
.music-player {
|
.music-player {
|
||||||
background: linear-gradient(135deg, rgba(0,217,255,0.2), rgba(0,255,136,0.2));
|
background: linear-gradient(135deg, rgba(0,217,255,0.2), rgba(0,255,136,0.2));
|
||||||
@ -391,6 +465,44 @@
|
|||||||
.calendar-grid { grid-template-columns: repeat(7, 1fr); gap: 5px; }
|
.calendar-grid { grid-template-columns: repeat(7, 1fr); gap: 5px; }
|
||||||
.calendar-day { min-height: 70px; padding: 10px 5px; }
|
.calendar-day { min-height: 70px; padding: 10px 5px; }
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* WhatsApp Floating Button */
|
||||||
|
.whatsapp-float {
|
||||||
|
position: fixed;
|
||||||
|
bottom: 25px;
|
||||||
|
right: 25px;
|
||||||
|
width: 60px;
|
||||||
|
height: 60px;
|
||||||
|
background: linear-gradient(135deg, #25D366, #128C7E);
|
||||||
|
border-radius: 50%;
|
||||||
|
display: flex;
|
||||||
|
align-items: center;
|
||||||
|
justify-content: center;
|
||||||
|
box-shadow: 0 4px 20px rgba(37,211,102,0.4);
|
||||||
|
transition: all 0.3s;
|
||||||
|
z-index: 999;
|
||||||
|
cursor: pointer;
|
||||||
|
}
|
||||||
|
.whatsapp-float:hover {
|
||||||
|
transform: scale(1.1);
|
||||||
|
box-shadow: 0 6px 30px rgba(37,211,102,0.6);
|
||||||
|
}
|
||||||
|
.whatsapp-float svg {
|
||||||
|
width: 35px;
|
||||||
|
height: 35px;
|
||||||
|
}
|
||||||
|
@media (max-width: 768px) {
|
||||||
|
.whatsapp-float {
|
||||||
|
bottom: 20px;
|
||||||
|
right: 20px;
|
||||||
|
width: 55px;
|
||||||
|
height: 55px;
|
||||||
|
}
|
||||||
|
.whatsapp-float svg {
|
||||||
|
width: 30px;
|
||||||
|
height: 30px;
|
||||||
|
}
|
||||||
|
}
|
||||||
</style>
|
</style>
|
||||||
</head>
|
</head>
|
||||||
<body>
|
<body>
|
||||||
@ -412,8 +524,9 @@
|
|||||||
</header>
|
</header>
|
||||||
|
|
||||||
<nav class="nav">
|
<nav class="nav">
|
||||||
<button class="active" onclick="showSection('today')">📅 Сегодня</button>
|
<button class="active" onclick="showSection('workouts')">🎬 Тренировки</button>
|
||||||
<button onclick="showSection('catalog')">🎬 Упражнения</button>
|
<button onclick="showSection('today')">📅 Сегодня</button>
|
||||||
|
<button onclick="showSection('catalog')">📖 Все упражнения</button>
|
||||||
<button onclick="showSection('calendar')">📆 Календарь</button>
|
<button onclick="showSection('calendar')">📆 Календарь</button>
|
||||||
<button onclick="showSection('tracker')">📊 Прогресс</button>
|
<button onclick="showSection('tracker')">📊 Прогресс</button>
|
||||||
<button onclick="showSection('nutrition')">🥗 Питание</button>
|
<button onclick="showSection('nutrition')">🥗 Питание</button>
|
||||||
@ -422,7 +535,7 @@
|
|||||||
</nav>
|
</nav>
|
||||||
|
|
||||||
<!-- СЕКЦИЯ: СЕГОДНЯ -->
|
<!-- СЕКЦИЯ: СЕГОДНЯ -->
|
||||||
<div id="today" class="section active">
|
<div id="today" class="section">
|
||||||
<h2>🔥 Тренировка на сегодня</h2>
|
<h2>🔥 Тренировка на сегодня</h2>
|
||||||
|
|
||||||
<!-- Будильник -->
|
<!-- Будильник -->
|
||||||
@ -489,9 +602,37 @@
|
|||||||
<button class="btn btn-block" onclick="markTodayDone()">✅ Отметить тренировку выполненной</button>
|
<button class="btn btn-block" onclick="markTodayDone()">✅ Отметить тренировку выполненной</button>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<!-- СЕКЦИЯ: УПРАЖНЕНИЯ -->
|
<!-- СЕКЦИЯ: ТРЕНИРОВКИ С ВИДЕО -->
|
||||||
|
<div id="workouts" class="section active">
|
||||||
|
<h2>🎬 Тренировки с видео</h2>
|
||||||
|
<p style="margin-bottom: 20px; opacity: 0.8;">Нажми на упражнение и видео откроется здесь же</p>
|
||||||
|
|
||||||
|
<div class="nav" style="margin-bottom: 20px;">
|
||||||
|
<button class="active" onclick="filterWorkout('all')">Все</button>
|
||||||
|
<button onclick="filterWorkout('posture')">🧘 Осанка</button>
|
||||||
|
<button onclick="filterWorkout('abs')">🔥 Пресс</button>
|
||||||
|
<button onclick="filterWorkout('legs')">🦵 Ноги</button>
|
||||||
|
<button onclick="filterWorkout('arms')">💪 Руки</button>
|
||||||
|
<button onclick="filterWorkout('cardio')">❤️ Кардио</button>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="workout-video-container">
|
||||||
|
<div class="video-section">
|
||||||
|
<div id="main-video-player" style="background: rgba(0,0,0,0.3); border-radius: 16px; padding: 20px; text-align: center;">
|
||||||
|
<div style="font-size: 64px; opacity: 0.5;">📷</div>
|
||||||
|
<p style="margin-top: 20px; opacity: 0.7;">Выберите упражнение для просмотра фото</p>
|
||||||
|
</div>
|
||||||
|
<h3 id="current-exercise-name" style="margin-top: 20px; color: #00ff88;"></h3>
|
||||||
|
<p id="current-exercise-desc" style="opacity: 0.8;"></p>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="exercise-list" id="workout-exercise-list"></div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<!-- СЕКЦИЯ: КАТАЛОГ -->
|
||||||
<div id="catalog" class="section">
|
<div id="catalog" class="section">
|
||||||
<h2>🎬 Каталог упражнений</h2>
|
<h2>📖 Все упражнения</h2>
|
||||||
<div class="exercise-grid" id="exercise-catalog"></div>
|
<div class="exercise-grid" id="exercise-catalog"></div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
@ -591,39 +732,39 @@
|
|||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
<!-- WhatsApp кнопка -->
|
||||||
|
<a href="https://wa.me/77755084131?text=Привет!%20Хочу%20записаться%20на%20трансформацию%20тела!" class="whatsapp-float" target="_blank">
|
||||||
|
<svg viewBox="0 0 32 32" width="32" height="32" fill="white">
|
||||||
|
<path d="M16 0c-8.837 0-16 7.163-16 16 0 2.825 0.737 5.607 2.137 8.048l-2.137 7.952 7.933-2.127c2.42 1.37 5.173 2.127 8.067 2.127 8.837 0 16-7.163 16-16s-7.163-16-16-16zM16 29.467c-2.482 0-4.908-0.646-7.07-1.87l-0.507-0.292-4.713 1.262 1.262-4.669-0.292-0.508c-1.207-2.100-1.847-4.507-1.847-6.924 0-7.435 6.065-13.5 13.5-13.5s13.5 6.065 13.5 13.5-6.065 13.5-13.5 13.5z"/>
|
||||||
|
<path d="M22.756 18.297c-0.228-0.114-1.347-0.664-1.554-0.741-0.207-0.076-0.357-0.114-0.507 0.114-0.15 0.228-0.581 0.741-0.712 0.892-0.132 0.151-0.263 0.17-0.491 0.056-0.228-0.114-0.963-0.355-1.835-1.133-0.677-0.605-1.137-1.354-1.268-1.582-0.132-0.228-0.014-0.351 0.099-0.464 0.103-0.102 0.228-0.265 0.341-0.398 0.113-0.132 0.151-0.227 0.227-0.379 0.076-0.151 0.038-0.284-0.019-0.398-0.057-0.114-0.507-1.222-0.695-1.675-0.183-0.439-0.369-0.379-0.507-0.386-0.131-0.006-0.283-0.007-0.434-0.007s-0.397 0.057-0.606 0.284c-0.208 0.227-0.796 0.777-0.796 1.894s0.815 2.193 0.927 2.344c0.113 0.151 1.603 2.447 3.885 3.431 0.542 0.234 0.964 0.373 1.294 0.478 0.546 0.174 1.044 0.149 1.437 0.091 0.439-0.066 1.347-0.549 1.537-1.081 0.19-0.532 0.19-0.988 0.133-1.082-0.057-0.094-0.208-0.151-0.436-0.265z"/>
|
||||||
|
</svg>
|
||||||
|
</a>
|
||||||
|
|
||||||
<script>
|
<script>
|
||||||
// === ДАННЫЕ ===
|
// === ДАННЫЕ ===
|
||||||
const exercises = [
|
const exercises = [
|
||||||
// Осанка и спина (4 упражнения)
|
// Осанка и спина (4 упражнения)
|
||||||
{ id: 1, name: "Кошка-корова", category: "posture", focus: "Гиперлордоз, гибкость спины", time: "2 мин", reps: "10-12 повторений", video: "https://www.youtube.com/embed/2qhJb8SvHjM", desc: "Медленно прогибай спину вверх, затем вниз. Дыхание ровное." },
|
{ id: 1, name: "Кошка-корова", category: "posture", focus: "Гиперлордоз, гибкость спины", time: "2 мин", reps: "10-12 повторений", image: "https://images.unsplash.com/photo-1544367563-12123d8965cd?w=800", desc: "Медленно прогибай спину вверх, затем вниз. Дыхание ровное." },
|
||||||
{ id: 2, name: "Стена у стены", category: "posture", focus: "Осанка", time: "1 мин", reps: "3 подхода", video: "https://www.youtube.com/embed/k_FZCvsL53w", desc: "Встань спиной к стене, прижми затылок, лопатки, ягодицы и пятки." },
|
{ id: 2, name: "Стена у стены", category: "posture", focus: "Осанка", time: "1 мин", reps: "3 подхода", image: "https://images.unsplash.com/photo-1518611012118-696072aa579a?w=800", desc: "Встань спиной к стене, прижми затылок, лопатки, ягодицы и пятки." },
|
||||||
{ id: 3, name: "Лодочка", category: "posture", focus: "Спина, осанка", time: "1 мин", reps: "10 повторений", video: "https://www.youtube.com/embed/4K0e1EjwRnM", desc: "Лёжа на животе, одновременно поднимай руки и ноги." },
|
{ id: 3, name: "Лодочка", category: "posture", focus: "Спина, осанка", time: "1 мин", reps: "10 повторений", image: "https://images.unsplash.com/photo-1599447421405-0c1a11438018?w=800", desc: "Лёжа на животе, одновременно поднимай руки и ноги." },
|
||||||
{ id: 4, name: "Тяга к стене", category: "posture", focus: "Осанка, плечи", time: "2 мин", reps: "15 повторений", video: "https://www.youtube.com/embed/aS5C2nQa3vM", desc: "Стоя у стены, своди лопатки и тянись руками вверх." },
|
{ id: 4, name: "Тяга к стене", category: "posture", focus: "Осанка, плечи", time: "2 мин", reps: "15 повторений", image: "https://images.unsplash.com/photo-1571019613454-1cb2f99b2d8b?w=800", desc: "Стоя у стены, своди лопатки и тянись руками вверх." },
|
||||||
|
{ id: 5, name: "Планка на предплечьях", category: "abs", focus: "Кор, осанка", time: "60 сек", reps: "3 подхода", image: "https://images.unsplash.com/photo-1517836357463-d25dfeac3438?w=800", desc: "Держи тело ровно, не прогибай поясницу." },
|
||||||
// Пресс и живот (5 упражнений)
|
{ id: 6, name: "Вакуум", category: "abs", focus: "Плоский живот", time: "2 мин", reps: "5 подходов по 15 сек", image: "https://images.unsplash.com/photo-1574680096141-1cddd32e04ca?w=800", desc: "Выдохни весь воздух, втяни живот под рёбра, держи." },
|
||||||
{ id: 5, name: "Планка на предплечьях", category: "abs", focus: "Кор, осанка", time: "60 сек", reps: "3 подхода", video: "https://www.youtube.com/embed/pSHjTRCQxIw", desc: "Держи тело ровно, не прогибай поясницу." },
|
{ id: 7, name: "Велосипед", category: "abs", focus: "Косые мышцы, бока", time: "2 мин", reps: "20 повторений", image: "https://images.unsplash.com/photo-1434596922112-19c288801c94?w=800", desc: "Лёжа на спине, крути педали, касайся локтем противоположного колена." },
|
||||||
{ id: 6, name: "Вакуум", category: "abs", focus: "Плоский живот", time: "2 мин", reps: "5 подходов по 15 сек", video: "https://www.youtube.com/embed/8QcXlB6kXhE", desc: "Выдохни весь воздух, втяни живот под рёбра, держи." },
|
{ id: 8, name: "Скручивания", category: "abs", focus: "Пресс", time: "2 мин", reps: "15-20 повторений", image: "https://images.unsplash.com/photo-1598289431512-b97b0917affc?w=800", desc: "Поднимай только лопатки, поясница прижата." },
|
||||||
{ id: 7, name: "Велосипед", category: "abs", focus: "Косые мышцы, бока", time: "2 мин", reps: "20 повторений", video: "https://www.youtube.com/embed/1obhK7pOwEw", desc: "Лёжа на спине, крути педали, касайся локтем противоположного колена." },
|
{ id: 9, name: "Боковая планка", category: "abs", focus: "Бока, косые", time: "30 сек", reps: "3 подхода на сторону", image: "https://images.unsplash.com/photo-1520218206969-345ace7298a3?w=800", desc: "Держи тело в линию, не опускай таз." },
|
||||||
{ id: 8, name: "Скручивания", category: "abs", focus: "Пресс", time: "2 мин", reps: "15-20 повторений", video: "https://www.youtube.com/embed/Xyd_fa5zoEU", desc: "Поднимай только лопатки, поясница прижата." },
|
{ id: 10, name: "Приседания", category: "legs", focus: "Ноги, ягодицы", time: "3 мин", reps: "20 повторений", image: "https://images.unsplash.com/photo-1434608519344-49d77a699ded?w=800", desc: "Спина ровная, колени не выходят за носки." },
|
||||||
{ id: 9, name: "Боковая планка", category: "abs", focus: "Бока, косые", time: "30 сек", reps: "3 подхода на сторону", video: "https://www.youtube.com/embed/3wVknM4sLgM", desc: "Держи тело в линию, не опускай таз." },
|
{ id: 11, name: "Выпады", category: "legs", focus: "Ноги, ягодицы", time: "3 мин", reps: "12 на ногу", image: "https://images.unsplash.com/photo-1438029071396-1e831a7fa6d8?w=800", desc: "Шагай вперёд, опускай колено почти до пола." },
|
||||||
|
{ id: 12, name: "Ягодичный мост", category: "legs", focus: "Ягодицы", time: "2 мин", reps: "20 повторений", image: "https://images.unsplash.com/photo-1598971639058-211a73287138?w=800", desc: "Лёжа на спине, поднимай таз, сжимай ягодицы." },
|
||||||
// Ноги и ягодицы (4 упражнения)
|
{ id: 13, name: "Махи ногой", category: "legs", focus: "Ягодицы, бока", time: "2 мин", reps: "15 на ногу", image: "https://images.unsplash.com/photo-1518310383802-640c2de396b2?w=800", desc: "Стоя на четвереньках, поднимай ногу в сторону." },
|
||||||
{ id: 10, name: "Приседания", category: "legs", focus: "Ноги, ягодицы", time: "3 мин", reps: "20 повторений", video: "https://www.youtube.com/embed/U0t2KK8vLzU", desc: "Спина ровная, колени не выходят за носки." },
|
{ id: 14, name: "Отжимания от стены", category: "arms", focus: "Трицепс, грудь", time: "2 мин", reps: "15 повторений", image: "https://images.unsplash.com/photo-1581009137042-c552e485697a?w=800", desc: "Чем дальше ноги от стены, тем сложнее." },
|
||||||
{ id: 11, name: "Выпады", category: "legs", focus: "Ноги, ягодицы", time: "3 мин", reps: "12 на ногу", video: "https://www.youtube.com/embed/QOVaTkbz9fA", desc: "Шагай вперёд, опускай колено почти до пола." },
|
{ id: 15, name: "Обратные отжимания", category: "arms", focus: "Трицепс", time: "2 мин", reps: "12 повторений", image: "https://images.unsplash.com/photo-1581009146145-b5ef050c2e1e?w=800", desc: "Сидя на полу, руки сзади на стуле, опускай таз." },
|
||||||
{ id: 12, name: "Ягодичный мост", category: "legs", focus: "Ягодицы", time: "2 мин", reps: "20 повторений", video: "https://www.youtube.com/embed/7iI4oVXQkXQ", desc: "Лёжа на спине, поднимай таз, сжимай ягодицы." },
|
{ id: 16, name: "Круговые вращения", category: "arms", focus: "Плечи", time: "1 мин", reps: "20 вперёд, 20 назад", image: "https://images.unsplash.com/photo-1599058945522-28d584b6f0ff?w=800", desc: "Руки в стороны, делай маленькие круги." },
|
||||||
{ id: 13, name: "Махи ногой", category: "legs", focus: "Ягодицы, бока", time: "2 мин", reps: "15 на ногу", video: "https://www.youtube.com/embed/4vA8R0eXzQY", desc: "Стоя на четвереньках, поднимай ногу в сторону." },
|
{ id: 17, name: "Боксирование", category: "arms", focus: "Руки, кардио", time: "2 мин", reps: "50 ударов", image: "https://images.unsplash.com/photo-1549719386-74dfcbf7dbed?w=800", desc: "Быстро боксируй в воздухе, держи темп." },
|
||||||
|
{ id: 18, name: "Джампинг Джек", category: "cardio", focus: "Сжигание жира", time: "2 мин", reps: "40 повторений", image: "https://images.unsplash.com/photo-1452626038306-3aae55aa3582?w=800", desc: "Прыжки с хлопком над головой." },
|
||||||
// Руки (4 упражнения)
|
{ id: 19, name: "Бег на месте", category: "cardio", focus: "Кардио", time: "3 мин", reps: "Высоко поднимай колени", image: "https://images.unsplash.com/photo-1476480862126-209bfaa8edc8?w=800", desc: "Быстрый темп, руки работают." },
|
||||||
{ id: 14, name: "Отжимания от стены", category: "arms", focus: "Трицепс, грудь", time: "2 мин", reps: "15 повторений", video: "https://www.youtube.com/embed/IODxDxX7oi4", desc: "Чем дальше ноги от стены, тем сложнее." },
|
{ id: 20, name: "Бёрпи (облегчённый)", category: "cardio", focus: "Всё тело", time: "2 мин", reps: "10 повторений", image: "https://images.unsplash.com/photo-1459908676235-d5f4719680b8?w=800", desc: "Присядь, шаг назад в планку, шаг вперёд, прыжок." },
|
||||||
{ id: 15, name: "Обратные отжимания", category: "arms", focus: "Трицепс", time: "2 мин", reps: "12 повторений", video: "https://www.youtube.com/embed/6pS5E1y5_7E", desc: "Сидя на полу, руки сзади на стуле, опускай таз." },
|
{ id: 21, name: "Ножницы", category: "abs", focus: "Нижний пресс", time: "1 мин", reps: "3 подхода", image: "https://images.unsplash.com/photo-1566241440091-ec10de8db2d1?w=800", desc: "Лёжа на спине, скрещивай ноги в воздухе." }
|
||||||
{ id: 16, name: "Круговые вращения", category: "arms", focus: "Плечи", time: "1 мин", reps: "20 вперёд, 20 назад", video: "https://www.youtube.com/embed/qX9YfKzIwHs", desc: "Руки в стороны, делай маленькие круги." },
|
|
||||||
{ id: 17, name: "Боксирование", category: "arms", focus: "Руки, кардио", time: "2 мин", reps: "50 ударов", video: "https://www.youtube.com/embed/hP2uH4XnJdM", desc: "Быстро боксируй в воздухе, держи темп." },
|
|
||||||
|
|
||||||
// Кардио (4 упражнения)
|
|
||||||
{ id: 18, name: "Джампинг Джек", category: "cardio", focus: "Сжигание жира", time: "2 мин", reps: "40 повторений", video: "https://www.youtube.com/embed/c4DAnljDykF", desc: "Прыжки с хлопком над головой." },
|
|
||||||
{ id: 19, name: "Бег на месте", category: "cardio", focus: "Кардио", time: "3 мин", reps: "Высоко поднимай колени", video: "https://www.youtube.com/embed/2qTF3S1Qh8M", desc: "Быстрый темп, руки работают." },
|
|
||||||
{ id: 20, name: "Бёрпи (облегчённый)", category: "cardio", focus: "Всё тело", time: "2 мин", reps: "10 повторений", video: "https://www.youtube.com/embed/auBL5Jk54gw", desc: "Присядь, шаг назад в планку, шаг вперёд, прыжок." },
|
|
||||||
{ id: 21, name: "Ножницы", category: "abs", focus: "Нижний пресс", time: "1 мин", reps: "3 подхода", video: "https://www.youtube.com/embed/02eKNa3NOOo", desc: "Лёжа на спине, скрещивай ноги в воздухе." }
|
|
||||||
];
|
];
|
||||||
|
|
||||||
const workoutPlan = [
|
const workoutPlan = [
|
||||||
@ -687,7 +828,7 @@
|
|||||||
container.innerHTML = today.exercises.map(exId => {
|
container.innerHTML = today.exercises.map(exId => {
|
||||||
const ex = exercises.find(e => e.id === exId);
|
const ex = exercises.find(e => e.id === exId);
|
||||||
return '<div class="exercise-card">' +
|
return '<div class="exercise-card">' +
|
||||||
'<div class="video" onclick="openVideo(' + ex.id + ')">▶</div>' +
|
'<div class="exercise-image" onclick="openExercise(' + ex.id + ')"><img src="' + ex.image + '" alt="' + ex.name + '" style="width:100%;height:100%;object-fit:cover;"></div>' +
|
||||||
'<div class="info">' +
|
'<div class="info">' +
|
||||||
'<h4>' + ex.name + '</h4>' +
|
'<h4>' + ex.name + '</h4>' +
|
||||||
'<p>🎯 ' + ex.focus + ' • ⏱️ ' + ex.time + '</p>' +
|
'<p>🎯 ' + ex.focus + ' • ⏱️ ' + ex.time + '</p>' +
|
||||||
@ -699,7 +840,7 @@
|
|||||||
function renderCatalog() {
|
function renderCatalog() {
|
||||||
document.getElementById('exercise-catalog').innerHTML = exercises.map(ex =>
|
document.getElementById('exercise-catalog').innerHTML = exercises.map(ex =>
|
||||||
'<div class="exercise-card">' +
|
'<div class="exercise-card">' +
|
||||||
'<div class="video" onclick="openVideo(' + ex.id + ')">▶</div>' +
|
'<div class="exercise-image" onclick="openExercise(' + ex.id + ')"><img src="' + ex.image + '" alt="' + ex.name + '" style="width:100%;height:100%;object-fit:cover;"></div>' +
|
||||||
'<div class="info">' +
|
'<div class="info">' +
|
||||||
'<h4>' + ex.name + '</h4>' +
|
'<h4>' + ex.name + '</h4>' +
|
||||||
'<p>🎯 ' + ex.focus + ' • ⏱️ ' + ex.time + '</p>' +
|
'<p>🎯 ' + ex.focus + ' • ⏱️ ' + ex.time + '</p>' +
|
||||||
@ -708,10 +849,15 @@
|
|||||||
).join('');
|
).join('');
|
||||||
}
|
}
|
||||||
|
|
||||||
function openVideo(id) {
|
function openExercise(id) {
|
||||||
const ex = exercises.find(e => e.id === id);
|
const ex = exercises.find(e => e.id === id);
|
||||||
document.getElementById('modal-title').textContent = ex.name;
|
document.getElementById('modal-title').textContent = ex.name;
|
||||||
document.getElementById('modal-video').innerHTML = '<iframe width="100%" height="400" src="' + ex.video + '" frameborder="0" allowfullscreen style="border-radius:12px;"></iframe>';
|
document.getElementById('modal-video').innerHTML =
|
||||||
|
'<div style="text-align:center;">' +
|
||||||
|
'<img src="' + ex.image + '" alt="' + ex.name + '" style="width:100%;border-radius:12px;object-fit:cover;">' +
|
||||||
|
'<br><br>' +
|
||||||
|
'<button onclick="playAudio(' + id + ')" style="background:linear-gradient(135deg,#00d9ff,#00ff88);border:none;border-radius:30px;padding:14px 32px;font-size:18px;font-weight:700;cursor:pointer;display:inline-flex;align-items:center;gap:10px;box-shadow:0 4px 15px rgba(0,217,255,0.4);transition:0.3s;" onmouseover="this.style.transform=\'scale(1.05\')" onmouseout="this.style.transform=\'scale(1)\'">🔊 Слушать инструкцию</button>' +
|
||||||
|
'</div>';
|
||||||
document.getElementById('modal-desc').textContent = ex.desc;
|
document.getElementById('modal-desc').textContent = ex.desc;
|
||||||
document.getElementById('video-modal').classList.add('active');
|
document.getElementById('video-modal').classList.add('active');
|
||||||
}
|
}
|
||||||
@ -721,6 +867,61 @@
|
|||||||
document.getElementById('modal-video').innerHTML = '';
|
document.getElementById('modal-video').innerHTML = '';
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// === ТРЕНИРОВКИ С ВИДЕО ===
|
||||||
|
let currentFilter = 'all';
|
||||||
|
|
||||||
|
function filterWorkout(category) {
|
||||||
|
currentFilter = category;
|
||||||
|
document.querySelectorAll('.nav button').forEach(btn => btn.classList.remove('active'));
|
||||||
|
event.target.classList.add('active');
|
||||||
|
renderWorkoutList();
|
||||||
|
}
|
||||||
|
|
||||||
|
function renderWorkoutList() {
|
||||||
|
const list = document.getElementById('workout-exercise-list');
|
||||||
|
const filtered = currentFilter === 'all' ? exercises : exercises.filter(ex => ex.category === currentFilter);
|
||||||
|
|
||||||
|
list.innerHTML = filtered.map(ex =>
|
||||||
|
'<div class="exercise-item" onclick="playVideo(' + ex.id + ')">' +
|
||||||
|
'<div class="exercise-item-icon">📷</div>' +
|
||||||
|
'<div class="exercise-item-info">' +
|
||||||
|
'<h4>' + ex.name + '</h4>' +
|
||||||
|
'<p>🎯 ' + ex.focus + ' • ⏱️ ' + ex.time + '</p>' +
|
||||||
|
'</div></div>'
|
||||||
|
).join('');
|
||||||
|
}
|
||||||
|
|
||||||
|
function playVideo(id) {
|
||||||
|
const ex = exercises.find(e => e.id === id);
|
||||||
|
|
||||||
|
document.getElementById('main-video-player').innerHTML =
|
||||||
|
'<div style="position:relative;">' +
|
||||||
|
'<img src="' + ex.image + '" alt="' + ex.name + '" style="width:100%;border-radius:12px;object-fit:cover;">' +
|
||||||
|
'<button onclick="playAudio(' + id + ')" style="position:absolute;bottom:20px;right:20px;background:linear-gradient(135deg,#00d9ff,#00ff88);border:none;border-radius:30px;padding:12px 24px;font-size:16px;font-weight:700;cursor:pointer;display:flex;align-items:center;gap:8px;box-shadow:0 4px 15px rgba(0,217,255,0.4);transition:0.3s;" onmouseover="this.style.transform=\'scale(1.05\')" onmouseout="this.style.transform=\'scale(1)\'">🔊 Слушать</button>' +
|
||||||
|
'</div>';
|
||||||
|
document.getElementById('current-exercise-name').textContent = ex.name;
|
||||||
|
document.getElementById('current-exercise-desc').innerHTML = '<strong>🎯 ' + ex.focus + '</strong> • ⏱️ ' + ex.time + ' • ' + ex.reps + '<br><br>' + ex.desc;
|
||||||
|
|
||||||
|
document.querySelectorAll('.exercise-item').forEach(item => item.classList.remove('active'));
|
||||||
|
event.currentTarget.classList.add('active');
|
||||||
|
}
|
||||||
|
|
||||||
|
function playAudio(id) {
|
||||||
|
const ex = exercises.find(e => e.id === id);
|
||||||
|
const text = ex.name + '. ' + ex.desc + '. Повторы: ' + ex.reps + '. Время: ' + ex.time;
|
||||||
|
|
||||||
|
if ('speechSynthesis' in window) {
|
||||||
|
window.speechSynthesis.cancel();
|
||||||
|
const utterance = new SpeechSynthesisUtterance(text);
|
||||||
|
utterance.lang = 'ru-RU';
|
||||||
|
utterance.rate = 0.9;
|
||||||
|
utterance.pitch = 1;
|
||||||
|
window.speechSynthesis.speak(utterance);
|
||||||
|
} else {
|
||||||
|
alert('Ваш браузер не поддерживает синтез речи');
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
function markTodayDone() {
|
function markTodayDone() {
|
||||||
const todayStr = new Date().toDateString();
|
const todayStr = new Date().toDateString();
|
||||||
if (!progressData.completedDays.includes(todayStr)) {
|
if (!progressData.completedDays.includes(todayStr)) {
|
||||||
@ -929,6 +1130,9 @@
|
|||||||
|
|
||||||
// Проверка каждую минуту
|
// Проверка каждую минуту
|
||||||
setInterval(checkAlarm, 60000);
|
setInterval(checkAlarm, 60000);
|
||||||
|
|
||||||
|
// Инициализация тренировки с видео при загрузке
|
||||||
|
renderWorkoutList();
|
||||||
</script>
|
</script>
|
||||||
</body>
|
</body>
|
||||||
</html>
|
</html>
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user