5 801
edições
Sem resumo de edição Etiqueta: Revertido |
Sem resumo de edição Etiqueta: Reversão manual |
||
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> | ||
<style> | <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; | display: flex; | ||
align-items: center; | |||
} | } | ||
.dropdown-item img { | .dropdown-item img { | ||
width: | width: 30px; | ||
height: | height: 30px; | ||
margin-right: 10px; | margin-right: 10px; | ||
} | } | ||
.dropdown-item:hover { | .dropdown-item:hover { | ||
background-color: #f0f0f0; | background-color: #f0f0f0; | ||
} | } | ||
.image-item { margin-bottom: 1em; } | |||
.image-info { margin-top: 0.5em; } | |||
</style> | </style> | ||
</head> | </head> | ||
<body> | <body> | ||
<form id="imageForm"> | <form id="imageForm"> | ||
<input type="text" id=" | <div class="input-group"> | ||
<input type="text" id="imageSearch" placeholder="Digite o nome da imagem" autocomplete="off"> | |||
<div id=" | <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> | </form> | ||
<script> | <script> | ||
const | const imageList = { | ||
'Charmander': { | |||
imageUrl: 'https://example.com/charmander.png', | |||
imageUrl: 'https:// | description: 'Charmander, o Pokémon de fogo inicial.' | ||
}, | }, | ||
// Adicione mais | '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 | const imageSearch = document.getElementById('imageSearch'); | ||
const dropdown = document.getElementById('dropdown'); | const dropdown = document.getElementById('dropdown'); | ||
const | const imageContainer = document.getElementById('imageContainer'); | ||
imageSearch.addEventListener('input', function() { | |||
const | const searchValue = this.value.trim().toLowerCase(); | ||
dropdown.innerHTML = ''; | dropdown.innerHTML = ''; | ||
if ( | 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 | function showImageInfo(imageName) { | ||
const imageInfo = imageList[imageName]; | |||
const imagesHtml = ` | |||
<div class="image-item"> | <div class="image-item"> | ||
<img src="${ | <img src="${imageInfo.imageUrl}" alt="${imageName}"> | ||
<div class="image-info"> | <div class="image-info"> | ||
<b>Nome | <b>Nome da Imagem</b>: ${imageName} <br> | ||
<b>Descrição | <b>Descrição</b>: ${imageInfo.description} <br> | ||
${ | <b>URL</b>: ${imageInfo.imageUrl} | ||
</div> | </div> | ||
</div> | </div> | ||
`; | `; | ||
imageContainer.innerHTML = imagesHtml; | |||
imageContainer.classList.remove('hidden'); | |||
} | } | ||
</script> | </script> | ||
</body> | </body> | ||
</html> | </html> |