zoaseo
To Infinity And Beyond
zoaseo
전체 방문자
오늘
어제
  • 분류 전체보기 (763)
    • 개발이 좋아서 (381)
      • SAP가 좋아서 (3)
      • Java가 좋아서 (42)
      • Spring이 좋아서 (50)
      • JPA가 좋아서 (0)
      • QueryDSL이 좋아서 (26)
      • Docker가 좋아서 (7)
      • Redis가 좋아서 (7)
      • AWS가 좋아서 (5)
      • CI/CD가 좋아서 (6)
      • Troubleshooting이 좋아서 (4)
      • Kotlin이 좋아서 (7)
      • SQL이 좋아서 (6)
      • HTTP가 좋아서 (21)
      • JavaScript가 좋아서 (30)
      • TypeScript가 좋아서 (6)
      • Vue가 좋아서 (21)
      • Flutter가 좋아서 (61)
      • React가 좋아서 (20)
      • Redux(React)가 좋아서 (2)
      • Angular가 좋아서 (22)
      • HTML이 좋아서 (9)
      • CSS가 좋아서 (15)
      • PHP가 좋아서 (9)
      • Illustrator가 좋아서 (2)
    • 노력이 좋아서 (169)
    • 결과물이 좋아서 (14)
    • 코딩연습이 좋아서 (168)
      • 이론이 좋아서 (62)
      • SQL이 좋아서 (90)
    • 유용한 사이트가 좋아서 (28)
    • Github (2)

인기 글

티스토리

hELLO · Designed By 정상우.
zoaseo
노력이 좋아서

<step29>'js_switch'

노력이 좋아서

<step29>'js_switch'

2022. 4. 28. 12:33

1) ex06.html

<!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">
    <title>Document</title>
    <style>
        * { margin: 0; padding: 0; box-sizing: border-box;}
        li { list-style: none;}
        #wrap {
            width: 100%;
            height: 100vh;
            display: flex;
            justify-content: space-between;
        }
        #wrap > div {
            position: relative;
            transition: 0.5s;
            overflow: hidden;
        }
        #wdiv {
            position: absolute;
            width: 200%;
            height: 100%;
            top: 0;
            left: 100%;
            background: pink;
            transition: 0.5s;
        }
        #wdiv.on {
            left: 0;
            opacity: 0;
        }
        #wrap > div:not(:last-child) {
            width: 100%;
            border-right: 1px solid #ccc;
            overflow: hidden;
            position: relative;
        }
        /* #wrap > div:not(:last-child)::after {
            content: "";
            display: block;
            width: 200%;
            height: 100%;
            position: absolute;
            top: 0;
            left: 100%;
            background: tomato;

        }
        #wrap > div:not(:last-child)::after.abc {
            /* width: 100%; */
            /* left: 0;
            background: pink;
        } */ 
        ul {
            width: 100%;
            height: 100%;
            position: absolute;
            top: 80px;
            left: 30px;
            transition: 0.5s;
        }
        ul.ch {
            left: -130px;
            opacity: 0;
        }
        #xdiv {
            width: 20%;
            top: 80px;
            left: 30px;
        }
        #x {
            border: none;
            background: #fff;
            font-size: 30px;
            transition: 0.5s;
        }
        #x.rot {
            transform: rotate(180deg);
        }
    </style>
</head>
<body>
    <div id="wrap">
        <div>
            <ul id="ull">
                <h2>회사소개</h2>
                <li>서브메뉴1</li>
                <li>서브메뉴2</li>
                <li>서브메뉴3</li>
                <li>서브메뉴4</li>
            </ul> 
            <div id="wdiv"></div>
        </div>
        <div>
            <ul id="ull">
                <h2>사업분야</h2>
                <li>서브메뉴1</li>
                <li>서브메뉴2</li>
                <li>서브메뉴3</li>
                <li>서브메뉴4</li>
            </ul> 
            <div id="wdiv"></div>
        </div>
        <div>
            <ul id="ull">
                <h2>투자정보</h2>
                <li>서브메뉴1</li>
                <li>서브메뉴2</li>
                <li>서브메뉴3</li>
                <li>서브메뉴4</li>
            </ul> 
            <div id="wdiv"></div>
        </div>
        <div>
            <ul id="ull">
                <h2>인재경영</h2>
                <li>서브메뉴1</li>
                <li>서브메뉴2</li>
                <li>서브메뉴3</li>
                <li>서브메뉴4</li>
            </ul> 
            <div id="wdiv"></div>
        </div>
        <div>
            <ul id="ull">
                <h2>미디어센터</h2>
                <li>서브메뉴1</li>
                <li>서브메뉴2</li>
                <li>서브메뉴3</li>
                <li>서브메뉴4</li>
            </ul> 
            <div id="wdiv"></div>
        </div>
        <div id="xdiv">
            <button id="x" onclick="move()">X</button>
        </div>
    </div>
    <script>
        function move(){
            document.querySelectorAll('ul')[0].classList.toggle('ch');
            document.querySelectorAll('ul')[1].classList.toggle('ch');
            document.querySelectorAll('ul')[2].classList.toggle('ch');
            document.querySelectorAll('ul')[3].classList.toggle('ch');
            document.querySelectorAll('ul')[4].classList.toggle('ch');
            document.querySelectorAll('#wdiv')[0].classList.toggle('on');
            document.querySelectorAll('#wdiv')[1].classList.toggle('on');
            document.querySelectorAll('#wdiv')[2].classList.toggle('on');
            document.querySelectorAll('#wdiv')[3].classList.toggle('on');
            document.querySelectorAll('#wdiv')[4].classList.toggle('on');
            document.querySelector('#x').classList.toggle('rot');
        }
    </script>
