
Vou mostrar um exemplo rápido para fazer o efeito de revelar a legenda de uma imagem apenas quando o usuário passar o mouse sobre a imagem. Normalmente se coloca a legenda logo abaixo da imagem, nesse caso a legenda aparecerá sobre a imagem e na parte inferior. O efeito é inteiramente feito com CSS, sem qualquer necessidade de JavaScript. É um ótimo efeito para ser usado em galerias de imagens para colocar a descrição da imagem quando o mouse estiver sobre a imagem.
A técnica do efeito consiste em esconder a legenda até que o usuário passe o mouse sobre a imagem. Repare que usamos a marcação span class="desc" para tal finalidade. Pensando em tornar mais óbvio que temos uma legenda na imagem vamos adicionar um link “saiba mais”. Quando o visitante do site passar o mouse sobre o link a legenda aparecerá.
Exemplo
Você pode ver o resultado final desse tutorial na Página de Exemplo. O site DesignFlavr faz uso desse efeito, porém um pouco mais complexo.
HTML
<div class="imgefeito"> <a href="#"> <img src="teste.jpg" alt="Daim Graffiti" /> <span class="mais">Saiba Mais</span> <span class="desc"> <strong>Lorem Ipsum</strong> Is simply dummy text of the printing and typesetting industry. Lorem Ipsum has been the industry's standard dummy text ever since the 1500s, when an unknown printer took a galley. </span> </a> </div>
CSS
Abaixo a estilização da DIV que aloca todos os outros elementos.
.imgefeito {
margin: 0;
overflow: hidden;
float: left;
position: relative;
}
.imgefeito a {
text-decoration: none;
float: left;
}
.imgefeito a:hover {
cursor: pointer;
}
Estilização da imagem onde aparecerá o texto no estado hover, ou seja, quando o mouse estiver sobre a imagem.
.imgefeito a img {
float: left;
margin: 0;
border: none;
padding: 10px;
background: #fff;
border: 1px solid #ddd;
}
Em seguida estilizamos o texto Saiba Mais e a “caixa” da legenda que será mostrada quando passarmos o mouse sobre o texto. Perceba o uso de um comando proprietário da Microsoft, -ms-filter para o efeito funcionar no Internet Explorer 8.
.imgefeito a .mais {
position: absolute;
right: 20px;
bottom: 20px;
font-size: 1.2em;
color: #fff;
background: #000;
padding: 5px 10px;
filter:alpha(opacity=65);
opacity:.65;
-ms-filter: "progid:DXImageTransform.Microsoft.Alpha(Opacity=65)"; /*--IE 8 Transparency--*/
}
.imgefeito a:hover .desc{
display: block;
font-size: 1.2em;
padding: 10px 0;
background: #111;
filter:alpha(opacity=75);
opacity:.75;
-ms-filter: "progid:DXImageTransform.Microsoft.Alpha(Opacity=75)"; /*--IE 8 Transparency--*/
color: #fff;
position: absolute;
bottom: 11px;
left: 11px;
padding: 10px;
margin: 0;
width: 615px;
border-top: 1px solid #999;
}
.imgefeito a:hover .desc strong {
display: block;
margin-bottom: 5px;
font-size:1.5em;
}
Referências:
Sohtanaka e Aranea.Zuavra.
Como falei no artigo, esta técnica é muito útil para sites de galerias de imagens. Pelo fato da legenda aparecer sobre a imagem, conseguimos economizar espaço na página já que não precisamos deixar um espaço para a legenda. Fica aí a dica!
Quer ficar sabendo das atualizações aqui no Blog? Siga-me no Twitter: @kadunew
Comentários
Uma resposta para “Mostrar legenda ao passar o mouse sobre imagens”
Tutorial excelente. parabéns!