Widget:Test2: mudanças entre as edições

De PokeXGames
Ir para navegação Ir para pesquisar
Sem resumo de edição
Sem resumo de edição
Linha 1: Linha 1:
<!DOCTYPE html>
<script>
<html lang="pt-BR">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Busca de Imagens por Nome</title>
    <style>
        .input-group { margin-bottom: 1em; position: relative; }
        .dropdown {
            border: 1px solid #ccc;
            display: none;
            position: absolute;
            background-color: #fff;
            z-index: 1000;
            max-height: 150px;
            overflow-y: auto;
            width: 100%;
        }
        .dropdown-item {
            padding: 8px;
            cursor: pointer;
            display: flex;
            align-items: center;
        }
        .dropdown-item img {
            margin-right: 10px;
        }
        .dropdown-item:hover {
            background-color: #f0f0f0;
        }
        .image-container {
            display: flex;
            flex-direction: column;
            align-items: center;
            justify-content: center;
        }
        .image-item {
            margin-bottom: 1em;
            text-align: center;
        }
        .image-item img {
            display: block;
            margin: 0 auto;
        }
 
        .variations-container {
            display: flex;
            flex-wrap: wrap;
            justify-content: center;
            margin-top: 1em;
        }
 
        .variation-item {
            width: 35%;
            box-sizing: border-box;
            margin: 5px;
            text-align: center;
            border: 1px solid ;
            padding: 10px;
        }
 
        .variation-item img {
            display: block;
            margin: 0 auto 10px;
        }
 
        .swap-button {
            margin-top: 10px;
            cursor: pointer;
            width: 15px;
            height: 15px;
            background: url('https://wiki.pokexgames.com/images/f/fb/SwapButtonAddons.png') no-repeat center;
            background-size: contain;
            display: block;
            margin: 0 auto;
        }
    </style>
