Mam istniejącą mapę obrazu w responsywnym układzie html. Obrazy są skalowane zgodnie z rozmiarem przeglądarki, ale współrzędne obrazu mają oczywiście stałe rozmiary w pikselach. Jakie mam opcje zmiany rozmiaru współrzędnych mapy obrazu?
145
Odpowiedzi:
Aby uzyskać responsywne mapy obrazu, musisz użyć wtyczki:
https://github.com/stowball/jQuery-rwdImageMaps (nie jest już obsługiwane)
Lub
https://github.com/davidjbradshaw/imagemap-resizer
http://www.howtocreate.co.uk/tutorials/html/imagemaps
A także ta strona do testowania, czy przeglądarki obsługują
http://home.comcast.net/~urbanjost/IMG/resizeimg3.html
źródło
Możesz także użyć SVG zamiast mapy obrazu. ;)
Istnieje poradnik, jak to zrobić.
źródło
Responsywne mapy obrazów Wtyczka jQuery autorstwa Matt Stow
źródło
$(window).trigger('resize');
window
w tym przypadku). Powodzenia.Natrafiłem na rozwiązanie, które w ogóle nie używa map obrazów, ale raczej znaczniki kotwicy, które są absolutnie umieszczone nad obrazem. Jedyną wadą byłoby to, że hotspot musiałby być prostokątny, ale plusem jest to, że to rozwiązanie nie opiera się na Javascript, tylko na CSS. Istnieje witryna internetowa, której można użyć do wygenerowania kodu HTML dla kotwic: http://www.zaneray.com/responsive-image-map/
Umieściłem obraz i wygenerowane znaczniki kotwicy we względnie umieszczonym znaczniku DIV i wszystko działało idealnie przy zmianie rozmiaru okna i na moim telefonie komórkowym.
źródło
Znalazłem sposób bez JS, aby rozwiązać ten problem, jeśli nie przeszkadzają ci prostokątne obszary uderzenia.
Przede wszystkim upewnij się, że obraz znajduje się w elemencie div, który jest względnie ustawiony. Następnie umieść obraz wewnątrz tego elementu div, co oznacza, że zajmie on całą przestrzeń w elemencie div. Na koniec dodaj absolutnie pozycjonowane elementy div pod obrazem, w głównym div, i użyj wartości procentowych dla góry, lewej, szerokości i wysokości, aby uzyskać żądany rozmiar i pozycję obszarów kliknięcia linków.
Uważam, że najłatwiej jest nadać elementowi div koloru czarnego tła (najlepiej z pewnym zanikaniem alfa, aby można było zobaczyć połączoną zawartość pod spodem) podczas pierwszej pracy i użyć inspektora kodu w przeglądarce, aby dostosować wartości procentowe w czasie rzeczywistym , abyś mógł to zrobić dobrze.
Oto podstawowy zarys, z którym możesz pracować. Robiąc wszystko z procentami, upewniasz się, że wszystkie elementy mają ten sam względny rozmiar i położenie, co skalowanie obrazu.
Użyj tego kodu z inspektorem kodu w Chrome lub w wybranej przeglądarce i dostosuj wartości procentowe (możesz użyć procent dziesiętnych, aby być dokładniejszym), aż pola będą odpowiednie. Również wybrać
background-color
odtransparent
kiedy jesteś gotowy, aby go używać, ponieważ chcesz, aby obszary obrażeń być niewidoczne.źródło
David Bradshaw napisał ładną małą bibliotekę, która rozwiązuje ten problem. Może być używany z jQuery lub bez niego.
Dostępne tutaj: https://github.com/davidjbradshaw/imagemap-resizer
źródło
Poniższa metoda działa idealnie dla mnie, więc oto moja pełna realizacja:
źródło
Pracuje dla mnie (pamiętaj o zmianie 3 rzeczy w kodzie):
previousWidth (oryginalny rozmiar obrazu)
map_ID (identyfikator mapy obrazu)
img_ID (identyfikator Twojego obrazu)
HTML:
JavaScript:
JSFiddle: http://jsfiddle.net/p7EyT/154/
źródło
Spotykam się z tym samym wymaganiem, w którym chcę pokazać responsywną mapę obrazu, która może zmieniać rozmiar z dowolnym rozmiarem ekranu i ważne jest, aby podkreślić te współrzędne .
Wypróbowałem więc wiele bibliotek, które mogą zmieniać rozmiar współrzędnych w zależności od rozmiaru ekranu i zdarzenia. I mam najlepsze rozwiązanie (jquery.imagemapster.min.js), które działa dobrze z prawie wszystkimi przeglądarkami. Zintegrowałem go również z Summer Plgin, która tworzy mapę obrazu.
Mam nadzieję, że komuś pomogę.
źródło
http://home.comcast.net/~urbanjost/semaphore.html to główna strona dyskusji i tak naprawdę zawiera linki do rozwiązania problemu opartego na JavaScript. Otrzymałem powiadomienie, że HTML będzie obsługiwał jednostki procentowe w przyszłości, ale nie widziałem żadnych postępów w tej sprawie od dłuższego czasu (prawdopodobnie minął ponad rok, odkąd usłyszałem, że wsparcie będzie się zbliżać), więc obejście jest takie prawdopodobnie warto się temu przyjrzeć, jeśli dobrze znasz JavaScript / ECMAScript.
źródło
Sprawdź wtyczkę mapy obrazu na Github. Działa zarówno z waniliowym JavaScriptem, jak i jako wtyczka jQuery.
Sprawdź demo .
źródło
To zależy, myślę, że możesz użyć jQuery do proporcjonalnej regulacji zakresów. Dlaczego przy okazji korzystasz z mapy obrazu? Nie możesz użyć do tego skalujących elementów div lub innych elementów?
źródło
Dla tych, którzy nie chcą uciekać się do JavaScript, oto przykład wycinania obrazu:
http://codepen.io/anon/pen/cbzrK
Gdy skalujesz okno, obraz klauna będzie odpowiednio skalowany, a kiedy to nastąpi, nos klauna pozostaje hiperłączem.
źródło
Podobnie jak odpowiedź Orlanda tutaj: https://stackoverflow.com/a/32870380/462781
W połączeniu z kodem Chrisa tutaj: https://stackoverflow.com/a/12121309/462781
Jeśli obszary mieszczą się w siatce, można je nałożyć przezroczystymi obrazami, używając szerokości w%, które zachowują proporcje.
Możesz użyć marginesu w%. Dodatkowo obrazy „kosmiczne” mogą być umieszczane obok siebie wewnątrz div 3 poziomu.
źródło
Z jakiegoś powodu żadne z tych rozwiązań nie zadziałało. Największy sukces odniosłem, używając transformacji.
źródło
responsywna szerokość i wysokość
źródło