</body>
</html>

2) ex06_teach.html

<!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">
    <title>Document</title>
    <style>
        * { margin: 0; padding: 0; box-sizing: border-box;}
        li { list-style: none;}
        body {
            width: 100%;
            height: 100%;
            font-family: '맑은 고딕';
            font-size: 14px;
            line-height: 1.6;
        }
        #sitemap-view {
            width: 20px;
            height: 20px;
            position: absolute;
            top: 80px;
            right: 20px;
            transition: 0.5s;
        }
        #sitemap-view.on {
            transform: rotate(360deg);
        }
        #sitemap-view.on span:nth-child(1) {
            transform: rotate(45deg) translate(4px, -7px);
        }
        #sitemap-view.on span:nth-child(3) {
            transform: rotate(-45deg) translate(-4px, -7px);
        }
        #sitemap-view.on span:nth-child(2) {
            opacity: 0;
        }
        #sitemap-view span {
            position: absolute;
            left: 0;
            top: 0;
            height: 100%;
            background: #333;
            width: 3px;
            transition: 0.5s;
        }
        #sitemap-view span:nth-child(2) {
            background: #9c2033;
            left: 8px;
            height: 10px;
            top: 5px;
        }
        #sitemap-view span:nth-child(3) {
            left: 16px;
        }
        #sitemap {
            position: absolute;
            left: 0;
            right: 60px;
            height: 100%;
            opacity: 0;
            transition: 0.5s;
        }
        #sitemap.on {
            opacity: 1;
        }
        #sitemap > ul {
            width: 100%;
            display: flex;
            height: 100%;
        }
        #sitemap > ul > li {
            width: 20%;
            border-right: 1px solid #ccc;
            padding-top: 60px;
            padding-left: 40px;
            position: relative;
            overflow: hidden;  /* 자기 공간 밖은 안보이게하기 */
        }
        #sitemap > ul > li h2, #sitemap > ul > li ul {
            margin-left: -100%;
            transition: 0.5s;
        }
        #sitemap.on > ul > li h2, #sitemap.on > ul > li ul {
            margin-left: 0;
        }
        .bg {
            width: 100%;
            height: 100%;
            position: absolute;
            right: 0;
            top: 0;
            background: #9c2033;
            transition: 0.5s;
        }
        .on .bg {
            width: 0;
        }
    </style>
</head>
<body>
    <div id="sitemap-view">
        <span></span>
        <span></span>
        <span></span>
    </div>
    <div id="sitemap">
        <ul>
            <li>
                <div class="bg"></div>
                <h2>회사소개</h2>
                <ul>
                    <li>서브메뉴1</li>
                    <li>서브메뉴2</li>
                    <li>서브메뉴3</li>
                    <li>서브메뉴4</li>
                </ul>
            </li>
            <li>
                <div class="bg"></div>
                <h2>투자정보</h2>
                <ul>
                    <li>서브메뉴1</li>
                    <li>서브메뉴2</li>
                    <li>서브메뉴3</li>
                    <li>서브메뉴4</li>
                </ul>
            </li>
            <li>
                <div class="bg"></div>
                <h2>사업분야</h2>
                <ul>
                    <li>서브메뉴1</li>
                    <li>서브메뉴2</li>
                    <li>서브메뉴3</li>
                    <li>서브메뉴4</li>
                </ul>
            </li>
            <li>
                <div class="bg"></div>
                <h2>인재경영</h2>
                <ul>
                    <li>서브메뉴1</li>
                    <li>서브메뉴2</li>
                    <li>서브메뉴3</li>
                    <li>서브메뉴4</li>
                </ul>
            </li>
            <li>
                <div class="bg"></div>
                <h2>미디어센터</h2>
                <ul>
                    <li>서브메뉴1</li>
                    <li>서브메뉴2</li>
                    <li>서브메뉴3</li>
                    <li>서브메뉴4</li>
                </ul>
            </li>
        </ul>
    </div>
    <script>
        let viewdiv = document.querySelector('#sitemap-view');
        let sitemap = document.querySelector('#sitemap');
        viewdiv.addEventListener('click',function(){
            //toggle은 on클래스가 있으면 제거, 없으면 붙여줌
            viewdiv.classList.toggle('on');
            sitemap.classList.toggle('on');
        });
    </script>
