Jump to content
Fórum Script Brasil
  • 0

(Resolvido) Marcar thumbnail ao clicar


Renan Mafra

Question

Olá pessoal, bom dia.

To com o seguinte problema que não estou conseguindo resolver.
Estou fazendo uma pequena galeria de fotos com até no máximo 20 thumbnails, ao clicar no thumb eu gostaria que aparecesse uma borda
sinalizando que a pessoa clicou naquela foto, e ao clicar em outra acontecesse a mesma coisa, marcando sempre a thumb atual.

Eu pensei fazer com um javascript que acionasse o CSS, está em negrito no código, mais serve da maneira que for melhor.

Agradeço pela atenção.

Segue o meu código:

<html>
<head>
<style type="text/css">
body {
background-color: #000;
}
#apDiv1 {
position:absolute;
left:631px;
top:185px;
width:55px;
height:37px;
z-index:1;
}
#apDiv2 {
position:absolute;
left:741px;
top:185px;
width:55px;
height:37px;
z-index:1;
}
#linha{
border:solid;
border-color:#FFF;
border-width:1px;
}
</style>
</head>
<body>
<div id="apDiv1"><a href="#"><img src="1.gif" width="68" height="41" id="linha"/></a></div>
<div id="apDiv2"><a href="#"><img src="2.gif" width="68" height="41" id="linha"/></a></div>
</body>
</html>
Link to comment
Share on other sites

9 answers to this question

Recommended Posts

  • 0

Com jQuery é relativamente simples:

$(function() {
    $("img").click(function() {
        $("img").not(this).removeClass("linha");
        $(this).addClass("linha");
    });
});

Fica um exemplo. Alterei o ID linha para uma classe pois não deves ter dois elementos com o mesmo ID num documento HTML.

Edited by wootzor
Link to comment
Share on other sites

  • 0

Amigo,

eu fiz assim:

$(window).load(function(){
$(function () {
$('.tumb').click(function () {
$('.tumb').not(this).removeClass("linha");
$(this).addClass("linha");
});
});
});//]]>
e nas imagens coloquei a class tumb assim:
<div id="apDiv2"><a href="#"><img src="http://placehold.it/68x41" width="68" height="41" border="0" class="tumb"/></a>
Tá certo ? Funcionou, mais está correto ?
Link to comment
Share on other sites

  • 0

Olá pessoal,

Estou com um problema, que é exatamente o mesmo de quando criei este tópico. É uma galeria de fotos. Que quando o usuário clicar no tumbnail o mesmo
fica com o border ativado e uma imagem é carregada dentro de uma DIV, e assim consequentemente... Tudo OK, mais eu preciso que quando a página
carregue, a primeira tumb já esteja acionada junto com a primeira imagem já carregada dentro da DIV. Como faço isso pessoal ? quem puder me ajudar
agradeço desde já ! Segue o código abaixo:

///////// JS

<script type='text/javascript' src='//code.jquery.com/jquery-2.1.3.js'></script>

