HTML+CSS(실습)

★ 2023-06-07(수) 배달의민족 주문페이지(checked)

박성하하 2023. 6. 7. 12:34
728x90
반응형

<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <meta http-equiv="X-UA-Compatible" content="IE=edge">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <link rel="stylesheet" href="./css/style.css" type="text/css">
  <link rel="stylesheet" href="./css/detail.css" type="text/css">
  <script src="./jquery.min.js"></script>
  <script src="../화면만/app.js"></script>
  <title>메뉴선택</title>
</head>
<body>
    <div id="wrap">
        <header id="header">
            배민 떡볶이
        </header>
        <div id="menu-img">
            <img src="./images/cheese-topokki.jpg" alt="치즈떡볶이">
            <h1>치즈떡볶이</h1>
        </div>
        <div id="main-menu-choice">
            <h1>기본</h1>
            <div id="main-menu-01">
                <input type="radio" name="main-menu"
                class="main-menu" value="5000" checked>
                <span>1인분</span>
                <span>5,000원</span>
            </div>
            <div id="main-menu-02">
                <input type="radio" name="main-menu"
                class="main-menu" value="9000">
                <span>2인분</span>
                <span>9,000원</span>
            </div>
        </div>
        <div id="side-menu-choice">
            <h1>추가메뉴</h1>
            <div id="side-menu-01">
                <input type="checkbox" name="side-menu"
                class="side-menu" value="4000">
                <span>모듬튀김</span>
                <span>+4,000원</span>
            </div>
            <div id="side-menu-02">
                <input type="checkbox" name="side-menu"
                class="side-menu" value="3500">
                <span>순대1인분</span>
                <span>+3,500원</span>
            </div>
            <div id="side-menu-03">
                <input type="checkbox" name="side-menu"
                class="side-menu" value="3000">
                <span>꼬마김밥</span>
                <span>+3,000원</span>
            </div>
        </div>
        <div id="item-count-change">
            <div id="item-change">
                <span>수량</span>
                <div id="item-inc-dec">
                    <button id="inc-btn">+</button>
                    <span id="item-count">1</span>
                    <button id="dec-btn">-</button>
                </div>
            </div>
            <div id="item-price-info">
                <span id="current-item-count">1</span>개담기
                <span id="total-price-count">5000</span>
            </div>
            <button id="confirm-btn">확인</button>
        </div>
    </div>
</body>
</html>
$(function(){
    addItem()
    minusItem()
    main_change()
    add_side()
    atleastOne()
})
var item_count = 1; //메인메뉴 갯수
var real_price = 0; //최종금액
var side_price = 0; //사이드메뉴 total 금액

function atleastOne(){ //주문갯수가 1개일때 - 버튼 비활성화
    var cur_item_count = parseInt($("#item-count").text());
    if(cur_item_count == 1) {
        $("#dec-btn").css('background-color','grey');
    } else{
        $("#dec-btn").css('background-color','white');
    }
}

function addItem(){
    $("#inc-btn").on("click",function(){
        item_count++ // 주문갯수를 item_count로 관리
        price_info() // main/side 메뉴에 따른 금액변경 관리함수
        atleastOne() // 주문갯수를 늘이거나 뺄때 함수호출
    })
}

function minusItem(){
    $("#dec-btn").on("click",function(){
        if(item_count != 1) { // 최소 1개이상 주문
            item_count--
        }
        price_info()// main/side 메뉴에 따른 금액변경 관리함수
        atleastOne()// 주문갯수를 늘이거나 뺄때 함수호출
    })
}

function price_info(){
    var main_price = $('input[name=main-menu]:checked').val(); //선택된 메인메뉴값 불러옴
    $("#item-count").text(item_count); // 주문갯수 넣기
    $("#current-item-count").text(item_count); // 주문갯수 넣기
    real_price = (main_price*item_count)+side_price; //금액계산은 모두 여기서 계산
    $("#total-price-count").text(real_price);
}


function main_change(){
    $(".main-menu").change(function(){ //기본메뉴가 변경될때마다 호출
        item_count=1; //리셋
        side_price=0; //리셋
        price_info(); //주문금액 리셋
        $(".side-menu").prop('checked',false) //사이드메뉴 체크 해제
    })
}

function add_side(){ //사이드메뉴 체크 및 해제에 따른 금액변동
    $(".side-menu").eq(0).on("click",function(){
        if(this.checked === true) {
            side_price+=4000
            price_info()
        } else{
            side_price-=4000
            price_info()
        }
    })

    $(".side-menu").eq(1).on("click",function(){
        if(this.checked === true) {
            side_price+=3500
            price_info()
        } else{
            side_price-=3500
            price_info()
        }
    })

    $(".side-menu").eq(2).on("click",function(){
        if(this.checked === true) {
            side_price+=3000
            price_info()
        } else{
            side_price-=3000
            price_info()
        }
    })
   
}

















728x90
반응형