Eu tenho um mapa de imagem existente em um layout html responsivo. As imagens são dimensionadas de acordo com o tamanho do navegador, mas as coordenadas da imagem são obviamente tamanhos de pixels fixos. Quais são as opções que tenho para redimensionar as coordenadas do mapa de imagens?
145
Respostas:
Para mapas de imagem responsivos, você precisará usar um plugin:
https://github.com/stowball/jQuery-rwdImageMaps (não é mais mantido)
Ou
https://github.com/davidjbradshaw/imagemap-resizer
http://www.howtocreate.co.uk/tutorials/html/imagemaps
E também esta página para testar se os navegadores implementam
http://home.comcast.net/~urbanjost/IMG/resizeimg3.html
fonte
Você também pode usar svg em vez de um mapa de imagem. ;)
Há um tutorial sobre como fazer isso.
fonte
Responsive Image Maps jQuery Plugin de Matt Stow
fonte
$(window).trigger('resize');
window
neste caso). Boa sorte.Encontrei uma solução que não usa mapas de imagem, mas tags de âncora que estão absolutamente posicionadas sobre a imagem. A única desvantagem seria que o ponto de acesso teria que ser retangular, mas a vantagem é que essa solução não depende de Javascript, apenas de CSS. Existe um site que você pode usar para gerar o código HTML para as âncoras: http://www.zaneray.com/responsive-image-map/
Coloquei a imagem e as tags âncora geradas em uma tag div relativamente posicionada e tudo funcionou perfeitamente no redimensionamento da janela e no meu celular.
fonte
Eu encontrei uma maneira no-JS de resolver isso, se você estiver bem com áreas de acerto retangulares.
Antes de tudo, verifique se sua imagem está em uma div que está relativamente posicionada. Em seguida, coloque a imagem dentro desta div, o que significa que ela ocupará todo o espaço na div. Por fim, adicione divs absolutamente posicionadas sob a imagem, dentro da div principal, e use porcentagens para cima, esquerda, largura e altura para obter as áreas atingidas pelo link com o tamanho e a posição desejados.
Acho que é mais fácil dar à div uma cor de fundo preto (de preferência com algum desbotamento alfa para que você possa ver o conteúdo vinculado abaixo) quando estiver trabalhando pela primeira vez e usar um inspetor de código no navegador para ajustar as porcentagens em tempo real , para que você possa acertar.
Aqui está o esboço básico com o qual você pode trabalhar. Ao fazer tudo com porcentagens, você garante que todos os elementos permaneçam com o mesmo tamanho e posição relativos que a imagem é dimensionada.
Use esse código com seu inspetor de código no Chrome ou no navegador de sua escolha e ajuste as porcentagens (você pode usar porcentagens decimais para ser mais exato) até que as caixas estejam perfeitas. Também escolher um
background-color
detransparent
quando você estiver pronto para usá-lo desde que você quer suas áreas de vida para ser invisível.fonte
David Bradshaw escreveu uma pequena e agradável biblioteca que resolve esse problema. Pode ser usado com ou sem jQuery.
Disponível aqui: https://github.com/davidjbradshaw/imagemap-resizer
fonte
O método a seguir funciona perfeitamente para mim, então aqui está minha implementação completa:
fonte
Trabalhando para mim (lembre-se de alterar três coisas no código):
previousWidth (tamanho original da imagem)
map_ID (ID do seu mapa de imagens)
img_ID (ID da sua imagem)
HTML:
Javascript:
JSFiddle: http://jsfiddle.net/p7EyT/154/
fonte
Me deparei com o mesmo requisito, onde, eu quero mostrar um mapa de imagem responsivo que pode ser redimensionado com qualquer tamanho de tela e o importante é que eu quero destacar as coordenadas .
Então, eu tentei muitas bibliotecas que podem redimensionar coordenadas de acordo com o tamanho da tela e evento. E eu tenho a melhor solução (jquery.imagemapster.min.js), que funciona bem com quase todos os navegadores. Também o integrei com o Summer Plgin, que cria um mapa de imagens.
Espero ajudar com alguém.
fonte
http://home.comcast.net/~urbanjost/semaphore.html é a página inicial da discussão e, na verdade, possui links para uma solução baseada em JavaScript para o problema. Recebi um aviso de que o HTML oferecerá suporte a unidades percentuais no futuro, mas não vejo nenhum progresso nisso há algum tempo (provavelmente já faz mais de um ano desde que eu ouvi o suporte), portanto, a solução alternativa é provavelmente vale a pena examinar se você se sente confortável com JavaScript / ECMAScript.
fonte
Confira o plugin de mapa de imagem no Github. Funciona com JavaScript vanilla e como um plugin jQuery.
Confira a demonstração .
fonte
Depende, você pode usar o jQuery para ajustar os intervalos proporcionalmente, eu acho. Por que você usa um mapa de imagem a propósito? Você não pode usar divs de escala ou outros elementos para isso?
fonte
Para aqueles que não querem recorrer ao JavaScript, veja um exemplo de corte de imagem:
http://codepen.io/anon/pen/cbzrK
À medida que você dimensiona a janela, a imagem do palhaço será dimensionada de acordo e, quando o fizer, o nariz do palhaço permanecerá com hiperlink.
fonte
Semelhante à resposta de Orland aqui: https://stackoverflow.com/a/32870380/462781
Combinado com o código de Chris aqui: https://stackoverflow.com/a/12121309/462781
Se as áreas couberem em uma grade, você pode sobrepor as áreas por figuras transparentes, usando uma largura em% que mantém sua proporção.
Você pode usar uma margem em%. Além disso, imagens de "espaço" podem ser colocadas próximas umas das outras dentro de uma div de terceiro nível.
fonte
Por alguma razão, nenhuma dessas soluções funcionou para mim. Eu tive o melhor sucesso usando transformações.
fonte
largura responsiva e altura
fonte