$(document).ready(function() {
$(".imagem").click(function(event) {
event.preventDefault();
$("#imagem").html($("<img>").attr("src", this.href));
});
});
$(window).load(function(){
$(function () {
$('.tumb').click(function () {
$('.tumb').not(this).removeClass("linha");
$(this).addClass("linha");
});
});
});
///////// CSS
#imagem {
position:absolute;
left:11px;
top:798px;
width:856px;
height:879px;
z-index:1;
text-align:center;
}
.linha {
border:solid;
border-color:#999;
border-width: 1px;
}
#tumbnails {
position:absolute;
left:15px;
top:695px;
width:863px;
height:78px;
z-index:1;
}
/////// HTML
<div id="tumbnails">
<table width="857" border="0" cellspacing="0" cellpadding="0">
<tr>
<td height="43" width="71" align="left"><a href="fotos/01.gif" class="imagem"><img src="fotos/tumbs/tumb01.gif" width="68" height="41" border="0" class="tumb"></a></td>
<td width="71" align="left"><a href="fotos/02.gif" class="imagem"><img src="fotos/tumbs/tumb02.gif" width="68" height="41" border="0" class="tumb"></a></td>
<td width="71" align="left"><a href="fotos/03.gif" class="imagem"><img src="fotos/tumbs/tumb03.gif" width="68" height="41" border="0" class="tumb"></a></td>
<td width="71" align="left"><a href="fotos/04.gif" class="imagem"><img src="fotos/tumbs/tumb04.gif" width="68" height="41" border="0" class="tumb"></a></td>
<td width="71" align="left"><a href="fotos/05.gif" class="imagem"><img src="fotos/tumbs/tumb05.gif" width="68" height="41" border="0" class="tumb"></a></td>
<td width="71" align="left"><a href="fotos/06.gif" class="imagem"><img src="fotos/tumbs/tumb06.gif" width="68" height="41" border="0" class="tumb"></a></td>
<td width="71" align="left"><a href="fotos/07.gif" class="imagem"><img src="fotos/tumbs/tumb07.gif" width="68" height="41" border="0" class="tumb"></a></td>
<td width="71" align="left"><a href="fotos/08.gif" class="imagem"><img src="fotos/tumbs/tumb08.gif" width="68" height="41" border="0" class="tumb"></a></td>
<td width="71" align="left"><a href="fotos/09.gif" class="imagem"><img src="fotos/tumbs/tumb09.gif" width="68" height="41" border="0" class="tumb"></a></td>
<td width="71" align="left"><a href="fotos/010.gif" class="imagem"><img src="fotos/tumbs/tumb010.gif" width="68" height="41" border="0" class="tumb"></a></td>
<td width="71" align="left"><a href="fotos/011.gif" class="imagem"><img src="fotos/tumbs/tumb011.gif" width="68" height="41" border="0" class="tumb"></a></td>
<td width="76" align="left"><a href="fotos/012.gif" class="imagem"><img src="fotos/tumbs/tumb012.gif" width="68" height="41" border="0" class="tumb"></a></td>
</tr>
<tr>
<td height="43" align="left" valign="bottom"><a href="fotos/013.gif" class="imagem"><img src="fotos/tumbs/tumb013.gif" width="68" height="41" border="0" class="tumb"></a></td>
<td align="left" valign="bottom"><a href="fotos/014.gif" class="imagem"><img src="fotos/tumbs/tumb014.gif" width="68" height="41" border="0" class="tumb"></a></td>
<td align="left" valign="bottom"><a href="fotos/015.gif" class="imagem"><img src="fotos/tumbs/tumb015.gif" width="68" height="41" border="0" class="tumb"></a></td>
<td align="left" valign="bottom"><a href="fotos/016.gif" class="imagem"><img src="fotos/tumbs/tumb016.gif" width="68" height="41" border="0" class="tumb"></a></td>
<td align="left" valign="bottom"><a href="fotos/017.gif" class="imagem"><img src="fotos/tumbs/tumb017.gif" width="68" height="41" border="0" class="tumb"></a></td>
<td align="left" valign="bottom"><a href="fotos/018.gif" class="imagem"><img src="fotos/tumbs/tumb018.gif" width="68" height="41" border="0" class="tumb"></a></td>
<td align="left" valign="bottom"><a href="fotos/019.gif" class="imagem"><img src="fotos/tumbs/tumb019.gif" width="68" height="41" border="0" class="tumb"></a></td>
<td align="left" valign="bottom"><a href="fotos/020.gif" class="imagem"><img src="fotos/tumbs/tumb020.gif" width="68" height="41" border="0" class="tumb"></a></td>
<td align="left" valign="bottom"><a href="fotos/021.gif" class="imagem"><img src="fotos/tumbs/tumb021.gif" width="68" height="41" border="0" class="tumb"></a></td>
<td align="left" valign="bottom"><a href="fotos/022.gif" class="imagem"><img src="fotos/tumbs/tumb022.gif" width="68" height="41" border="0" class="tumb"></a></td>
<td align="left" valign="bottom"><a href="fotos/023.gif" class="imagem"><img src="fotos/tumbs/tumb023.gif" width="68" height="41" border="0" class="tumb"></a></td>
<td align="left" valign="bottom"><a href="fotos/024.gif" class="imagem"><img src="fotos/tumbs/tumb024.gif" width="68" height="41" border="0" class="tumb"></a></td>
</tr>
</table>
</div>
//////// DIV Aonde irá aparecer as fotos
<div id="imagem"></div>
Edited by Renan Mafra
Link to comment
Share on other sites

  • 0

Experimenta assim.

$(document).ready(function() {
	$("#imagem").html($("<img>").attr("src", $("img").first().parent("a").attr("href")));
	$("img").first().addClass("linha");
	$(".imagem").click(function(event) {
		event.preventDefault();
		$("#imagem").html($("<img>").attr("src", this.href));
	});
	$('.tumb').click(function() {
		$('.tumb').not(this).removeClass("linha");
		$(this).addClass("linha");
	});
});
Edited by wootzor
Link to comment
Share on other sites

  • 0

Olá Wootzor,

Eu quebrei um pouco a cabeça aqui, por que inseria o JS e não funcionou de primeira, mais depois vi por que... O primeiro elemento de
imagem não era o relacionado ao código, foi só colocar as tumbs dentro da div tumbnails mais acima do código tornando a primeira tumb
como o primeiro elemento de imagem da página, funcionou 100%.


Wootzor, mais uma vez muito obrigado pela sua inestimável ajuda !
Obrigado mesmo pelo help.

Grande abraço !!!!

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Answer this question...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.



  • Forum Statistics

    • Total Topics
      152.2k
    • Total Posts
      652k
×
×
  • Create New...