마우스를 클릭하면 마우스 우측하단에 레이어가 나오는 소스다.
만약 레이어가 브라우저 창의 너비나 길이를 벗어나게 되면 반대의 위치에 레이어를 보여준다.
반대의 위치에 레이어를 보여줬더니 기준점(0,0)을 벗어나게 되면 기준점(0,0)에 레이어를 배치한다.
위 샘플 각 환경에 맞게 수정해서 사용 가능하다.
Head
1
|
|
css
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
|
.imgSelect {
cursor: pointer;
}
.popupLayer {
position: absolute;
display: none;
background-color: #ffffff;
border: solid 2px #d0d0d0;
width: 350px;
height: 150px;
padding: 10px;
}
.popupLayer div {
position: absolute;
top: 5px;
right: 5px
}
|
Javascript
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
26
27
28
|
function closeLayer( obj ) {
$(obj).parent().parent().hide();
}
$(function(){
/* 클릭 클릭시 클릭을 클릭한 위치 근처에 레이어가 나타난다. */
$('.imgSelect').click(function(e)
{
var sWidth = window.innerWidth;
var sHeight = window.innerHeight;
var oWidth = $('.popupLayer').width();
var oHeight = $('.popupLayer').height();
// 레이어가 나타날 위치를 셋팅한다.
var divLeft = e.clientX + 10;
var divTop = e.clientY + 5;
// 레이어가 화면 크기를 벗어나면 위치를 바꾸어 배치한다.
if( divLeft + oWidth > sWidth ) divLeft -= oWidth;
if( divTop + oHeight > sHeight ) divTop -= oHeight;
// 레이어 위치를 바꾸었더니 상단기준점(0,0) 밖으로 벗어난다면 상단기준점(0,0)에 배치하자.
if( divLeft < 0 ) divLeft = 0;
if( divTop < 0 ) divTop = 0;
$('.popupLayer').css({
"top": divTop,
"left": divLeft,
"position": "absolute"
}).show();
});
});
|
'IT기술 > javascript' 카테고리의 다른 글
자바스크립트의 비동기 처리 (0) | 2021.02.06 |
---|---|
[javascript] JavaScript를 사용하여 새 탭에서 URL 열기 (0) | 2018.10.30 |
팝업창에서 부모창의 함수 호출 방법(opener) (0) | 2018.10.30 |
자바스크립트(Javascript) display 속성 이용해서 숨기기 보이기 (0) | 2018.10.30 |
Layer Pop-up (레이어 팝업) (0) | 2018.10.07 |