๐Ÿ“ƒ ๋ฒ„ํŠผ ํด๋ฆญ ์‹œ ๋ ˆ์ด์–ด ์ฐฝ ๋„์šฐ๊ธฐ

์ „์ฃผ์€ยท2022๋…„ 12์›” 19์ผ
0
post-thumbnail

๐Ÿ“ƒ ๋ฒ„ํŠผ ํด๋ฆญ ์‹œ ๋ ˆ์ด์–ด ์ฐฝ ๋„์šฐ๊ธฐ

๐Ÿ‘€ ์›๋ฆฌ

div์•ˆ์— ๋‚ด์šฉ์„ ๋ณด์ด์ง€ ์•Š๊ฒŒ ์„ค์ •ํ•ด๋‘์—ˆ๋‹ค๊ฐ€(display : none) ๋ฒ„ํŠผ์„ ํด๋ฆญํ–ˆ์„๋•Œ ๋ณด์ด๋„๋กํ•˜๋Š” (display:block) ๊ธฐ๋Šฅ์ž…๋‹ˆ๋‹ค!
์—ฌ๊ธฐ์— ๋“ค์–ด๊ฐ€๋Š” ๊ฐœ๋…์€ ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.

  1. [CSS] ์„ ํƒ์ž

    id = "layer" -> #layer
    class = "layer" ->.layer

  2. [CSS] style - display : none <--> block

    display: none
    display: block

  3. [Javascript] DOM - document.getElementBy..

    document ๊ฐ์ฒด์˜ ๋ฉ”์†Œ๋“œ

    getElementsByTagName(): ํ•ด๋‹น ํƒœ๊ทธ ์ด๋ฆ„์˜ ์š”์†Œ๋ฅผ ๋ชจ๋‘ ์„ ํƒํ•ด ๋ฐฐ์—ด๋กœ ์ €์žฅ
    getElementById(): ํ•ด๋‹น ์•„์ด๋””์˜ ์š”์†Œ๋ฅผ ์„ ํƒ
    getElementsByClassname(): ํ•ด๋‹น ํด๋ž˜์Šค์— ์†ํ•œ ์š”์†Œ๋ฅผ ๋ชจ๋‘ ์„ ํƒํ•ด ๋ฐฐ์—ด๋กœ ์ €์žฅ
    getElementsByName(): ํ•ด๋‹น name ์†์„ฑ๊ฐ’์„ ๊ฐ€์ง€๋Š” ์š”์†Œ๋ฅผ ๋ชจ๋‘ ์„ ํƒํ•ด ๋ฐฐ์—ด๋กœ ์ €์žฅ
    querySelectorAll(): ์„ ํƒ์ž๋กœ ์„ ํƒ๋˜๋Š” ์š”์†Œ๋ฅผ ๋ชจ๋‘ ์„ ํƒํ•ด ๋ฐฐ์—ด๋กœ ์ €์žฅ

  4. [Javascript] function

function openLayer(){
	document.getElementById('popup_layer').style.display='block';
} 
function closeLayer(){
    document.getElementById('popup_layer').style.display='none';
}
  1. ์ด๋ฒคํŠธ ๋ฆฌ์Šค๋„ˆ vs inline ์ด๋ฒคํŠธ

    ์ด๋ฒคํŠธ ๋“ฑ๋ก

    ๊ฐ์ฒด.addEventListner(์ด๋ฒคํŠธ๋ช…, ์‹คํ–‰ํ• ์ด๋ฒคํŠธ๋ฆฌ์Šค๋„ˆ, ์ด๋ฒคํŠธ์ „ํŒŒ๋ฐฉ์‹);
    ์ด๋ฒคํŠธ ํƒ€์ž… : ์ด๋ฒคํŠธ ๋ฆฌ์Šค๋„ˆ๋ฅผ ๋“ฑ๋กํ•  ์ด๋ฒคํŠธ ํƒ€์ž…
    ์‹คํ–‰ํ•  ์ด๋ฒคํŠธ ๋ฆฌ์Šค๋„ˆ : ์ง€์ •๋œ ์ด๋ฒคํŠธ๊ฐ€ ๋ฐœ์ƒํ–ˆ์„ ๋•Œ ์‹คํ–‰ํ•  ์ด๋ฒคํŠธ ๋ฆฌ์Šค๋„ˆ
    ์ด๋ฒคํŠธ ์ „ํŒŒ ๋ฐฉ์‹ : false๋ฉด ๋ฒ„๋ธ”๋ง(bubbling) ๋ฐฉ์‹, true๋ฉด ์บก์ฒ˜๋ง(capturing) ๋ฐฉ์‹

    ์ด๋ฒคํŠธ ์ œ๊ฑฐ

    ๊ฐ์ฒด.removeEventListner(์ด๋ฒคํŠธํƒ€์ž…, ์ด๋ฒคํŠธ๋ฆฌ์Šค๋„ˆ);

