Widget:Test: mudanças entre as edições
Ir para navegação
Ir para pesquisar
Sem resumo de edição |
Sem resumo de edição |
||
Linha 7: | Linha 7: | ||
<style> | <style> | ||
.input-group { margin-bottom: 1em; } | .input-group { margin-bottom: 1em; } | ||
. | .dropdown { | ||
border: 1px solid #ccc; | |||
display: none; | |||
position: absolute; | |||
background-color: #fff; | |||
z-index: 1000; | |||
max-height: 150px; | |||
overflow-y: auto; | |||
} | |||
.dropdown-item { | |||
padding: 8px; | |||
cursor: pointer; | |||
} | |||
.dropdown-item:hover { | |||
background-color: #f0f0f0; | |||
} | |||
.image-item { margin-bottom: 1em; } | .image-item { margin-bottom: 1em; } | ||
.image-info { margin-top: 0.5em; } | .image-info { margin-top: 0.5em; } | ||
Linha 15: | Linha 30: | ||
<form id="imageForm"> | <form id="imageForm"> | ||
<div class="input-group"> | <div class="input-group"> | ||
<input type="text" id="imageSearch" placeholder="Digite o nome da imagem"> | <input type="text" id="imageSearch" placeholder="Digite o nome da imagem" autocomplete="off"> | ||
<div id="dropdown" class="dropdown"></div> | |||
</div> | </div> | ||
Linha 24: | Linha 40: | ||
<script> | <script> | ||
const imageList = { | const imageList = { | ||
'Charmander': { | 'Charmander': { | ||
Linha 41: | Linha 56: | ||
}; | }; | ||
document.getElementById('imageSearch').addEventListener('input', function() { | 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(); | const searchValue = this.value.trim().toLowerCase(); | ||
dropdown.innerHTML = ''; | |||
Object.keys(imageList).forEach(imageName => { | if (searchValue) { | ||
Object.keys(imageList).forEach(imageName => { | |||
if (imageName.toLowerCase().includes(searchValue)) { | |||
const dropdownItem = document.createElement('div'); | |||
dropdownItem.textContent = imageName; | |||
dropdownItem.classList.add('dropdown-item'); | |||
dropdownItem.addEventListener('click', function() { | |||
showImageInfo(imageName); | |||
dropdown.style.display = 'none'; | |||
}); | |||
dropdown.appendChild(dropdownItem); | |||
} | |||
}); | |||
dropdown.style.display = dropdown.childNodes.length ? 'block' : 'none'; | |||
} else { | } 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]; | |||
const imagesHtml = ` | |||
<div class="image-item"> | |||
<img src="${imageInfo.imageUrl}" alt="${imageName}"> | |||
<div class="image-info"> | |||
<b>Nome da Imagem</b>: ${imageName} <br> | |||
<b>Descrição</b>: ${imageInfo.description} <br> | |||
<b>URL</b>: ${imageInfo.imageUrl} | |||
</div> | |||
</div> | |||
`; | |||
imageContainer.innerHTML = imagesHtml; | |||
imageContainer.classList.remove('hidden'); | |||
} | |||
</script> | </script> | ||
</body> | </body> | ||
</html> | </html> |
Edição das 01h36min de 30 de agosto 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> <style> .input-group { margin-bottom: 1em; } .dropdown { border: 1px solid #ccc; display: none; position: absolute; background-color: #fff; z-index: 1000; max-height: 150px; overflow-y: auto; } .dropdown-item { padding: 8px; cursor: pointer; } .dropdown-item:hover { background-color: #f0f0f0; } .image-item { margin-bottom: 1em; } .image-info { margin-top: 0.5em; } </style>
</head> <body>
<form id="imageForm">
<input type="text" id="imageSearch" placeholder="Digite o nome da imagem" autocomplete="off">
</form>
<script> const imageList = { 'Charmander': { imageUrl: 'https://example.com/charmander.png', description: 'Charmander, o Pokémon de fogo inicial.' }, 'Bulbasaur': { imageUrl: 'https://example.com/bulbasaur.png', description: 'Bulbasaur, o Pokémon de grama inicial.' }, 'Squirtle': { imageUrl: 'https://example.com/squirtle.png', description: 'Squirtle, o Pokémon de água inicial.' } // Adicione mais imagens conforme necessário };
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.textContent = imageName; dropdownItem.classList.add('dropdown-item'); 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]; const imagesHtml = `
<img src="${imageInfo.imageUrl}" alt="${imageName}">
Nome da Imagem: ${imageName}
Descrição: ${imageInfo.description}
URL: ${imageInfo.imageUrl}
`;
imageContainer.innerHTML = imagesHtml; imageContainer.classList.remove('hidden'); } </script>
</body> </html>