5. 모달창 만들기

2022. 4. 2. 18:13· Front-end/Vue
목차
  1. 먼저 이미지 경로 넣기 (상대경로)
  2. 모달창 같은 UI 만드는 법 (마치 스위치 같은 느낌)

https://youtu.be/UyESqYSb0gY

먼저 이미지 경로 넣기 (상대경로)

App.vue가 현재 src폴더 안에 있고 같은 폴더라는 걸 뜻하는 표현은 ./

지금은 src > assets 안에 이미지를 넣었으니 

"./assets/이미지명 

해주면 됨.

 

그리고 지금은 img의 src도 for문으로 동적으로 생성하고 싶으니

v-bind:src를 써서 경로를 바인딩 해주면 된다. 축약어는 (:src)

이 때, 경로는 require() 안에 넣어줘야 제대로 동작한다.

 

모달창 같은 UI 만드는 법 (마치 스위치 같은 느낌)

1. UI의 현재 상태를 데이터로 저장해둠. 

예) ModalOn = false 로 지정.

2. 데이터에 따라 UI가 어떻게보일지 작성

예) v-if="ModalOn == true"

 

<template>
  <div v-for="(p, i) in list" :key="i">
    <div class="black-bg" v-if="ModalOn[i] == true">
      <div class="white-bg">
        <h4>상세페이지</h4>
        <p>상세페이지 내용임</p>
        <button @click="ModalOn[i] = flase">창 닫기</button>
      </div>
    </div>
  </div>

  <div class="menu">
    <a v-for="(작명, i) in menus" :key="i">{{ 작명 }}</a>
  </div>
  <div v-for="(p, i) in list" :key="i">
    <img :src="p.이미지경로" class="room-img" />
    <h4>{{ p.원룸명 }}</h4>
    <p>{{ p.가격 }} 만원</p>
    <button @click="alerts[i]++">허위매물신고</button>
    <span>신고수 : {{ alerts[i] }} </span>
    <br /><br />
    <button @click="ModalOn[i] = true">상세페이지로</button>
  </div>
</template>

<script>
export default {
  name: 'App',
  data() {
    return {
      ModalOn: [false, false, false],
      alerts: [0, 0, 0],
      menus: ['Home', 'Shop', 'About'],
      list: [
        {
          원룸명: '역삼동원룸',
          가격: 50,
          이미지경로: require('./assets/room0.jpg'),
        },
        {
          원룸명: '천호동원룸',
          가격: 100,
          이미지경로: require('./assets/room1.jpg'),
        },
        {
          원룸명: '마포구원룸',
          가격: 150,
          이미지경로: require('./assets/room2.jpg'),
        },
      ],
    };
  },
  components: {},
};
</script>

<style>
#app {
  font-family: Avenir, Helvetica, Arial, sans-serif;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  text-align: center;
  color: #2c3e50;
}

.menu {
  background: darkslateblue;
  padding: 15px;
  border-radius: 5px;
}

.menu a {
  color: white;
  padding: 10px;
}

.room-img {
  width: 50vw;
  margin-top: 10vh;
}

body {
  margin: 0;
}

div {
  box-sizing: border-box;
}

.black-bg {
  width: 50%;
  height: 100%;
  background: rgba(0, 0, 0, 0.5);
  position: fixed;
  padding: 20px;
  margin: 0 25%;
}

.white-bg {
  width: 100%;
  background: white;
  border-radius: 8px;
  padding: 20px;
  margin: 0 auto;
}
</style>

이런식으로 모달창을 켜고 끄기 할 수 있다.

 

저작자표시 (새창열림)

'Front-end > Vue' 카테고리의 다른 글

Vue CLI 2.x vs 3.x  (0) 2022.04.09
6. 실제 데이터 import / export 하기  (0) 2022.04.02
4. 이벤트 핸들러와 함수 만들기  (0) 2022.04.02
3. 반복문  (0) 2022.04.02
2. 데이터바인딩  (0) 2022.04.01
  1. 먼저 이미지 경로 넣기 (상대경로)
  2. 모달창 같은 UI 만드는 법 (마치 스위치 같은 느낌)
'Front-end/Vue' 카테고리의 다른 글
  • Vue CLI 2.x vs 3.x
  • 6. 실제 데이터 import / export 하기
  • 4. 이벤트 핸들러와 함수 만들기
  • 3. 반복문
Purewater
Purewater
프로그램 공부 일기장Purewater 님의 블로그입니다.
Purewater
프로그램 공부 일기장
Purewater
전체
오늘
어제
  • 분류 전체보기 (237)
    • Front-end (8)
      • Vue (8)
    • 포트폴리오 (3)
      • JSP SHOP (1)
      • Travelanner (1)
      • OAuth2 Blog (1)
    • 취업 준비 (70)
      • Spring boot (43)
      • JPA (1)
      • Spring security (14)
      • React (11)
      • 면접 기록 (1)
    • 국기훈련과정 (57)
      • JAVA 복습노트 (12)
      • Oracle SQL (9)
      • Web (15)
      • JSP (6)
      • Spring (10)
      • 프로젝트 (4)
      • Python (1)
    • 알고리즘 문제풀이 (17)
      • Python3 (13)
      • Kotlin (4)
    • 이것저것 지식 (9)
    • 클라우드 서버 (7)
      • Linux (7)
    • Backend (20)
      • node.js (9)
      • JAVA (6)
      • spring boot (5)
    • DB (1)
      • SQL (1)
    • 잡담 (1)
    • 강의 수강 (1)
    • CS 지식 (41)
      • 디자인패턴 (6)
      • 네트워크 (22)
      • 데이터베이스 (4)

블로그 메뉴

  • 대문
  • 태그
  • 방명록
  • 글쓰기

공지사항

인기 글

태그

  • Java
  • node.js
  • 디자인패턴
  • gitignore
  • git
  • node
  • Oracle
  • 노드
  • PostgreSQL
  • Kotlin
  • spring
  • Postman
  • js
  • 오라클
  • db
  • 자바스크립트
  • JPA
  • redis
  • GUI
  • SQL

최근 댓글

최근 글

hELLO · Designed By 정상우.v4.2.2
Purewater
5. 모달창 만들기
상단으로

티스토리툴바

개인정보

  • 티스토리 홈
  • 포럼
  • 로그인

단축키

내 블로그

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

블로그 게시글

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

모든 영역

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

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