๋ฐฉ๋ฒ•1: javascript ํ™œ์šฉ

step1.๋ ˆ์ด์–ด div์„ ๋งŒ๋“ค๊ณ  id ๋ถ™์ด๊ธฐ - ๋ ˆ์ด์–ด์˜ ์ดˆ๊ธฐ์ƒํƒœ๋ฅผ ๋ณด์ด์ง€ ์•Š๊ฒŒ ์ˆจ๊ธฐ๊ธฐ

<div class="popup_layer" id="popup_layer" style="display: none;">

์Šคํƒ€์ผ ์„ค์ •์ด ํ•ต์‹ฌ!

.popup_overlay{position: fixed;}	
//์Šคํฌ๋กค์ด ๊ธธ๋Œ€ ์ œ์ž๋ฆฌ์— ๋– ์žˆ๋„๋ก
.popup_box{position: absolute; top:50%; left:50%; transform:translate(-50%, -50%);} 
// ํŒ์—…์ฐฝ ํ™”๋ฉด์ด ๊ฐ€์šด๋ฐ์— ๋– ์žˆ๋„๋ก
.popup_btn {display:table; table-layout: fixed;}	
//๋ฒ„ํŠผ์ด ๋ช‡๊ฐœ๋กœ ๋Š˜์–ด๋‚˜๋„ ๊ฐ„๊ฒฉ ๋งž์ถฐ ์ •๋ ฌ
.popup_btn a{display: table-cell;}

step2. ๋ ˆ์ด์–ด์†์— ์›ํ•˜๋Š” ๋‚ด์šฉ ์ฑ„์šฐ๊ธฐ

step3. aํƒœ๊ทธ href๋ฅผ ํ†ตํ•ด ์ž‘์„ฑํ•œ ํ•จ์ˆ˜์„ ํ˜ธ์ถœ

<a href="javascript:openPop()">์ •์‚ฐ๊ณ„์ขŒ ๋“ฑ๋ก</a>
<a href="javascript:closePop();">๋‹ซ๊ธฐ</a>

step4. ์ž๋ฐ” ์Šคํฌ๋ฆฝํŠธ ํ•จ์ˆ˜ ์™„์„ฑ

<script>
function openPop(){
	document.getElementById('popup_layer').style.display='block';
}
function closePop(){
    document.getElementById('popup_layer').style.display='none';
}
</script>

์˜ˆ์ œ) ์€ํ–‰๊ณ„์ขŒ ์ถ”๊ฐ€ ํ•˜๊ธฐ

<!DOCTYPE html>
<html lang="en">

    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    
    <title>์ •์‚ฐ๊ณ„์ขŒ ๋“ฑ๋ก</title>
