|
|
Linha 1: |
Linha 1: |
| <!DOCTYPE html>
| | // Função para construir os caminhos das imagens dinamicamente |
| <html lang="pt-BR">
| | function getMediaWikiImagePath(imageName) { |
| <style>
| | return `https://wiki.pokexgames.com/index.php/Special:FilePath/${encodeURIComponent(imageName)}`; |
|
| | } |
| .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 {
| | // Exemplo de uso no objeto `imageList` |
| margin-top: 10px;
| | const imageList = { |
| cursor: pointer;
| | 'Squirtle': { |
| width: 15px;
| | imageUrl: getMediaWikiImagePath('007-Squirtle.png'), |
| height: 15px;
| | variations: [ |
| background: url('https://wiki.pokexgames.com/images/f/fb/SwapButtonAddons.png') no-repeat center;
| | { |
| background-size: contain;
| | description: 'Squirtle Purple Ninja Pack', |
| display: block;
| | descriptionIMG: getMediaWikiImagePath('Purple_Stripe.png'), |
| margin: 0 auto;
| | additionalImages: [ |
| }
| | { url: getMediaWikiImagePath('Squirtle_Purple_Ninja_Pack_Frente.png') }, |
| </style>
| | { url: getMediaWikiImagePath('Squirtle_Purple_Ninja_Pack_Esquerda.png') }, |
| | | { url: getMediaWikiImagePath('Squirtle_Purple_Ninja_Pack_Costas.png') }, |
| <head>
| | { url: getMediaWikiImagePath('Squirtle_Purple_Ninja_Pack_Direita.png') }, |
| <meta charset="UTF-8">
| |
| <meta name="viewport" content="width=device-width, initial-scale=1.0">
| |
| <title>Busca de Imagens por Nome</title>
| |
|
| |
| </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>
| |
| const imageList = {
| |
| 'Squirtle': {
| |
| imageUrl: 'https://wiki.pokexgames.com/images/7/7a/007-Squirtle.png',
| |
| variations: [
| |
| {
| |
| description: 'Squirtle Purple Ninja Pacnk',
| |
| 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/d/dd/Squirtle_Purple_Ninja_Pack_Frente.png'}, // Frente
| |
| { url: 'https://wiki.pokexgames.com/images/5/50/Squirtle_Purple_Ninja_Pack_Esquerda.png'}, // Lado Esquerdo
| |
| { url: 'https://wiki.pokexgames.com/images/a/af/Squirtle_Purple_Ninja_Pack_Direita.png'}, // Costas
| |
| { url: 'https://wiki.pokexgames.com/images/5/5d/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
| |
| ]
| |
| }
| |
| ] | | ] |
| },
| |
| };
| |
|
| |
| 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>
| |