웹페이지

JAVASCRIPT STEP 44 - CSS

2023. 4. 28. 10:21
728x90

★ 겹치는 이미지 어떤 태그들이 깔려있는지 볼 수 있는 방법

  • 특정 포인트에 겹쳐있는 모든 태그?
  • document.elementFromPoint
  • document.elementsFromPoint
console.log(document.elementFromPoint(x,y));
console.log(document.elementsFromPoint(x,y));
  • 실행 결과

실행 결과

 

 

★ Transform 을 JavaScript에서 작동하기

<script>

    const box = document.getElementById('box');

    box.addEventListener('click', function() {

        box.style.transform = 'rotate(45deg)';

    });

    let n = 0;

    window.onkeydown = function() {

        if (event.keyCode == 38) {
            n+=10;
        } else if (event.keyCode == 40) {
            n-=10;
        }

        box.style.transform = `rotate(${n}deg)`;

    };

</script>

 

★ 상위 메뉴 만들기

  • HTML 코드
<nav id="menu">
    <!-- img[src=imges/rect_icon0$.png]*5 -->
    <img src="images/rect_icon01.png" alt="">
    <img src="images/rect_icon02.png" alt="">
    <img src="images/rect_icon03.png" alt="">
    <img src="images/rect_icon04.png" alt="">
    <img src="images/rect_icon05.png" alt="">
</nav>
  • CSS 코드
<style>
    #menu {
        /* border : 1px solid black; */
        display: flex;
        width : 630px;

        position: fixed;
        top : -100px;
        left : 0;
        right : 0;
        margin : 0 auto;
    }
    #menu img {
        transition : 1s all;
    }

    /* #menu img:hover {
        transform : translate(0, 90px)
    } */

</style>
  • JavaScript
<script>

    const list = document.querySelectorAll('#menu img');

    let old = null;

    for (let i=0; i<list.length; i++) {

        list[i].onclick = function() {

            //이전에 누른 메뉴? > 접기
            if (old !=null){
                old.style.transform = 'translate(0, 0)';
            }

            if (event.target == old) {
                event.target.style.transform = 'translate(0,0)';
                old = null;
            } else {
                //나중에 누른 메뉴
                event.target.style.transform = 'translate(0, 90px)';
                old = event.target;
            }

        };

    }

</script>
  • 실행 결과

상위 메뉴 클릭 시 메뉴가 내려옴

 

★ Select 박스를 이용한 이미지 표출

  • HTML 코드
<h1>고양이</h1>
<div id="box">
    <div id="list">
        <img src="images/cat01.jpg">
        <img src="images/cat02.jpg">
        <img src="images/cat03.jpg">
        <img src="images/cat04.jpg">
        <img src="images/cat05.jpg">
    </div>
</div>

<hr>

<select id="sel">
    <option value="0">고양이1</option>
    <option value="1">고양이2</option>
    <option value="2">고양이3</option>
    <option value="3">고양이4</option>
    <option value="4">고양이5</option>
</select>
  • CSS 코드
<style>
    #box {
        width : 250px;
        height: 188px;
        border : 10px solid dodgerblue;
        overflow: hidden;
    }
    #list {
        /* outline : 10px solid tomato; */
        width : 1250px;
        display: flex;
        transition: 1s all;
    }
    /* #box:hover #list {
        transform: translate(-250px, 0);
    } */
</style>
  • JavaScript
<script>
    const sel = document.getElementById('sel');
    const list = document.getElementById('list');

    let old = 0; //이전 고양이 value

    sel.addEventListener('change', function() {
        // alert(Math.abs(event.target.value - old));
        list.style.transitionDuration = `${Math.abs(event.target.value - old)*0.5}s`;
        list.style.transform = `translate(-${event.target.value *250}px, 0)`;

        old = event.target.value;
    });
</script>
  • 실행 결과

셀렉트 박스 선택시, 해당 이미지 표출

 

 

★ 배경 이미지를 이용한 응용

  • HTML 코드
<h1>배경 이미지</h1>