</head>
<body>
    <form id="imageForm">
        <div class="input-group">
            <input type="text" id="imageSearch" placeholder="Digite o nome da imagem" autocomplete="off">
            <div id="dropdown" class="dropdown"></div>
        </div>
 
        <div id="imageContainer" class="image-container hidden">
            <!-- As imagens e suas informações serão exibidas aqui -->
        </div>
    </form>
 
    <script>
        // Função para gerar o link da imagem da Wiki
         function generateWikiImageUrl(imageName) {
         function generateWikiImageUrl(imageName) {
             return `https://wiki.pokexgames.com/index.php/Special:FilePath/${imageName}`;
             return `https://wiki.pokexgames.com/index.php/Special:FilePath/${imageName}`;
         }
         }
 
        // Lista de imagens e variações
         const imageList = {
         const imageList = {
             Squirtle: {
             'Squirtle': {  
                 imageUrl: generateWikiImageUrl('007-Squirtle.png'), // URL dinâmica da imagem
                 imageUrl: generateWikiImageUrl('Squirtle.png'),  
                 variations: [
                 variations: [
                     {
                     {  
                         description: "Squirtle usando óculos",
                         description: 'Squirtle Purple Ninja Pacnk',
                      descriptionIMG: generateWikiImageUrl('Purple_Stripe.png'),
                        descriptionIMG: generateWikiImageUrl('Purple_Stripe.png'),
                    additionalImages: [
                        obtain: {
                        { url: generateWikiImageUrl('Squirtle_Purple_Ninja_Pack_Frente.png') },
                            url: 'https://wiki.pokexgames.com/index.php/Craft_Profissões_-_Estilista#Rank_E',
                        { url: generateWikiImageUrl('Squirtle Purple Ninja Pack Esquerda.png') },
                            text: 'Estilista'
                        { url: generateWikiImageUrl('Squirtle_Purple_Ninja_Pack_Costas.png') },
                        },
                        { url: generateWikiImageUrl('Squirtle Purple Ninja Pack Direita.png') },
                        additionalImages: [
                         ],
                            { url: generateWikiImageUrl('Squirtle_Purple_Ninja_Pack_Frente.png')}, // Frente
                         obtain: { url: "https://example.com/obter-squirtle", text: "Como obter" }
                            { url: generateWikiImageUrl('Squirtle_Purple_Ninja_Pack_Esquerda.png')}, // Lado Esquerdo
                            { url: generateWikiImageUrl('Squirtle_Purple_Ninja_Pack_Direita.png')}, // Costas
                            { url: generateWikiImageUrl('Squirtle_Purple_Ninja_Pack_Costas.png')} // Lado Direito
                        ]
                    },
                    { 
                        description: 'Squirtle Red Ninja Pack',
                         descriptionIMG: 'https://wiki.pokexgames.com/images/c/c1/Purple_Stripe.png',
                         obtain: {
                            url: 'https://wiki.pokexgames.com/index.php/Craft_Profissões_-_Estilista#Rank_E',
                            text: 'Estilista'
                        },
                        additionalImages: [
                            { url: 'https://wiki.pokexgames.com/images/1/13/Squirtle_Red_Ninja_Pack_Frente.png'}, // Frente
                            { url: 'https://wiki.pokexgames.com/images/1/1e/Squirtle_Red_Ninja_Pack_Esquerda.png'}, // Lado Esquerdo
                            { url: 'https://wiki.pokexgames.com/images/0/01/Squirtle_Red_Ninja_Pack_Costas.png'}, // Costas
                            { url: 'https://wiki.pokexgames.com/images/f/fd/Squirtle_Red_Ninja_Pack_Direita.png'} // Lado Direito
                        ]
                     }
                     }
                 ]
                 ]
             },
             },
            Charmander: {
                imageUrl: generateWikiImageUrl('004-Charmander'),  // URL dinâmica da imagem
                variations: [
                    {
                        description: "Charmander brilhante",
                        descriptionIMG: generateWikiImageUrl('charmander-shiny'),  // URL da variação
                        additionalImages: [
                            { url: generateWikiImageUrl('charmander1'), width: 100 },
                            { url: generateWikiImageUrl('charmander2'), width: 120 }
                        ],
                        obtain: { url: "https://example.com/obter-charmander", text: "Como obter" }
                    }
                ]
            }
         };
         };
 
</script>
        const imageSearch = document.getElementById('imageSearch');
        const dropdown = document.getElementById('dropdown');
        const imageContainer = document.getElementById('imageContainer');
 
        imageSearch.addEventListener('input', function() {
            const searchValue = this.value.trim().toLowerCase();
            dropdown.innerHTML = '';
 
            if (searchValue) {
                Object.keys(imageList).forEach(imageName => {
                    if (imageName.toLowerCase().includes(searchValue)) {
                        const dropdownItem = document.createElement('div');
                        dropdownItem.classList.add('dropdown-item');
                       
                        const imgElement = document.createElement('img');
                        imgElement.src = imageList[imageName].imageUrl;
                        imgElement.alt = imageName;
                       
                        dropdownItem.appendChild(imgElement);
                        dropdownItem.appendChild(document.createTextNode(imageName));
                       
                        dropdownItem.addEventListener('click', function() {
                            showImageInfo(imageName);
                            dropdown.style.display = 'none';
                        });
                        dropdown.appendChild(dropdownItem);
                    }
                });
 
                dropdown.style.display = dropdown.childNodes.length ? 'block' : 'none';
            } else {
                dropdown.style.display = 'none';
            }
        });
 
        document.addEventListener('click', function(event) {
            if (!imageSearch.contains(event.target) && !dropdown.contains(event.target)) {
                dropdown.style.display = 'none';
            }
        });
 
        function showImageInfo(imageName) {
            const imageInfo = imageList[imageName];
            let imagesHtml = `
                <div class="image-item">
                    <img src="${imageInfo.imageUrl}" alt="${imageName}">
                </div>
                <div class="variations-container">
            `;
 
            imageInfo.variations.forEach((variation, index) => {
                imagesHtml += `
                    <div class="variation-item">
                        <img src="${variation.additionalImages[0].url}" alt="Variation Image" class="variation-image" data-variation-index="${index}" style="width: ${variation.additionalImages[0].width}px;">
                        <div class="swap-button" data-variation-index="${index}"></div><br>
                        <div class="image-info">
                            <img src="${variation.descriptionIMG}" alt="Description Image" style="margin-right: 5px; display: inline-block;"> <!-- Exibe a imagem antes da descrição -->
                            <br> ${variation.description} <br> <!-- Descrição após a imagem -->
                            <b>Como Obter</b>: <a href="${variation.obtain.url}" target="_blank">${variation.obtain.text}</a>
                        </div>
                    </div>
                `;
            });
 
            imagesHtml += `</div>`;
 
            imageContainer.innerHTML = imagesHtml;
            imageContainer.classList.remove('hidden');
 
            // Alternar imagens ao clicar no botão de troca
            const swapButtons = document.querySelectorAll('.swap-button');
 
            swapButtons.forEach(button => {
                const index = button.getAttribute('data-variation-index');
                const variation = imageInfo.variations[index];
                let currentImageIndex = 0;
 
                button.addEventListener('click', () => {
                    currentImageIndex = (currentImageIndex + 1) % variation.additionalImages.length;
                    const variationImage = button.previousElementSibling; // Atualiza a imagem da variação
                    variationImage.src = variation.additionalImages[currentImageIndex].url;
                    variationImage.style.width = `${variation.additionalImages[currentImageIndex].width}px`;
                });
            });
        }
    </script>
