Existe uma maneira de programar uma imagem de mouseOver que controla 2 divs [imagem maior e uma descrição de texto
-
18-09-2019 - |
Pergunta
O design exige uma galeria de imagens com miniaturas para diferentes caracteres e, quando você rolar sobre uma miniatura, uma versão maior da imagem aparece e em uma div à esquerda com um cabeçalho e uma descrição para cada caractere também aparece.
1) Existe uma maneira de ter um controle de rolagem ambos os divs? (imagem e descrição ampliadas)
e
2) Como eu precisaria sincronizar isso com um CMS?
Obrigado pela leitura :)
Solução
Experimente isso para começar, não tenho certeza de que CMS você está usando etc. nfi como responder a essa parte:
Html:
<a class="info" href="" onclick="return false;">
<img src="thumb.jpg"/>
<span><img src="large.jpg" /><br />
description goes here</span>
</a>
CSS:
a.info {z-index:24; position:relative; color:#999; font-size:11px; text-transform:none; font-weight:normal; text-decoration:none; border:1px solid #999; padding-left:3px; padding-right:3px; margin:5px;}
a.info:hover {z-index:25; text-decoration:none; color:#333; border-color:#333;}
a.info span {display:none; position:absolute; top:15px; left:15px; width:240px; color:#000; font-size:12px; background-color:#fff; padding:2px; border:1px solid #333;}
a.info:hover span {display:block;}
Outras dicas
Sim, armazene informações sobre o caractere na etiqueta de identificação do elemento gatilho. Como dizer que é Mickey Mouse, id = "Mickey", talvez você esteja usando protótipo ...
$$('.trigger').each(function (el) {el.observe('mouseover',showInfo.bind(el);});
Em seguida, a função showInfo mostra os divs que têm a imagem e informações maiores
function showInfo(ev) {
// this refers to the element that has the mouse over, which has the descriptive id
var infoContainerId = this.id+"_info";
var imageContainerId = this.id+"_image";
$(infoContainerId).show(); // showing the div id="mickey_info"
$(imageContainerId).show(); // showing the div id="mickey_image"
}
Bem .. apenas um exemplo ...
Usando o jQuery, isso não foi testado, mas seria algo assim:
$('#myImageThumbnail').mouseenter(function(){
//Set the description text
$('#descriptionDiv').html('Insert character description here');
//Enlarge the image
$('#myImageThumbnail').attr('height','300');
$('#myImageThumbnail').attr('width','200');
});
$('#myImageThumbnail').mouseleave(function(){
//Remove the description text
$('#descriptionDiv').html('');
//Return image/thumbnail to original size
$('#myImageThumbnail').attr('height','150');
$('#myImageThumbnail').attr('width','100');
});
Se você precisava extrair informações dinâmicas de um banco de dados para a descrição, basta olhar para a função jQuery $ .ajax e definir a descrição HTML como o valor retornado.