</head>
<style>
/*popup*/
.popup_layer {position:fixed;top:0;left:0;z-index: 10000; width: 100%; height: 100%; background-color: rgba(0, 0, 0, 0.4); }
/*ํŒ์—… ๋ฐ•์Šค*/
.popup_box{position: relative;top:50%;left:50%; overflow: auto; height: 600px; width:375px;transform:translate(-50%, -50%);z-index:1002;box-sizing:border-box;background:#fff;box-shadow: 2px 5px 10px 0px rgba(0,0,0,0.35);-webkit-box-shadow: 2px 5px 10px 0px rgba(0,0,0,0.35);-moz-box-shadow: 2px 5px 10px 0px rgba(0,0,0,0.35);}
/*์ปจํ…์ธ  ์˜์—ญ*/
.popup_box .popup_cont {padding:50px;line-height:1.4rem;font-size:14px; }
.popup_box .popup_cont h2 {padding:15px 0;color:#333;margin:0;}
.popup_box .popup_cont p{ border-top: 1px solid #666;padding-top: 30px;}

/*์˜ค๋ฒ„๋ ˆ์ด ๋’ท๋ฐฐ๊ฒฝ*/
.popup_overlay{position:fixed;top:0px;right:0;left:0;bottom:0;z-index:1001;;background:rgba(0,0,0,0.5);}
/*popup*/
</style>
<body>
    
    <a href="javascript:openPop()">์ •์‚ฐ๊ณ„์ขŒ ๋“ฑ๋ก</a>
    <div class="popup_layer" id="popup_layer" style="display: none;">
        <div class="popup_box">
            <div style="height: 10px; width: 375px; float: top;">
            <a href="javascript:closePop();"><span class="m_header-banner-close" width="30px" height="30px">x</span></a>
            </div>
            <!--ํŒ์—… ์ปจํ…์ธ  ์˜์—ญ ์‹œ์ž‘ -->
            <div class="popup_cont">
                <div class="account_registration">
                    <div class="input_logistics_companies input_box">
                        <h3 class="input_title">์€ํ–‰๋ช…</h3>
                        <div class="input_item">
                            <div class="bank_option open">
                                <label class="selected_txt" id="selected_txt">
                                    <span>์€ํ–‰ ์„ ํƒ</span>
                                </label>
                                <select id="bank_select" name="bank">
                                    <option value="๊ตญ๋ฏผ์€ํ–‰"> ๊ตญ๋ฏผ์€ํ–‰ </option>
                                    <option value="์‹ ํ•œ์€ํ–‰"> ์‹ ํ•œ์€ํ–‰ </option>
                                    <option value="์šฐ๋ฆฌ์€ํ–‰"> ์šฐ๋ฆฌ์€ํ–‰ </option>
                                    <option value="ํ•˜๋‚˜์€ํ–‰"> ํ•˜๋‚˜์€ํ–‰ </option>
                                    <option value="๊ธฐ์—…์€ํ–‰"> ๊ธฐ์—…์€ํ–‰ </option>
                                    <option value="๋†ํ˜‘์€ํ–‰"> ๋†ํ˜‘์€ํ–‰ </option>
                                    <option value="SC์€ํ–‰"> SC์€ํ–‰ </option>
                                    <option value="ํ•œ๊ตญ์”จํ‹ฐ์€ํ–‰"> ํ•œ๊ตญ์”จํ‹ฐ์€ํ–‰ </option>
                                    <option value="์šฐ์ฒด๊ตญ"> ์šฐ์ฒด๊ตญ </option>
                                    <option value="๋†ํ˜‘์€ํ–‰"> ๋†ํ˜‘์€ํ–‰ </option>
                                    <option value="์‚ฐ์—…์€ํ–‰"> ์‚ฐ์—…์€ํ–‰ </option>
                                    <option value="๋ถ€์‚ฐ์€ํ–‰"> ๋ถ€์‚ฐ์€ํ–‰ </option>
                                    <option value="์นด์นด์˜ค๋ฑ…ํฌ"> ์นด์นด์˜ค๋ฑ…ํฌ </option>
                                    <option value="๋Œ€๊ตฌ์€ํ–‰"> ๋Œ€๊ตฌ์€ํ–‰ </option>
                                    <option value="์ผ€์ด๋ฑ…ํฌ"> ์ผ€์ด๋ฑ…ํฌ </option>
                                    <option value="๊ด‘์ฃผ์€ํ–‰"> ๊ด‘์ฃผ์€ํ–‰ </option>
                                    <option value="์ œ์ฃผ์€ํ–‰"> ์ œ์ฃผ์€ํ–‰ </option>
                                    <option value="์ˆ˜ํ˜‘์ค‘์•™ํšŒ"> ์ˆ˜ํ˜‘์ค‘์•™ํšŒ </option>
                                    <option value="์ „๋ถ์€ํ–‰"> ์ „๋ถ์€ํ–‰ </option>
                                    <option value="์ง€์—ญ๋†์ถ•ํ˜‘"> ์ง€์—ญ๋†์ถ•ํ˜‘ </option>
                                    <option value="๊ฒฝ๋‚จ์€ํ–‰"> ๊ฒฝ๋‚จ์€ํ–‰ </option>
                                    <option value="์ƒˆ๋งˆ์„๊ธˆ๊ณ ์—ฐํ•ฉํšŒ"> ์ƒˆ๋งˆ์„๊ธˆ๊ณ ์—ฐํ•ฉํšŒ </option>
                                    <option value="์‹ ํ˜‘"> ์‹ ํ˜‘ </option>
                                </select>
                            </div>
                        </div>
                    </div>
                    <div class="input_box" id="account_input_box">
                        <h3 class="input_title">๊ณ„์ขŒ๋ฒˆํ˜ธ</h3>
                        <div class="input_item">
                            <input type="text" placeholder="'-' ์—†์ด ์ž…๋ ฅํ•˜์„ธ์š”" autocomplete="off" class="input_txt text_fill" id="account_input" name="account_number">
                        </div>
                        <p class="input_error" id="account_input_error"></p>
                    </div>
                    <div class="input_box" id="name_input_box">
                        <h3 class="input_title">์˜ˆ๊ธˆ์ฃผ</h3>
                        <div class="input_item">
                            <input type="text" placeholder="์˜ˆ๊ธˆ์ฃผ๋ช…์„ ์ •ํ™•ํžˆ ์ž…๋ ฅํ•˜์„ธ์š”." autocomplete="off" class="input_txt text_fill" id="name_input" name="name">
                        </div>
                        <p class="input_error" id="name_input_error"></p>
                    </div>
                </div>
                <div class="registration_btn_box">
                    <a disabled="disabled" type="button" class="btn btn_save solid medium disabled"> ์ €์žฅํ•˜๊ธฐ </a><a href="javascript:closePop();">๋‹ซ๊ธฐ</a>
                </div>
            </div>
            <!--ํŒ์—… ์ปจํ…์ธ  ์˜์—ญ ๋-->
        </div>
    </div>
</body>
<script>
function openPop(){
	document.getElementById('popup_layer').style.display='block';
}
function closePop(){
    document.getElementById('popup_layer').style.display='none';
}
</script>
</html>
                      

๋ฐฉ๋ฒ•2 jquery ํ™œ์šฉ

step0. head์— jquery ์ถ”๊ฐ€

<script src="https://code.jquery.com/jquery-3.2.1.min.js"></script> 

step1. ๋ ˆ์ด์–ด div์„ ๋งŒ๋“ค๊ณ  id ๋ถ™์ด๊ธฐ

step2. div์•ˆ์— ์›ํ•˜๋Š” ๋‚ด์šฉ ์ฑ„์šฐ๊ธฐ

step3. ๋ฒ„ํŠผ ๋งŒ๋“ค๊ณ  id ๋ถ™์ด๊ธฐ (a๋Œ€์‹  ๋งŒ๋“ค๊ธฐ)

<button type="button" id="openModalPop">๋ชจ๋‹ฌ ๋ ˆ์ด์–ดํŒ์—… ์—ด๊ธฐ</button>
<div id="close_button" style ="cursor: pointer;">x</div>

step4. jquery๋กœ ์ด๋ฒคํŠธ์™€ ํšจ๊ณผ ๋ถ€์—ฌํ•˜๊ธฐ (javascript ๋Œ€์‹  ๋„ฃ๊ธฐ)

๊ธฐ๋ณธ๋ฌธ๋ฒ•: https://soft91.tistory.com/9 ์ฐธ๊ณ 

//๊ธฐ๋ณธ ํ‹€
$("๋ฒ„ํŠผ์„ ํƒ์ž").์ด๋ฒคํŠธ๋“ฑ๋ก๋ฉ”์„œ๋“œ(function() {
        $("๋‚ด์šฉ์ฐฝ์„ ํƒ์ž").ํšจ๊ณผ๋ฉ”์„œ๋“œ;
        $("๋ชจ๋‹ฌ์ฐฝ์„ ํƒ์ž").ํšจ๊ณผ๋ฉ”์„œ๋“œ;
});

<script type="text/javascript">
$(document).ready(function() {

    $("#openModalPop").click(function() {
        $(".popup_box").fadeIn();
        $("#popup_layer").fadeIn();
    });

    $("#close_button").click(function(){
        $(".popup_box").fadeOut();
        $("#popup_layer").fadeOut();
    });
});
</script>

0๊ฐœ์˜ ๋Œ“๊ธ€