본문 바로가기

퍼블리싱/javascript&jQuery

[css/jquery] 간단한 팝업창(모달창) 만들기 2

오랜만에 다시 만들어 보는 모달 팝업!!

제 블로그에 모달 팝업창을 보러 들어오시는 분들이 많이 있어서 새롭게 뉴 버전으로 다시 만들어봤어요!

사실 만들때마다 살짝살짝 달라지기도 하고, 새로운 마음으로 다시 만들어 봤어요.

 

이 모달 팝업창의 특징은

01. 기존 만들어진 사이트에 붙이기 더 유용하도록 만들 것

예전에서는 아무것도 없는 상태에서 새로 만들었다면, 이미 있는 사이트에 붙여놓기 조금 더 간편 하도록 만들어봤어요.

02. close버튼의 범위 확장 

close버튼의 누를때 뿐 아니라, 반투명 뒷배경을 누를 때도 팝업이 없어지도록 했어요. 

03. 제이쿼리로 작성

지난번과 다르게 제이쿼리를 섞어 썼어요.

 

HTML

1
2
3
4
5
6
7
8
<body>
<div class="openPopup">클릭하면 팝업이 나와요</div>   
<div id="popup01">
    <div class="close">close</div>
    <div>팝업 내용</div>
</div>
</body>
 
cs

 

 

반투명의 배경은 html에 같이 만들었더니, 기존 사이트에 있는 것하고 걸려서 자꾸 화면에 꽉 차지 않는 문제가 발생해서, 아예 제이쿼리로 body 밑으로 요소가 추가하도록 변경했어요.

 

CSS

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
29
30
31
<style>
#popup01{
    display: none;
}
#popup01{
width: 500px;
height: 500px;
position: absolute;
top: 50%;
left: 50%;
margin: -250px 0 0 -250px;
background-color: #fff;
z-index: 2;
    }
.backon{
    content: "";
    width: 100%;
    height: 100%;
    background: #00000054;
    position: fixed;
    top: 0;
    left: 0;
    z-index: 1;
}
.close{
  position:absolute;
  top:-25px;
  right: 0;
  cursor:pointer;
}
.openPopup{
  cursor:pointer;
}
</style>
cs

 

SCRIPT

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
<script>
  $(document).ready(function( $ ){     
    $(".openPopup").on("click"function(event) {  //팝업오픈 버튼 누르면
    $("#popup01").show();   //팝업 오픈
    $("body").append('<div class="backon"></div>'); //뒷배경 생성
    });
    
    $("body").on("click"function(event) { 
        if(event.target.className == 'close' || event.target.className == 'backon'){
            $("#popup01").hide(); //close버튼 이거나 뒷배경 클릭시 팝업 삭제
              $(".backon").hide();
        }
      });
 
  });
 
</script>
cs

 

 

결과물이 지난번과 크게 변한 거 없지만, 다시 만들어봤습니다.

다음에는 크기가 변해도(반응형에 맞춰) 항상 가운데 모달창이 오도록 만들어 볼까합니다.

 

popup.html
0.00MB