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!