LO ÚLTIMO

PUBLICIDAD

Publicidad

HTML de Conjunto de botones


DEMO:
Widget de Botones Dinámico BRAYANROCKER


EJEMPLO:
PAGINA WEB DE EJEMPLO


HTML:

<!DOCTYPE html>
<html lang="es">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Widget de Botones Dinámico</title>
    <!-- Cargar la fuente Lobster desde Google Fonts -->
    <link href="https://fonts.googleapis.com/css2?family=Lobster&display=swap" rel="stylesheet">
    <style>
        .button-container {
            padding: 10px 0;
            display: flex;
            flex-wrap: wrap;
            gap: 5px;
            background-color: transparent;
        }
        .button-item {
            background-color: #fff;
            border: 1px solid #ccc;
            border-radius: 5px;
            padding: 3px 7px;
            cursor: pointer;
            font-family: 'Lobster', cursive;
            font-size: 13px;
            font-weight: normal;
            transition: color 0.3s ease;
            white-space: nowrap;
            box-shadow: 1px 1px 3px rgba(0, 0, 0, 0.3);
        }
        .button-item:hover {
            color: #ff0000;
        }
        #content {
            display: none;
        }
    </style>
</head>
<body>
    <div id="button-container" class="button-container"></div>
    <div id="content" class="content"></div>

    <script>
        // URL del archivo JSON en GitHub
        const jsonUrl = 'https://raw.githubusercontent.com/BRAYANROCKER/buttons-widget/refs/heads/main/buttons.json';

        // Función para cargar y mostrar los botones
        async function loadButtons() {
            try {
                const response = await fetch(jsonUrl);
                if (!response.ok) {
                    throw new Error(`Error al cargar el JSON: ${response.statusText}`);
                }
                const data = await response.json();
                const container = document.getElementById('button-container');

                // Limpiar contenedor
                container.innerHTML = '';

                // Crear botones dinámicamente
                data.buttons.forEach(button => {
                    const buttonElement = document.createElement('div');
                    buttonElement.className = 'button-item';
                    buttonElement.textContent = button.title;

                    // Redirigir a una nueva ventana
                    buttonElement.onclick = () => {
                        try {
                            console.log(`Abriendo en nueva ventana: ${button.url}`); // Depuración
                            window.open(button.url, '_blank');
                        } catch (error) {
                            console.error(`Error al abrir ${button.url}:`, error);
                            alert(`No se pudo abrir ${button.url}. Por favor, revisa la URL.`);
                        }
                    };

                    // Efecto hover
                    buttonElement.onmouseover = () => {
                        buttonElement.style.color = '#ff0000';
                    };
                    buttonElement.onmouseout = () => {
                        buttonElement.style.color = '#000000';
                    };

                    container.appendChild(buttonElement);
                });
            } catch (error) {
                console.error('Error al cargar el JSON:', error);
                document.getElementById('button-container').innerHTML = 'Error al cargar los botones. Revisa la URL del JSON.';
            }
        }

        // Cargar botones al iniciar
        loadButtons();
    </script>
</body>
</html>