모달창에서 카카오지도API 잘림 오류 대처법
아래 사진과 같이, 동일한 소스여도 일반 HTML 페이지에서는 지도가 잘 보이지만, 모달창에서 불러올 때는 지도가 잘리는 경우가 있다.

원인은 호출 시점의 문제로,
동적으로 display나 크기가 바뀌거나 모달창 호출하는 등 변경이 생긴 경우에, 지도를 다시 호출해주어야한다.
카카오지도api에서 map을 다시 호출하는 함수는 map.relayout(); 에 해당한다.
아래는 예시이다.
<a href="javascript:openModal('modal2'); relayout();">지도열기</a>
<script>
var mapContainer = document.getElementById('map'), // 지도를 표시할 div
mapOption = {
center: new kakao.maps.LatLng(33.452613, 126.570888), // 지도의 중심좌표
level: 3 // 지도의 확대 레벨
};
// 지도를 생성합니다
var map = new kakao.maps.Map(mapContainer, mapOption);
function relayout() {
map.relayout();
}
</script>
openModal로 모달창을 호출한 후, relayout 함수로 map을 다시 호출하는 예시이다.
만약 마커핀이 있거나, 중심점이 있는 경우에도 다시 재설정해주어야한다.
이 때는 setCenter(); 함수를 사용한다.
function relayout() {
map.relayout();
var moveLatLon = new kakao.maps.LatLng(33.452613, 126.570888);
map.setCenter(moveLatLon);
}

끝.
반응형
반응형
'개발하는 '정' > JS' 카테고리의 다른 글
javascript 현재 날짜 구하기 / 날짜 더하고 빼기 / date format (YYYY-mm-dd) (1) | 2023.10.17 |
---|---|
jquery input 비밀번호 표시, 숨김 기능 구현 (0) | 2023.10.12 |
자바스크립트로 카운트다운하기 (0) | 2023.10.04 |
JQUERY 두 테이블 간에 <tr> 주고 받기 (0) | 2023.08.22 |
chart.js radar 차트 겹치는 경우 미표시 (0) | 2022.11.23 |
댓글