Tengo un mapa de imagen existente en un diseño html receptivo. Las imágenes se escalan de acuerdo con el tamaño del navegador, pero las coordenadas de la imagen son obviamente tamaños fijos de píxeles. ¿Qué opciones tengo para cambiar el tamaño de las coordenadas del mapa de imagen?
145
Respuestas:
Para mapas de imagen receptivos, necesitará usar un complemento:
https://github.com/stowball/jQuery-rwdImageMaps (ya no se mantiene)
O
https://github.com/davidjbradshaw/imagemap-resizer
http://www.howtocreate.co.uk/tutorials/html/imagemaps
Y también esta página para probar si los navegadores implementan
http://home.comcast.net/~urbanjost/IMG/resizeimg3.html
fuente
También puede usar svg en lugar de un mapa de imagen. ;)
Hay un tutorial sobre cómo hacer esto.
fuente
Responsive Image Maps jQuery Plugin por Matt Stow
fuente
$(window).trigger('resize');
window
en este caso). Buena suerte.Me encontré con una solución que no usa mapas de imágenes en absoluto, sino etiquetas de anclaje que están absolutamente posicionadas sobre la imagen. El único inconveniente sería que el punto de acceso tendría que ser rectangular, pero la ventaja es que esta solución no se basa en Javascript, solo en CSS. Hay un sitio web que puede usar para generar el código HTML para las anclas: http://www.zaneray.com/responsive-image-map/
Puse la imagen y las etiquetas de anclaje generadas en una etiqueta div relativamente posicionada y todo funcionó perfectamente en el cambio de tamaño de la ventana y en mi teléfono móvil.
fuente
Encontré una forma no JS de abordar esto si estás de acuerdo con las áreas de golpe rectangulares.
En primer lugar, asegúrese de que su imagen esté en un div que esté relativamente posicionada. Luego ponga la imagen dentro de este div, lo que significa que ocupará todo el espacio en el div. Finalmente, agregue divs posicionados absolutamente debajo de la imagen, dentro del div principal, y use porcentajes para arriba, izquierda, ancho y alto para obtener las áreas de contacto del tamaño y la posición que desee.
Creo que es más fácil darle al div un color de fondo negro (idealmente con un desvanecimiento alfa para que pueda ver el contenido vinculado debajo) cuando trabaje por primera vez, y usar un inspector de código en su navegador para ajustar los porcentajes en tiempo real , para que puedas hacerlo bien.
Aquí está el esquema básico con el que puede trabajar. Al hacer todo con porcentajes, se asegura de que todos los elementos mantengan el mismo tamaño y posición relativa que la escala de la imagen.
Use este código con su inspector de código en Chrome o con su navegador de su elección, y ajuste los porcentajes (puede usar porcentajes decimales para ser más exactos) hasta que los cuadros sean correctos. También elija una
background-color
detransparent
cuando esté listo para usarlo, ya que desea que sus áreas de impacto sean invisibles.fuente
David Bradshaw escribió una pequeña biblioteca que resuelve este problema. Se puede usar con o sin jQuery.
Disponible aquí: https://github.com/davidjbradshaw/imagemap-resizer
fuente
El siguiente método funciona perfectamente para mí, así que aquí está mi implementación completa:
fuente
Trabajando para mí (recuerde cambiar 3 cosas en el código):
previousWidth (tamaño original de la imagen)
ID_mapa (ID de su mapa de imagen)
img_ID (id de tu imagen)
HTML:
Javascript:
JSFiddle: http://jsfiddle.net/p7EyT/154/
fuente
Me encuentro con el mismo requisito donde, quiero mostrar un mapa de imagen sensible que puede cambiar de tamaño con cualquier tamaño de pantalla y lo importante es que quiero resaltar esas coordenadas .
Así que probé muchas bibliotecas que pueden cambiar el tamaño de las coordenadas según el tamaño de la pantalla y el evento. Y obtuve la mejor solución (jquery.imagemapster.min.js) que funciona bien con casi todos los navegadores. También lo he integrado con Summer Plgin que crea un mapa de imagen.
Espero ayudarlo a alguien.
fuente
http://home.comcast.net/~urbanjost/semaphore.html es la página principal de la discusión, y en realidad tiene enlaces a una solución del problema basada en JavaScript. He recibido un aviso de que HTML admitirá unidades porcentuales en el futuro, pero no he visto ningún progreso en esto en bastante tiempo (probablemente ha pasado más de un año desde que escuché que se recibiría soporte), así que la solución es Probablemente valga la pena mirar si te sientes cómodo con JavaScript / ECMAScript.
fuente
Echa un vistazo al complemento de mapa de imagen en Github. Funciona tanto con JavaScript vainilla como con un complemento jQuery.
Mira la demo .
fuente
Depende, creo que puede usar jQuery para ajustar los rangos proporcionalmente. ¿Por qué usas un mapa de imagen por cierto? ¿No puedes usar divs de escala u otros elementos para ello?
fuente
Para aquellos que no quieren recurrir a JavaScript, aquí hay un ejemplo de división de imágenes:
http://codepen.io/anon/pen/cbzrK
A medida que escala la ventana, la imagen del payaso se escalará en consecuencia, y cuando lo hace, la nariz del payaso permanece hipervinculada.
fuente
Similar a la respuesta de Orland aquí: https://stackoverflow.com/a/32870380/462781
Combinado con el código de Chris aquí: https://stackoverflow.com/a/12121309/462781
Si las áreas se ajustan a una cuadrícula, puede superponer las áreas con imágenes transparentes utilizando un ancho en% que mantenga su relación de aspecto.
Puede usar un margen en%. Además, las imágenes "espaciales" se pueden colocar una al lado de la otra dentro de un div de tercer nivel.
fuente
Por alguna razón, ninguna de estas soluciones funcionó para mí. He tenido el mejor éxito usando transformaciones.
fuente
ancho y alto receptivo
fuente