</body>
</html>

3) 20switch.html

<!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">
    <title>Document</title>
</head>
<body>
    <script>
        let num = prompt('1~5까지 숫자를 입력해주세요.'); //prompt는 string으로 입력된다!
        switch(num) {
            case '1':
            console.log('1입니다.');
            break;
            case '2':
            console.log('2입니다.');
            break;
            case '3':
            console.log('3입니다.');
            break;
            case '4':
            console.log('4입니다.');
            break;
            default:
            console.log('숫자가 아닙니다.')
        }
        //날짜
        let today = new Date();
        let year = today.getFullYear();
        let month = today.getMonth()+1; //달은 +1을 해준다.
        let date = today.getDate();
        let day = today.getDay(); //요일은 숫자로 나타난다. ex) 0:일요일, 4:목요일
        //switch문
        switch (day) {
            case 0:
            day = '일요일';
            break;
            case 1:
            day = '월요일';
            break;
            case 2:
            day = '화요일';
            break;
            case 3:
            day = '수요일';
            break;
            case 4:
            day = '목요일';
            break;
            case 5:
            day = '금요일';
            break;
            case 6:
            day = '토요일';
            break;
        }
        //if문
        if (day === 0){
            day = '일요일';
        }else if (day === 1){
            day = '월요일';
        }else if (day === 2){
            day = '화요일';
        }else if (day === 3){
            day = '수요일';
        }else if (day === 4){
            day = '목요일';
        }else if (day === 5){
            day = '금요일';
        }else if (day === 6){
            day = '토요일';
        }
        //방법1 (방법2보다 방법1이 더 편하다)
        console.log(`년도는 ${year}이고 
        달은 ${month}이고 
        일은 ${date}이고 
        요일은 ${day}이다.`)
        //방법2
        console.log('년도는'+year+'이고 달은'+month+'이고 일은'+date+'이고 요일은'+day+'이다.')
    </script>
</body>
</html>

4) ex07_teach.html

<!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">
    <title>Document</title>
    <style>
        * { margin: 0; padding: 0; box-sizing: border-box;}
        li { list-style: none;}
        body > div {
            width: 70%;
            margin: 100px auto;
            background: #eee;
            border-radius: 10px;
            text-align: center;
            padding: 80px;
            line-height: 1.6;
        }
        h2 {
            padding: 30px;
            border-bottom: 1px solid #ccc;
            margin-bottom: 30px;
        }
        #moneyView {
            line-height: 50px;
            font-weight: bold;
        }
        button {
            border: 0;
            outline: 0;
            background: blueviolet;
            color: #fff;
            padding: 10px 20px;
            border-radius: 4px;
        }
    </style>
</head>
<body>
    <div>
        <h2>화면</h2>
        <ul>
            <li>A음료수 : 500원</li>
            <li>B음료수 : 700원</li>
            <li>C음료수 : 1000원</li>
        </ul>
        <div id="moneyView">현재금액: 0원</div>
        <p><button id="btn100">100</button>
            <button id="btn500">500</button>
            <button id="btn1000">1000</button></p>
    </div>
    <script>
        //버튼을 변수에 담기
        let btn100 = document.querySelector('#btn100');
        let btn500 = document.querySelector('#btn500');
        let btn1000 = document.querySelector('#btn1000');
        let moneyView = document.querySelector('#moneyView');
        let money = 0;
        //버튼을 클릭하면 1.money가 증가
        //2.잔액을 표시
        //3.살 수 있는 음료수는 경고창에 표시
        btn100.addEventListener('click', function(){
            money += 100;
            console.log(money);
            moneyView.innerHTML = `현재금액: ${money}원`;
            comparison();
        });
        btn500.addEventListener('click', function(){
            money += 500;
            console.log(money);
            moneyView.innerHTML = `현재금액: ${money}원`;
            comparison();
        });
        btn1000.addEventListener('click', function(){
            money += 1000;
            console.log(money);
            moneyView.innerHTML = `현재금액: ${money}원`;
            comparison();
        });

        function comparison(){
            if (money >= 1000){
                alert('A,B,C음료수 선택 가능!');
            }else if (money >= 700){
                alert('A,B음료수 선택 가능!');
            }else if (money >= 500){
                alert('A음료수 선택 가능!');
            }else {
                alert('선택가능한 음료수가 없음!')
            }
        }
    </script>
