Existe uma maneira de programar uma imagem de mouseOver que controla 2 divs [imagem maior e uma descrição de texto

StackOverflow https://stackoverflow.com/questions/1490492

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 :)

Foi útil?

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.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top