<div id="heart"></div>
<hr>
<input type="button" value="확인" id="btn">
  • CSS 코드
<style>
    #heart {
        border : 1px solid black;
        width : 300px;
        height: 300px;
        background-image: url(images/heart.png);
    }
</style>
  • JavaScript
<script>

    let x = 0;

    document.getElementById('btn').onclick = function() {
        x -= 300;
        if (x < - 600) {
            x = 0;
        }
        document.getElementById('heart').style.backgroundPosition = `${x}px 0px`;
    }

</script>
  • 실행 결과

버튼 클릭시 하트 체력이 줄어듬

 

★ 퓨마가 움직이는 것처럼 구현

  • HTML 코드
<h1>퓨마</h1>

<div id="puma"></div>
  • CSS 코드
#puma {
    width : 512px;
    height: 256px;
    background-image: url(images/puma.png);
    background-repeat: no-repeat;
}
  • JavaScript
const puma = document.getElementById('puma');
x=0;
let y = 0;

puma.onclick = function() {

    timer = setInterval( () => {

        x -= 512;

        if(x < -(512*3)) {
            x = 0;
            y -= 256;

            if (y<-256) {
                y=0;
            }
        }

        puma.style.backgroundPosition = `${x}px ${y}px`;

    }, 50);            


};
  • 실행 결과

퓨마 이미지 클릭시, 이미지가 애니메이션이 되듯이 플레이됨.

 

728x90
저작자표시 비영리 변경금지 (새창열림)

'웹페이지' 카테고리의 다른 글

JAVASCRIPT STEP 46 - Scroll  (0) 2023.04.28
JAVASCRIPT STEP 45 - Calendar  (0) 2023.04.28
JAVASCRIPT STEP 43 - CSS(JAVASCRIPT ver)  (0) 2023.04.27
JAVASCRIPT STEP 42 - Template, Event  (0) 2023.04.27
JAVASCRIPT STEP 41 - CLOSURE  (0) 2023.04.27
'웹페이지' 카테고리의 다른 글
  • JAVASCRIPT STEP 46 - Scroll
  • JAVASCRIPT STEP 45 - Calendar
  • JAVASCRIPT STEP 43 - CSS(JAVASCRIPT ver)
  • JAVASCRIPT STEP 42 - Template, Event
IT의 큰손
IT의 큰손
IT계의 큰손이 되고 싶은 개린이의 Log 일지
Developer Story HouseIT계의 큰손이 되고 싶은 개린이의 Log 일지
IT의 큰손
Developer Story House
IT의 큰손
전체
오늘
어제
  • 분류 전체보기 (457)
    • 정보처리기사 필기 (18)
    • 정보처리기사 실기 (12)
    • 정보처리기사 통합 QUIZ (12)
    • 빅데이터 (11)
    • 안드로이드 (11)
    • 웹페이지 (108)
    • 자바 (49)
    • SQLD (3)
    • 백준 알고리즘 (76)
    • 데이터베이스 (41)
    • 깃허브 (2)
    • Library (14)
    • Server (31)
    • 크롤링&스크래핑 (3)
    • Spring (23)
    • Vue.js (13)
    • React (27)

블로그 메뉴

  • 홈
  • 태그
  • 방명록

공지사항

  • Developer Stroy House

인기 글

태그

  • 자바
  • jsp
  • jquery
  • 정보처리기사
  • DBA
  • IT자격증
  • 개발블로그
  • 코딩테스트
  • html
  • 앱개발자
  • IT자격증공부
  • java
  • ajax
  • IT개발자
  • 백엔드
  • css
  • 웹개발자
  • 백준
  • 웹페이지
  • 정보처리기사필기
  • 프론트엔드
  • it
  • 데이터베이스
  • 정보보안전문가
  • DB
  • 웹개발
  • React
  • 알고리즘
  • JavaScript
  • 개발자

최근 댓글

최근 글

Designed By hELLO
IT의 큰손
JAVASCRIPT STEP 44 - CSS
상단으로

티스토리툴바

단축키

내 블로그

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

블로그 게시글

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

모든 영역

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

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