오늘은 대충 배경이랑 악세사리 같이 2개의 다른 위치에 이미지를 계속해서 바꿔 입히는 코드를 먼저 짜보려한다.
해야할 순서
- 아무 이미지나 카테고리별로 2개 정도를 같은 크기의 이미지로 public 폴더에 저장
- public 폴더에서 각 이미지를 불러왔을 때, 정해진 위치에 들어가도록 코드를 짜야지.
아바타만들기 틀을 빠르게 짜보았다.
먼저, 이미지는 public폴더에 넣어놓고 절대경로로 불러오도록 설정하였다.

위의 이미지와 같은 형식으로, 각 이미지 카테고리 (ex/ 눈, 코, 입, 모자, 등등) 별로 div영역을 고정시켜 그 안에 사진을 집어넣는 방식으로 짰다. 그렇다면 사용자가 입모양을 바꾸고싶으면, 빨간색 영역의 div에 있는 이미지가 바뀌고 눈을 바꾸고 싶으면 파란색 영역이 바뀌는 로직이다.
그러기 위해서는, 이미지경로를 동적으로 설정할 수 있어야한다.
사용자가 특정 아이템들을 입혀볼 때마다, 이미지경로가 바뀌어야하기때문에 이미지경로를 동적으로 설정해주자.
필자는 styled-components를 사용한 프로젝트이기때문에, prop을 전달하는 방식을 사용했다.
import React from "react";
import styled from "styled-components";
const AvatarBox = () => {
let Man = "ManFace";
return (
<AvatarCtn>
<FaceCtn Man={Man}>
</FaceCtn>
</AvatarCtn>
);
};
const AvatarCtn = styled.div`
display: flex;
justify-content: center;
align-items: center;
height: 48.5vh;
width: 48.5vh;
border: 2px solid black;
`;
const FaceCtn = styled.div`
width: 80%;
height: 80%;
border: 3px solid black;
background-image: ${({ Man }) => `url(/avatar/${Man}.png)`};
background-repeat: no-repeat;
background-size: contain;
background-position: center;
`;
위와 같이 설정을 하면, 변수를 사용하여 동적으로 이미지경로를 바꿔줄 수 있다.
'프로젝트 > 보드윗 (보드게임원 매칭 서비스)' 카테고리의 다른 글
[ 항해99 실전프로젝트 ] 로고를 SVG로 다루어보자! (1) (0) | 2022.11.21 |
---|---|
[ 항해99 실전프로젝트 ] 디테일페이지를 모달창으로 바꾸기 (0) | 2022.11.21 |
[ 항해99 실전프로젝트 ] 회원가입페이지 나누기 (0) | 2022.11.20 |
[ 항해 99 실전프로젝트 ] 사용자의 아바타를 데이터로 만들자 ( 3 ) (0) | 2022.11.20 |
[ 항해99 실전프로젝트 ] 아바타 페이지를 만들어보자 ( 1 ) (0) | 2022.11.19 |