Загрузка данных


<!DOCTYPE html>
<html lang="ru">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>КоктейльБар - Заказать коктейль</title>
    <style>
        body {
            font-family: Arial, sans-serif;
            background: #f4f4f4;
            margin: 0;
            padding: 20px;
        }
        h1 {
            text-align: center;
            color: #333;
        }
        .container {
            max-width: 1200px;
            margin: 0 auto;
        }
        .search {
            text-align: center;
            margin-bottom: 30px;
        }
        input {
            padding: 10px;
            width: 300px;
            font-size: 16px;
        }
        button {
            padding: 10px 20px;
            font-size: 16px;
            background: #e74c3c;
            color: white;
            border: none;
            cursor: pointer;
        }
        .cards {
            display: grid;
            grid-template-columns: repeat(auto-fill, minmax(250px, 1fr));
            gap: 20px;
        }
        .card {
            background: white;
            border-radius: 10px;
            overflow: hidden;
            box-shadow: 0 4px 8px rgba(0,0,0,0.1);
            transition: transform 0.3s;
        }
        .card:hover {
            transform: scale(1.05);
        }
        .card img {
            width: 100%;
            height: 250px;
            object-fit: cover;
        }
        .card-body {
            padding: 15px;
            text-align: center;
        }
        .card h3 {
            margin: 10px 0;
            color: #333;
        }
        .order-btn {
            background: #27ae60;
            color: white;
            border: none;
            padding: 8px 16px;
            border-radius: 5px;
            cursor: pointer;
        }
        .order-btn:hover {
            background: #219653;
        }
    </style>
</head>
<body>
    <div class="container">
        <h1>КоктейльБар</h1>
        
        <div class="search">
            <input type="text" id="searchInput" placeholder="Поиск по названию...">
            <button onclick="searchCocktails()">Найти</button>
        </div>

        <div class="cards" id="cocktails"></div>
    </div>

    <script>
        const API_URL = "https://www.thecocktaildb.com/api/json/v1/1/filter.php?c=Cocktail";

        async function fetchCocktails() {
            try {
                const res = await fetch(API_URL);
                const data = await res.json();
                displayCocktails(data.drinks);
            } catch (e) {
                document.getElementById('cocktails').innerHTML = 
                    "<p style='color:red;text-align:center'>Ошибка загрузки данных </p>";
            }
        }

        function displayCocktails(drinks) {
            const container = document.getElementById('cocktails');
            container.innerHTML = '';

            drinks.forEach(drink => {
                const card = document.createElement('div');
                card.className = 'card';
                card.innerHTML = `
                    <img src="\( {drink.strDrinkThumb}" alt=" \){drink.strDrink}">
                    <div class="card-body">
                        <h3>${drink.strDrink}</h3>
                        <button class="order-btn" onclick="orderCocktail('${drink.strDrink}')">
                            Заказать
                        </button>
                    </div>
                `;
                container.appendChild(card);
            });
        }

        // Поиск
        function searchCocktails() {
            const query = document.getElementById('searchInput').value.toLowerCase().trim();
            if (!query) {
                fetchCocktails();
                return;
            }

            fetch(API_URL)
                .then(res => res.json())
                .then(data => {
                    const filtered = data.drinks.filter(d => 
                        d.strDrink.toLowerCase().includes(query)
                    );
                    displayCocktails(filtered);
                });
        }

        // "Заказ"
        function orderCocktail(name) {
            alert(` Вы заказали: ${name}!\n\nКоктейль добавлен в корзину `);
        }

        // Загрузка при старте
        window.onload = fetchCocktails;
    </script>
</body>
</html>