</body>
</html>

5) ex08.html

<!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">
    <title>Document</title>
    <style>
        #wrap {
            width: 300px;
            height: 300px;
            border: 1px solid #ccc;
        }
        #wrap > div {
            text-align: center;
        }
        #box {
            width: 120px;
            height: 120px;
            border: 3px solid #111;
            margin-left: 80px;
            margin-top: 50px;
        }
    </style>
</head>
<body>
    <div id="wrap">
        <div>
            <div id="box"></div>
            <p><input type="text" id="col"><button id="btn">선택</button></p>
        </div>
    </div>
    <script>
        let col = document.querySelector('#col');  //input 변수
        let btn = document.querySelector('#btn');  //button 변수
        let box = document.querySelector('#box');  //div #box 변수

        //button클릭하면
        //input의 값을 받아옴
        //그값이 red면 div의 배경색을 red로 변경
        btn.addEventListener('click', function(){
            if (col.value === 'red'){ //input은 value값으로 받아와야한다!!
                box.style.background = 'red';
            }
            if (col.value === 'blue'){ 
                box.style.background = 'blue';
            }
            if (col.value === 'green'){ 
                box.style.background = 'green';
            }
        });
    </script>
</body>
</html>

6) ex08_teach.html

<!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">
    <title>Document</title>
    <style>
        * { margin: 0; padding: 0; box-sizing: border-box;}
        #wrap {
            width: 60%;
            height: 100vh;
            margin: 50px auto;
            display: flex;
            flex-direction: column;
            justify-content: center;
            align-items: center;
        }
        #color {
            width: 300px;
            height: 300px;
            border: 3px solid #333;
            margin-bottom: 20px;
        }
        input {
            width: 160px;
            height: 30px;
            border: 1px solid #ccc;
            outline: none;
        }
        button {
            width: 70px;
            height: 30px;
            background: violet;
            color: #fff;
            border: none;
            outline: none;
            margin-left: 10px;
        }
    </style>
</head>
<body>
    <div id="wrap">
        <div id="color"></div>
        <div>
            <input type="text" id="input"><button>선택</button>
        </div>
    </div>
    <script>
        //button을 클릭하면
        //input의 값을 받아옴
        //input의 값이 red, green, blue일때만 color아이디를 가진
        //div의 배경색을 해당하는 값으로 변경
        //다른 색일때는 하얀색 배경색으로 지정
        document.querySelector('button').addEventListener('click', function(){
            let inputColor = document.querySelector('input').value;
            //if문
            // if(inputColor === 'red' || inputColor === 'green' || inputColor === 'blue'){
            //     document.querySelector('#color').style.background = inputColor;
            // }else {
            //     document.querySelector('#color').style.background = '#fff';
            // }
            //switch문
            // switch(inputColor){
            //     case 'red':
            //         document.querySelector('#color').style.background = inputColor;
            //         break;
            //     case 'green':
            //         document.querySelector('#color').style.background = inputColor;
            //         break;
            //     case 'blue':
            //         document.querySelector('#color').style.background = inputColor;
            //         break;
            //     default:
            //         document.querySelector('#color').style.background = '#fff';
            // }
            //삼항조건식
            (inputColor === 'red' || inputColor === 'green' || inputColor === 'blue') ? 
            document.querySelector('#color').style.background = inputColor :
            document.querySelector('#color').style.background = '#fff';
            document.querySelector('input').value = "";
        });
    </script>
</body>
</html>

'노력이 좋아서' 카테고리의 다른 글

<step31>'js_메소드, 객체'  (0) 2022.05.02
<step30>'js_while'  (0) 2022.04.29
<step28>'js_조건문(if)'  (0) 2022.04.27
<step27>'js_변수선언, 함수선언'  (1) 2022.04.26
<step26>'js_기초'  (0) 2022.04.25

    티스토리툴바

    단축키

    내 블로그

    내 블로그 - 관리자 홈 전환
    Q
    Q
    새 글 쓰기
    W
    W

    블로그 게시글

    글 수정 (권한 있는 경우)
    E
    E
    댓글 영역으로 이동
    C
    C

    모든 영역

    이 페이지의 URL 복사
    S
    S
    맨 위로 이동
    T
    T
    티스토리 홈 이동
    H
    H
    단축키 안내
    Shift + /
    ⇧ + /

    * 단축키는 한글/영문 대소문자로 이용 가능하며, 티스토리 기본 도메인에서만 동작합니다.