
-
Recent Posts
Recent Comments
Archives
Categories
Meta
Esse post é baseado no Image replacement gallery e nele mostrarei como otimizar o exemplo da WebDesignerWall. Vejam o que acrescentarei nessa galeria.
Aplicando-se as correções ficara como na imagem abaixo. Confira o demo
Vamos capturar o href do primeiro link que se encontra dentro do div=”thumbs”.
$("#thumbs a:first").addClass("ativo");
var largePath = $("#thumbs a:first").attr('href');
var largeAlt = $("#thumbs a:first").find('img').attr('alt');
$("#largeImg").attr({src: largePath, alt: largeAlt});
$("h2 em").html(" (" + largeAlt + ")");
Agora definimos que quando a imagem com id=” largeImg” for clicada devesse pegar o próximo link.
$("#largeImg").click(function(){
$(".ativo").toggleClass("ativo").next("#thumbs a").addClass("ativo");
var largePath = $(".ativo").attr('href');
var largeAlt = $(".ativo").find('img').attr('alt');
$("#largeImg").attr({src: largePath, alt: largeAlt});}
$("h2 em").html(" (" + largeAlt + ")");
});
Agora devemos definir um condicional para dizer ao script o que fazer quando chegar no último link descendente do div com id=’thumb’ .
$("#largeImg").click(function(){
if ($("#thumbs a:last-child").is(".ativo")){
$("#thumbs a:first").addClass("ativo");
$("#thumbs a:last").removeClass("ativo");
var largePath = $(".ativo").attr('href');
var largeAlt = $(".ativo").find('img').attr('alt');
$("#largeImg").attr({src: largePath, alt: largeAlt});
$("h2 em").html(" (" + largeAlt + ")");
} else{
$(".ativo").toggleClass("ativo").next("#thumbs a").addClass("ativo");
var largePath = $(".ativo").attr('href');
var largeAlt = $(".ativo").find('img').attr('alt');
$("#largeImg").attr({src: largePath, alt: largeAlt});}
$("h2 em").html(" (" + largeAlt + ")");
});
Se (if) o último link descendente de id=”thumbs” possuir a class=”ativo”
Caso o ultimo link NÃO possuir a class=’ativo’, ele executa o que já fora dito ‘Imagem frontal clicável’
Vamos usar deste hack para emular o efeito hover no IE6. Notem que não há problema em usar desta pratica, desde que, não obstrua o site.
$('#hold-largeImg').hover(function(){
$(this).css('border-color', 'ff9900');
}, function(){
$(this).css('border-color', '');
}
);