374 lines
19 KiB
HTML
374 lines
19 KiB
HTML
<!DOCTYPE html>
|
||
<html lang="ru">
|
||
<head>
|
||
<meta charset="utf-8" />
|
||
<meta name="viewport" content="width=device-width, initial-scale=1" />
|
||
<title>cyxaruk shop catalog</title>
|
||
<link rel="shortcut icon" href="img/favicon.ico" type="image/x-icon">
|
||
<link href="https://cdn.jsdelivr.net/npm/bootstrap@5.3.0/dist/css/bootstrap.min.css" rel="stylesheet">
|
||
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/bootstrap-icons@1.10.0/font/bootstrap-icons.css">
|
||
<link rel="stylesheet" href="./styles.css" />
|
||
<style>
|
||
.like-btn.liked {
|
||
color: #000000 !important;
|
||
border-color: #dc3545 !important;
|
||
}
|
||
.like-btn.liked i {
|
||
color: #dc3545 !important;
|
||
}
|
||
/* Черная оконтовка при наведении на нажатую кнопку */
|
||
.like-btn.liked:hover i {
|
||
text-shadow: 0 0 2px #000000,
|
||
0 0 2px #000000,
|
||
0 0 2px #000000;
|
||
}
|
||
/* Плавное изменение */
|
||
.like-btn i {
|
||
transition: text-shadow 0.2s ease;
|
||
}
|
||
</style>
|
||
</head>
|
||
<body>
|
||
<nav class="navbar navbar-expand-lg navbar-dark" style="background-color: #00264d;">
|
||
<div class="container">
|
||
<a class="navbar-brand d-flex align-items-center" href="main.html">
|
||
<img src="img/cyxaruk shop logo.jpg" alt="логотип" width="50" height="50" class="rounded-circle me-2">
|
||
<span class="fw-bold">cyxaruk shop</span>
|
||
</a>
|
||
<button class="navbar-toggler" type="button" data-bs-toggle="collapse" data-bs-target="#navbarNav">
|
||
<span class="navbar-toggler-icon"></span>
|
||
</button>
|
||
<div class="collapse navbar-collapse" id="navbarNav">
|
||
<ul class="navbar-nav ms-auto">
|
||
<li class="nav-item dropdown">
|
||
<a class="nav-link dropdown-toggle" href="catalog.html" id="navbarDropdown" role="button"
|
||
data-bs-toggle="dropdown" aria-expanded="false">
|
||
<i class="bi bi-list-ul me-1"></i>Каталог
|
||
</a>
|
||
<ul class="dropdown-menu" aria-labelledby="navbarDropdown">
|
||
<li><a class="dropdown-item" href="catalog.html"><i class="bi bi-gender-male me-2"></i>Для мужчин</a></li>
|
||
<li><a class="dropdown-item" href="catalog.html"><i class="bi bi-gender-female me-2"></i>Для женщин</a></li>
|
||
<li><hr class="dropdown-divider"></li>
|
||
<li><a class="dropdown-item" href="catalog.html"><i class="bi bi-globe me-2"></i>Заказ из-за границы</a></li>
|
||
</ul>
|
||
</li>
|
||
<li class="nav-item">
|
||
<a class="nav-link" href="contacts.html"><i class="bi bi-telephone me-1"></i>Контакты</a>
|
||
</li>
|
||
<li class="nav-item">
|
||
<a class="nav-link" href="likes.html"><i class="bi bi-heart me-1"></i>Избранное</a>
|
||
</li>
|
||
<li class="nav-item">
|
||
<a class="nav-link" href="basket.html"><i class="bi bi-cart me-1"></i>Корзина</a>
|
||
</li>
|
||
</ul>
|
||
</div>
|
||
</div>
|
||
</nav>
|
||
|
||
<style>
|
||
@media (min-width: 992px) {
|
||
.navbar .dropdown:hover .dropdown-menu {
|
||
display: block;
|
||
}
|
||
.navbar .dropdown .dropdown-menu {
|
||
margin-top: 0;
|
||
}
|
||
}
|
||
</style>
|
||
|
||
<main class="container my-4">
|
||
<div class="accordion" id="accordionExample" >
|
||
<div class="accordion-item" >
|
||
<h2 class="accordion-header" id="headingOne" >
|
||
<button class="accordion-button" type="button" data-bs-toggle="collapse" style="background-color: #b0d8ff;" data-bs-target="#collapseOne" aria-expanded="true" aria-controls="collapseOne">
|
||
Добавить товар
|
||
</button>
|
||
</h2>
|
||
<div id="collapseOne" class="accordion-collapse collapse show" aria-labelledby="headingOne" data-bs-parent="#accordionExample">
|
||
<div class="accordion-body">
|
||
<div class="card mb-4 border-0 shadow">
|
||
<div class="card-body">
|
||
<form id="addProductForm" class="row g-3">
|
||
<div class="col-md-6">
|
||
<label for="productName" class="form-label">Название товара</label>
|
||
<input type="text" class="form-control" id="productName" required>
|
||
</div>
|
||
<div class="col-md-6">
|
||
<label for="productPrice" class="form-label">Цена</label>
|
||
<input type="text" class="form-control" id="productPrice" required>
|
||
</div>
|
||
<div class="col-12">
|
||
<label for="productDescription" class="form-label">Описание</label>
|
||
<textarea class="form-control" id="productDescription" rows="3" required></textarea>
|
||
</div>
|
||
<div class="col-12">
|
||
<label for="productImage" class="form-label">Ссылка на изображение</label>
|
||
<input type="text" class="form-control" id="productImage" required>
|
||
</div>
|
||
<div class="col-12">
|
||
<button type="submit" class="btn" style="background-color: #00264d; color: white;">
|
||
<i class="bi bi-check-circle me-2"></i>Добавить товар
|
||
</button>
|
||
</div>
|
||
</form>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
|
||
<h1 class="text-center mb-4 mt-2">Каталог товаров</h1>
|
||
<!-- Карточки товаров -->
|
||
<div class="row row-cols-1 row-cols-md-2 row-cols-lg-3 g-4 mb-5" id="productsContainer">
|
||
<!-- Карточка товара 1 -->
|
||
<div class="col">
|
||
<div class="card h-100 border-0 shadow">
|
||
<img src="img/stonik.jpg" class="card-img-top" alt="Stone Island">
|
||
<div class="card-body">
|
||
<h5 class="card-title">Stone Island</h5>
|
||
<p class="card-text">super idol rovny pacan, groza rayona, mother's modnik, патч на месте</p>
|
||
</div>
|
||
<div class="card-footer bg-transparent">
|
||
<div class="d-flex justify-content-between align-items-center">
|
||
<span class="text-muted">$1999.99</span>
|
||
<button class="btn btn-sm" style="background-color: #00264d; color: white;">
|
||
<i class="bi bi-cart-plus me-1"></i>В корзину
|
||
</button>
|
||
</div>
|
||
<div class="mt-2 d-flex justify-content-between">
|
||
<button class="btn btn-sm btn-outline-secondary like-btn">
|
||
<i class="bi bi-heart"></i> В избранное
|
||
</button>
|
||
<button class="btn btn-sm btn-outline-secondary">
|
||
<i class="bi bi-share"></i> Поделиться
|
||
</button>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
|
||
<!-- Карточка товара 2 -->
|
||
<div class="col">
|
||
<div class="card h-100 border-0 shadow">
|
||
<img src="img/adidas.jpg" class="card-img-top" alt="Adidas">
|
||
<div class="card-body">
|
||
<h5 class="card-title">Adidas</h5>
|
||
<p class="card-text">sportik, street, baskemtball, air, old school</p>
|
||
</div>
|
||
<div class="card-footer bg-transparent">
|
||
<div class="d-flex justify-content-between align-items-center">
|
||
<span class="text-muted">$19.99</span>
|
||
<button class="btn btn-sm" style="background-color: #00264d; color: white;">
|
||
<i class="bi bi-cart-plus me-1"></i>В корзину
|
||
</button>
|
||
</div>
|
||
<div class="mt-2 d-flex justify-content-between">
|
||
<button class="btn btn-sm btn-outline-secondary like-btn">
|
||
<i class="bi bi-heart"></i> В избранное
|
||
</button>
|
||
<button class="btn btn-sm btn-outline-secondary">
|
||
<i class="bi bi-share"></i> Поделиться
|
||
</button>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
|
||
<!-- Карточка товара 3 -->
|
||
<div class="col">
|
||
<div class="card h-100 border-0 shadow">
|
||
<img src="img/napapisaj.jpg" class="card-img-top" alt="Napapisaj">
|
||
<div class="card-body">
|
||
<h5 class="card-title">Napapisaj</h5>
|
||
<p class="card-text">super idol rovny pacan, groza rayona, mother's modnik, +rep from brothers</p>
|
||
</div>
|
||
<div class="card-footer bg-transparent">
|
||
<div class="d-flex justify-content-between align-items-center">
|
||
<span class="text-muted">$1499.99</span>
|
||
<button class="btn btn-sm" style="background-color: #00264d; color: white;">
|
||
<i class="bi bi-cart-plus me-1"></i>В корзину
|
||
</button>
|
||
</div>
|
||
<div class="mt-2 d-flex justify-content-between">
|
||
<button class="btn btn-sm btn-outline-secondary like-btn">
|
||
<i class="bi bi-heart"></i> В избранное
|
||
</button>
|
||
<button class="btn btn-sm btn-outline-secondary">
|
||
<i class="bi bi-share"></i> Поделиться
|
||
</button>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
|
||
<!-- Карточка товара 4 -->
|
||
<div class="col">
|
||
<div class="card h-100 border-0 shadow">
|
||
<img src="img/lacoste.png" class="card-img-top" alt="Lacoste">
|
||
<div class="card-body">
|
||
<h5 class="card-title">Lacoste</h5>
|
||
<p class="card-text">style, nice, mother's modnik, cotton, krokodil</p>
|
||
</div>
|
||
<div class="card-footer bg-transparent">
|
||
<div class="d-flex justify-content-between align-items-center">
|
||
<span class="text-muted">$399.99</span>
|
||
<button class="btn btn-sm" style="background-color: #00264d; color: white;">
|
||
<i class="bi bi-cart-plus me-1"></i>В корзину
|
||
</button>
|
||
</div>
|
||
<div class="mt-2 d-flex justify-content-between">
|
||
<button class="btn btn-sm btn-outline-secondary like-btn">
|
||
<i class="bi bi-heart"></i> В избранное
|
||
</button>
|
||
<button class="btn btn-sm btn-outline-secondary">
|
||
<i class="bi bi-share"></i> Поделиться
|
||
</button>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
|
||
<!-- Карточка товара 5 -->
|
||
<div class="col">
|
||
<div class="card h-100 border-0 shadow">
|
||
<img src="img/samba.png" class="card-img-top" alt="Samba">
|
||
<div class="card-body">
|
||
<h5 class="card-title">Samba</h5>
|
||
<p class="card-text">super idol rovny pacan, groza rayona, mother's modnik, +rep from brothers</p>
|
||
</div>
|
||
<div class="card-footer bg-transparent">
|
||
<div class="d-flex justify-content-between align-items-center">
|
||
<span class="text-muted">$449.99</span>
|
||
<button class="btn btn-sm" style="background-color: #00264d; color: white;">
|
||
<i class="bi bi-cart-plus me-1"></i>В корзину
|
||
</button>
|
||
</div>
|
||
<div class="mt-2 d-flex justify-content-between">
|
||
<button class="btn btn-sm btn-outline-secondary like-btn">
|
||
<i class="bi bi-heart"></i> В избранное
|
||
</button>
|
||
<button class="btn btn-sm btn-outline-secondary">
|
||
<i class="bi bi-share"></i> Поделиться
|
||
</button>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
</main>
|
||
|
||
<footer class="py-4 mt-5" style="background-color: #00264d; color: white;">
|
||
<div class="container">
|
||
<div class="row">
|
||
<div class="col-md-6 mb-3 mb-md-0">
|
||
<div class="d-flex align-items-center mb-3">
|
||
<a href="https://t.me/cyxarukShop" class="text-white me-3">
|
||
<i class="bi bi-telegram fs-2"></i>
|
||
</a>
|
||
<span>Подпишитесь на нас в Telegram</span>
|
||
</div>
|
||
<div class="d-flex align-items-center">
|
||
<a href="https://www.avito.ru/..." class="text-white me-3">
|
||
<i class="bi bi-shop-window fs-2"></i>
|
||
</a>
|
||
<span>Мы на Авито</span>
|
||
</div>
|
||
</div>
|
||
<div class="col-md-6 text-md-end">
|
||
<h5>Контакты</h5>
|
||
<p><i class="bi bi-telephone me-2"></i>89876320523</p>
|
||
<p><i class="bi bi-geo-alt me-2"></i>Ulyanovsk, Russia</p>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
</footer>
|
||
|
||
<script src="https://cdn.jsdelivr.net/npm/bootstrap@5.3.0/dist/js/bootstrap.bundle.min.js"></script>
|
||
|
||
<script>
|
||
function handleLikeButtonClick() {
|
||
const icon = this.querySelector("i");
|
||
this.classList.toggle("liked");
|
||
|
||
if (this.classList.contains("liked")) {
|
||
this.classList.remove("btn-outline-secondary");
|
||
this.classList.add("btn-outline-danger");
|
||
icon.classList.remove("bi-heart");
|
||
icon.classList.add("bi-heart-fill");
|
||
} else {
|
||
this.classList.remove("btn-outline-danger");
|
||
this.classList.add("btn-outline-secondary");
|
||
icon.classList.remove("bi-heart-fill");
|
||
icon.classList.add("bi-heart");
|
||
}
|
||
}
|
||
|
||
document.querySelectorAll(".like-btn").forEach((button) => {
|
||
button.addEventListener("click", handleLikeButtonClick);
|
||
});
|
||
|
||
document.getElementById("addProductForm").addEventListener("submit", function (e) {
|
||
e.preventDefault();
|
||
|
||
const name = document.getElementById("productName").value;
|
||
const price = document.getElementById("productPrice").value;
|
||
const description = document.getElementById("productDescription").value;
|
||
const image = document.getElementById("productImage").value;
|
||
|
||
const productCard = `
|
||
<div class="col">
|
||
<div class="card h-100 border-0 shadow">
|
||
<img src="${image}" class="card-img-top" alt="${name}">
|
||
<div class="card-body">
|
||
<h5 class="card-title">${name}</h5>
|
||
<p class="card-text">${description}</p>
|
||
</div>
|
||
<div class="card-footer bg-transparent">
|
||
<div class="d-flex justify-content-between align-items-center">
|
||
<span class="text-muted">${price}</span>
|
||
<button class="btn btn-sm" style="background-color: #00264d; color: white;">
|
||
<i class="bi bi-cart-plus me-1"></i>В корзину
|
||
</button>
|
||
</div>
|
||
<div class="mt-2 d-flex justify-content-between">
|
||
<button class="btn btn-sm btn-outline-secondary like-btn">
|
||
<i class="bi bi-heart"></i> В избранное
|
||
</button>
|
||
<button class="btn btn-sm btn-outline-secondary">
|
||
<i class="bi bi-share"></i> Поделиться
|
||
</button>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
`;
|
||
|
||
const container = document.getElementById("productsContainer");
|
||
container.insertAdjacentHTML("beforeend", productCard);
|
||
|
||
container.lastElementChild.querySelector(".like-btn").addEventListener("click", handleLikeButtonClick);
|
||
|
||
this.reset();
|
||
});
|
||
</script>
|
||
|
||
<script src="https://cdn.jsdelivr.net/npm/bootstrap@5.3.0/dist/js/bootstrap.bundle.min.js"></script>
|
||
|
||
<script type="module">
|
||
import { Model } from '/components/basket/model.js';
|
||
import { View } from '/components/basket/view.js';
|
||
import { Controller } from '/components/basket/controller.js';
|
||
|
||
document.addEventListener('DOMContentLoaded', function() {
|
||
if (document.getElementById('basketContainer') || document.getElementById('productsContainer')) {
|
||
const model = new Model();
|
||
const view = new View();
|
||
new Controller(model, view);
|
||
}
|
||
});
|
||
</script>
|
||
|
||
</body>
|
||
</html> |