jQuery 자바스크립트 이미지 좌표구해 영역 설정하기 마우스 손가락 표시
이미지의 특정영역을 클릭했을 때 이벤트를 발생하기 위해 사용한다.
우선 영역을 구하기 위해서는 해당 이미지 영역의 좌표를 필요로 한다.
이미지의 좌표를 구하는 방법은 아래와 같다.
이미지에 onClick 이벤트를 준다.
<img onClick="javascript:getLoc()">
- 이미지의 좌표를 구하는 함수
function getLoc(){
var x = event.offsetX;
var y = event.offsetY;
alert("현재좌표는 : "+x+" / "+y);
}
이렇게 하면 이미지의 x, y 좌표 값을 구할 수 있다.
그렇다면 영역을 설정하는 방법을 알아보자.
이미지의 영역을 설정하기 위해서는 이미지 맵을 사용한다.
이미지 맵은 이미지에 복수의 영역을 설정할 때 사용한다.
1
2
3
4
5
6
|
<img src=이미지.png usemap="#Map">
<map name="Map" id="Map">
<area shape="rect" coords="170,108,299,129" onClick="javascript:popup(1)" tabindex="1">
<area shape="rect" coords="221,323,344,342" onClick="javascript:popup(2)" tabindex="2">
</map>
|
cs |
coords는 해당 영역의 좌측상단 좌표와 우측하단 좌표를 설정해 주면 된다.
이렇게 하면 해당 영역이 설정된다.
영역을 클릭할 경우 popup 함수가 호출된다.
위의 소스에 tabindex를 준 이유는 이미지 클릭 후 tab버튼을 클릭해 넘어가는 영역의 순서를 정해주기 위해서다.
그리고 영역에 마우스 오버를 했을 때 손가락 모양을 주기 위해서는 href="#" 를 <area> 태그에 추가해 준다.
(혹은 style="cursor:pointer" 를 지정해 준다.)
<area shape="rect" coords="170,108,299,129" onClick="javascript:popup(1)" tabindex="1" href="#">
(일반적으로 사용하는 style="cursor:pointer" 는 적용이 안된다.)
그럼 설정된 영역위에 마우스가 올라가면 손가락 커서로 변경된다.
-------------2017.08.09 추가 -----------------
이미지 특정 영역에 마우스 오버 시 이미지 표출
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
|
<div class="shop01">
<img src="../resource/images/restplan01.png" alt="낙동강구미휴게소 배치도" usemap="#plan01"/>
<div id="linkA1" class="shoppop shop1"></div>
<div id="linkA2" class="shoppop shop2"></div>
<div id="linkA3" class="shoppop shop3"></div>
<div id="linkA4" class="shoppop shop4"></div>
<div id="linkA5" class="shoppop shop5"></div>
<div id="linkA6" class="shoppop shop6"></div>
<div id="linkA7" class="shoppop shop7"></div>
<div id="linkA8" class="shoppop shop8"></div>
<div id="linkA9" class="shoppop shop9"></div>
<div id="linkA10" class="shoppop shop10"></div>
</div>
<map name="plan01" id="plan01" class="plan">
<area shape="rect" coords="167,40,212,84" id="#linkA1" href="#"/>
<area shape="rect" coords="212,40,256,84" id="#linkA2" href="#"/>
<area shape="rect" coords="256,40,300,84" id="#linkA3" href="#"/>
<area shape="rect" coords="299,40,344,84" id="#linkA4" href="#"/>
<area shape="rect" coords="74,143,117,168" id="#linkA5" href="#"/>
<area shape="rect" coords="72,86,101,123" id="#linkA6" href="#"/>
<area shape="rect" coords="500,27,519,84" id="#linkA7" href="#"/>
<area shape="rect" coords="381,144,521,168" id="#linkA8" href="#"/>
<area shape="rect" coords="120,144,162,169" id="#linkA9" href="#"/>
<area shape="rect" coords="410,27,500,84" id="#linkA10" href="#"/>
</map>
|
cs |
1
2
3
4
5
6
7
8
9
|
$('area').mouseover(function(){
var showId = $(this).attr('id');
$(showId).show();
});
$('area').mouseout(function(){
var hideId = $(this).attr('id');
$(hideId).hide();
});
|
cs |
shop01 클래스 내의 div에는 백그라운드로 이미지가 깔려있다.
image map 에 area에 mouseover, out 시 해당 id 값을 받아 div를 보이고 안보이고 하면 된다.
'Programing > jQuery' 카테고리의 다른 글
json 파일 읽기 $.getJSON (0) | 2017.10.18 |
---|---|
jquery jqgrid 의 모든 것, 사용법, jQuery 추천 그리드 (3) | 2017.09.22 |
jquery 제이쿼리 모달 팝업 드래그 하기 드래그 옵션 jquery draggable() 화면 넘어가는 것 방지 (0) | 2016.03.15 |
jquery 제이쿼리 탑버튼 구현, 최상단으로 올라가기, 최상단 이동 (0) | 2016.02.24 |
bxslider 이미지 슬라드, 버튼 클릭해 이미지 슬라이드, 이미지 슬라이더, 이미지 넘어가기 (0) | 2016.02.24 |
댓글