</body>
</html>

Edição das 19h59min de 23 de dezembro de 2024

<script>

       function generateWikiImageUrl(imageName) {
           return `https://wiki.pokexgames.com/index.php/Special:FilePath/${imageName}`;
       }

       const imageList = {
           'Squirtle': { 
               imageUrl: generateWikiImageUrl('Squirtle.png'), 
               variations: [
                   { 
                       description: 'Squirtle Purple Ninja Pacnk',
                       descriptionIMG: generateWikiImageUrl('Purple_Stripe.png'),
                       obtain: {
                           url: 'https://wiki.pokexgames.com/index.php/Craft_Profissões_-_Estilista#Rank_E',
                           text: 'Estilista'
                       },
                       additionalImages: [
                           { url: generateWikiImageUrl('Squirtle_Purple_Ninja_Pack_Frente.png')}, // Frente
                           { url: generateWikiImageUrl('Squirtle_Purple_Ninja_Pack_Esquerda.png')}, // Lado Esquerdo
                           { url: generateWikiImageUrl('Squirtle_Purple_Ninja_Pack_Direita.png')}, // Costas
                           { url: generateWikiImageUrl('Squirtle_Purple_Ninja_Pack_Costas.png')}  // Lado Direito
                       ]
                   },
                   {  
                       description: 'Squirtle Red Ninja Pack',
                       descriptionIMG: 'https://wiki.pokexgames.com/images/c/c1/Purple_Stripe.png',
                       obtain: {
                           url: 'https://wiki.pokexgames.com/index.php/Craft_Profissões_-_Estilista#Rank_E',
                           text: 'Estilista'
                       },
                       additionalImages: [
                           { url: 'https://wiki.pokexgames.com/images/1/13/Squirtle_Red_Ninja_Pack_Frente.png'}, // Frente
                           { url: 'https://wiki.pokexgames.com/images/1/1e/Squirtle_Red_Ninja_Pack_Esquerda.png'}, // Lado Esquerdo
                           { url: 'https://wiki.pokexgames.com/images/0/01/Squirtle_Red_Ninja_Pack_Costas.png'}, // Costas
                           { url: 'https://wiki.pokexgames.com/images/f/fd/Squirtle_Red_Ninja_Pack_Direita.png'}  // Lado Direito
                       ]
                   }
               ]
           },
       };

</script>