자율 학습/학습

[jQuery] 간단 팝업창 만들기!

60cod 2022. 9. 8. 20:04

추가하기 버튼을 누르면 추가 팝업창이 뜨고,

닫는 버튼(아이콘 이미지)나 저장 버튼을 클릭하면 창이 닫히는 팝업창이다.

 

<!-- HTML -->
<div class="insert_btn" >아이콘 추가</div>

<div id="iPopup">
	아이콘 추가하기
	<img class="p_close_btn" src="../img/x-box.png" alt="닫기" />

	<input type="button" class="p_insert_btn" value="추가" />
</div>
/* CSS */
.insert_btn {
    display: inline-block;
    width: 65px;
    height: 33px;
    line-height: 33px;
    text-align: center;
    font-size: 15px;
    color: white;
    border-radius: 5px;
    background-color: var(--button-color);
    cursor: pointer;
}

#iPopup {
	display:none;
}

#iPopup {
	width: 400px;
    background-color: white;
    border: 1px solid #808080;
    border-radius: 3px;
    box-shadow: 1px 1px 8px 1px #e4e4e4;
    position: absolute;
    top: -27px;
    left: calc(50% - 200px);
    z-index: 2;
}

.p_close_btn {
	width: 25px;
    height: 25px;
    line-height: -16px;
    float: right;
    margin: 12px;
    opacity: .7;
    cursor: pointer;
}

.p_insert_btn {
    display: inline-block;
    width: 65px;
    height: 33px;
    line-height: 33px;
    text-align: center;
    font-size: 15px;
    color: white;
	border: none;
    border-radius: 5px;
    background-color: var(--button-color);
	box-shadow: var(--btn-shadow);
    cursor: pointer;
}

.p_insert_btn:hover {
	background-color: var(--hover-color);
}

(보기 좋게 내용물은 지웠음.)

 

<script type="text/javascript">
$(document).ready(function() {
	//아이콘 추가 팝업창
	$(".insert_btn").on("click", function(event) { 
		$("#iPopup").show();  
	});
    
    $("body").on("click", function(event) { 
		if(event.target.className == 'p_close_btn' 
		 || event.target.className == 'p_insert_btn'){
			$("#iPopup").hide();
		}
	}); //아이콘 추가 팝업창 끝
});
</script>

 

 

결과물

 

 

 

 

+ 추가로,

팝업창 열 때마다 배경이 되는 div 하나 만드는 기능도 더해서 팝업 뒤를 어둡게 만들 수도 있고

배경 클릭해서 팝업창 닫게 할 수도 있다.

//script
	//아이콘 추가 팝업창
	$(".insert_btn").on("click", function(event) {
		$("#iPopup").show();  
		$("body").append('<div class="p_back"></div>');
	});
    
    $("body").on("click", function(event) { 
		if(event.target.className == 'p_close_btn' 
				|| event.target.className == 'p_insert_btn'
				|| event.target.className == 'p_back'){
			$("#iPopup").hide();
			$(".p_back").hide();
			$(".p_back").remove();
		}
	}); //아이콘 추가 팝업창 끝
/* CSS 추가 */
.p_back {
	content: "";
	width: 100%;
	height: 100%;
	background: #00000054;
	position: fixed;
	top: 0;
	left: 0;
	z-index: 1;
}

 

생각보다 너무 간단해서 팀프로젝트에 바로 적용하였음!