Ir ao conteúdo
  • Cadastre-se

JQuery - efeito flip em várias imagens


Posts recomendados

Boa tarde, pessoal!

Estou começando com HTML há pouco tempo e tenho que entregar um trabalho na faculdade. Na página que estou fazendo quero fazer um efeito flip com algumas imagens, sendo ao clicar nelas seja exibido um pequeno painel sobre cada uma delas, de forma independente.

Com o código que eu fiz não consigo fazer isso em todas as fotos, apenas na primeira imagem.

Segue o esboço do código:

<!Doctype html>
<html>
    <head>
        <title>TESTE</title>
        <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.2.1/jquery.min.js"></script>
        <meta charset = 'utf=8'>
        <style type="text/css">
            body{
                background: gray;
                }
            #flip{
                cursor: pointer;
            }
            #panel{
                text-align: justify;
                padding: 5px;
                display: none;
                width: 25%;
                opacity: 0.4;
                background-color: #ffffff;
            }
        </style>
      
        <script>
            $(document).ready(function(){
                $("#flip").click(function(){
                    $("#panel").slideToggle("slow");
                });
            });
        </script>
    </head>

    <body>
        
        <div align = 'left' >
            <img id = 'flip' src = 'foto1.jpg'>
            <div>Nome da Foto</div>
            <div id = 'panel'>Aqui foi reservado para que seja exposto
                            um pequeno texto referenete a imagem clicada.</div>
        </div>
        <div align = 'center' >
            <img id = 'flip' src = 'foto1.jpg'>
            <div>Nome da Foto</div>
            <div id = 'panel'>Aqui foi reservado para que seja exposto
                            um pequeno texto referenete a imagem clicada.</div>
        </div>
        <div align = 'right' >
            <img id = 'flip' src = 'foto1.jpg'>
            <div>Nome da Foto</div>
            <div id = 'panel'>Aqui foi reservado para que seja exposto
                            um pequeno texto referenete a imagem clicada.</div>
        </div>
    </body>
</html>

 

Link para o comentário
Compartilhar em outros sites

  • Moderador

@MarcosCS Olá,  Seja bem vindo em nosso Clube do Hardware.

 

Creio que o seu problema esteja em utilizar o mesmo ID nas outras imagens.

Experimente alterar de ID para  CLASS. 

 

id="flip"  para  class="flip"

id="painel" para  class="painel"

 

E no CSS de:

#flip{
       cursor: pointer;
   }
#panel{
       text-align: justify;
       padding: 5px;
       display: none;
       width: 25%;
       opacity: 0.4;
       background-color: #ffffff;
}

 

Para:

.flip{
       cursor: pointer;
   }
.panel{
       text-align: justify;
       padding: 5px;
       display: none;
       width: 25%;
       opacity: 0.4;
       background-color: #ffffff;
}

Lembre-se: somente CLASS pode ser repetido. ID são sempre únicos, usados para estruturas onde não se repetem.

 

Mas ainda assim, não iria funcionar como o esperado.. 

Para isso, precisas dizer qual o elemento ele está manipulando. Então entra  o $(this) na história!

 

Além disso, você tem erro na estrutura html.. então não vai funcionar como o esperado também.

Veja um exemplo do seu código corrigido.

 

https://jsfiddle.net/uwybr82h/

 

PS: Este não é o efeito de flip.  Mas sim efeito de Slide Toggle.  Se quiser um efeito flip (virada)

Veja este plugin: https://nnattawat.github.io/flip/

 

Link para o comentário
Compartilhar em outros sites

  • Moderador

@MarcosCS Legal!

Uma sugestão:

 

Ao invés de fazer um slidetoggle para fora,  experimente fazer um slidetoggle interno na imagem!

O efeito é bem interessante quando combinado com  a cor branca e alfa 0.5  o comando   rgba(255,255,255, 0.5)

 

Para isso, a dica que posso dar é você definir a imagem como posição relativa e o box do panel todo como posição absoluta delimitado pelos limites da imagem! 

Link para o comentário
Compartilhar em outros sites

Visitante
Este tópico está impedido de receber novas respostas.

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...