js 또는 react에서 라이브러리를 이용해
반응형 이미지 맵을 구현합니다.
react에서 resposive image map 구현을 시도할때
가장 유명한 라이브러리는 jQuery를 이용한 rwdimagemap 라이브러리인데
react에서 jQuery 을 설치하고 싶지도 않았고, 설치하였구나 작동이 안되고 오류 메시지가 출현하였습니다.
그래서 react에서 할 수 있는 다른 javascript responsive image map 라이브러리를 찾았습니다.
반응형 이미지 맵 구현 하기
구현 화면
image-map 라이브러리
image-map 이라는 라이브러리고 구글에서 image-map을 검색하여 npmjs 사이트에 가면 자세한 자료를 볼 수 있습니다.
image-map 라이브러리 사용법
image 좌표 구하기
image-map 설치 전에
아래 사이트에 들어가서 먼저 사용할 이미지의 좌표를 각각 구해서 코드를 복사해 옵니다.
선택할 영역을 지정 후 Show Me The code를 선택합니다.
이미지 좌표가 삽입된 <map> <area> 태그가 완성됩니다.
그대로 복사합니다.
npm 설치
npm install image-map
자바스크립트 코드
//상단 <head> 태그 사이에 삽입
<script src="//t1.daumcdn.net/tistory_admin/lib/jquery/jquery-1.12.4.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/jQuery-rwdImageMaps/1.6/jquery.rwdImageMaps.min.js"></script>
//body 아래에 삽입
<script>
$(function(){
$('img[usemap]').rwdImageMaps();
});
</script>
react import 코드
react를 사용한 복사한 코드를 return 코드 내에 삽입하고 ImageMap를 import 합니다.
import React, { useEffect } from 'react';
import ImageMap from "image-map";
const Intro = () => {
useEffect(() => {
ImageMap('img[usemap]') //ImageMap 삽입코드
}, [])
const clickHandler = (titile) => {
alert(titile)
}
return (
<>
<img src="/images/mobile/home/231.jpeg" useMap="#image-map" />
<map name="image-map">
<area onClick={() => clickHandler('보')} target="" alt="" title="보" href="" coords="2,57,75,7,139,14,186,100,187,128,153,192,107,222,42,208,18,141" shape="poly"></area>
<area onClick={() => clickHandler('가위')} target="" alt="" title="가위" href="" coords="266,19,247,128,279,206,326,218,362,204,389,131,372,23,351,13,295,10" shape="poly"></area>
<area onClick={() => clickHandler('바위')} target="" alt="" title="바위" href="" coords="216,199,127,250,128,314,171,367,229,371,268,340,291,268" shape="poly"></area>
</map>
</>
);
};
export default Intro;
반응형
'개발 > Javascript' 카테고리의 다른 글
[js] html 이미지 저장하기 기능 구현 (ft. html2canvas) (0) | 2022.03.28 |
---|---|
[js] 단어 filtering 다중 단어 filtering (ft. includes, some) (0) | 2022.02.17 |
[js] 두가지 배열 합치기, 중복되는 요소 찾기 (0) | 2022.01.24 |
[js] find includes 차이 (0) | 2022.01.24 |
[js] 자바스크립트 코드 줄이는 방법 (0) | 2022.01.24 |
댓글