Ir para conteúdo
Fórum Script Brasil
  • 0

Image Zoom


Lucas Campanille

Pergunta

Eai pessoal, tudo bem?

Seguinte, eu estou com esse script:

<!DOCTYPE html>
<html>
<head>
&lt;script src="https://ajax.googleapis.com/ajax/libs/jquery/1.6.2/jquery.min.js"></script>
<style>
img{border:none;}

ul,li{
margin:0;
padding:0;
}

li{
list-style:none;
float:left;
display:inline;
margin-right:10px;
}

#zoom{
position:absolute;
border:1px solid #000;
display:none;
float:right;
}
</style>
</head>
<body>
<ul>
<li><a href="1.jpg" class="zoom"><img src="1.jpg" width="240" height="153" /></a></li>
<li><a href="2.jpg" class="zoom"><img src="2.jpg" width="240" height="153" /></a></li>
<li><a href="3.jpg" class="zoom"><img src="3.jpg" width="240" height="153" /></a></li>
</ul>

&lt;script>
this.imagezoom = function(){    
        xOffset = 30;
        yOffset = 10;
    $("a.zoom").hover(function(e){
        $("body").append("<p id='zoom'><img src='"+ this.href +"'/>"+"</p>");                                
        $("#zoom")
            .css("top",(event.pageY - yOffset) + "px")
            .css("left",(event.pageX + xOffset) + "px")
            .fadeIn("fast");                         
    },
    function(){
        this.title = this.t;    
        $("#zoom").remove();
    });    
    $("a.zoom").mousemove(function(e){
        $("#zoom")
            .css("top",(event.pageY - yOffset) + "px")
            .css("left",(event.pageX + xOffset) + "px");
    });        
};

$(document).ready(function(){
    imagezoom();
});
</script>

</body>
</html>
Ele só tem um problema que eu não consegui resolver. Se a imagem estiver no canto direito da tela (ex. quando a tela está redimensionada p/ tamanho menor) o #zoom vai continuar abrindo à direita, criando assim uma rolagem que eu não gostaria que tivesse. Minha ideia é que ele previsse isso, algo como:
Se ((posição_atual_do_mouse + tamanho_do_zoom) > largura_da_janela) { xOffset = (posição_atual_do_mouse - tamanho_do_zoom)}

assim daria pra, se por acaso passasse do tamanho total da janela, ele fizesse um espaçamento à esquerda e não à direita.

isso também sem ter que criar uma classe diferente pra cada link, já que as janelas podem ter tamanho diferenciado e tal...

Se alguém puder me ajudar ou dar uma dica, fico muito agradecido!

Link para o comentário
Compartilhar em outros sites

0 respostass a esta questão

Posts Recomendados

Até agora não há respostas para essa pergunta

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,3k
    • Posts
      652,3k
×
×
  • Criar Novo...