Widget:Test2: mudanças entre as edições
Ir para navegação
Ir para pesquisar
Sem resumo de edição |
(Página substituída por '<!DOCTYPE html> <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> </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="imageC...') Etiqueta: Substituído |
||
Linha 4: | Linha 4: | ||
<meta charset="UTF-8"> | <meta charset="UTF-8"> | ||
<meta name="viewport" content="width=device-width, initial-scale=1.0"> | <meta name="viewport" content="width=device-width, initial-scale=1.0"> | ||
<title> | <title>Busca de Imagens por Nome</title> | ||
</head> | </head> | ||
<body> | <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'; | |||
if ( | |||
} | } | ||
}); | }); | ||
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 | 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> | |||
</script> | |||
</body> | </body> | ||
</html> | </html> |
Edição das 19h18min de 22 de dezembro de 2024
<!DOCTYPE html> <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>
</head> <body>
<form id="imageForm">
<input type="text" id="imageSearch" placeholder="Digite o nome da imagem" autocomplete="off">
</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 =
<img src="${imageInfo.imageUrl}" alt="${imageName}">
;
imageInfo.variations.forEach((variation, index) => { imagesHtml +=
<img src="${variation.additionalImages[0].url}" alt="Variation Image" class="variation-image" data-variation-index="${index}" style="width: ${variation.additionalImages[0].width}px;">
<img src="${variation.descriptionIMG}" alt="Description Image" style="margin-right: 5px; display: inline-block;">
${variation.description}
Como Obter: <a href="${variation.obtain.url}" target="_blank">${variation.obtain.text}</a>
; });imagesHtml += '
';
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>