| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 1 | 2 | 3 | 4 | |||
| 5 | 6 | 7 | 8 | 9 | 10 | 11 |
| 12 | 13 | 14 | 15 | 16 | 17 | 18 |
| 19 | 20 | 21 | 22 | 23 | 24 | 25 |
| 26 | 27 | 28 | 29 | 30 |
Tags
- 리액트
- IndexedDB
- 배너 슬라이더
- array
- 배포
- 렌더링
- dnd-kit
- slide
- 인덱스된 데이터베이스
- 웹스토리지
- 배너
- vite
- 슬라이더
- banner
- js
- React.js
- HTTP
- 자바스크립트
- 배열
- deploy
- 리액트배포
- 웹
- javascript
- react
- 웹사이트
- 슬라이드
- 자바스크립트 배열
- 비동기 함수
- github
- Github Pages
Archives
- Today
- Total
Somedding
[Toy Projects] 'Color, me' project (9) 본문
이번엔 무슨 웹인지 모르겠다는 의견이 있어서 보완하게 됐다.
설명을 좀 더 구체적으로 할 수 있도록 ‘도움말’ 기능을 추가 구현했다.
페이지를 들어가면 자동으로 도움말 모달이 표시되고, 도움말 버튼을 누르면 언제든지 표시될 수 있도록 했다.
우선 모달창 부분 html이다.
<div id="modal-back">
<div id="modal">
<div id="modal-top">
<p id="modal-title">Color, me</p>
<p id="modal-cancel" onclick="closeModal();">×</p>
</div>
<div id="modal-content">
<p>Color, me는 나만의 색 조합을 저장할 수 있는 사이트입니다.</p>
<p>색은 최소 1개부터 최대 6개까지 추가가 가능합니다.</p>
<p>조합은 최대 30개까지 저장이 가능합니다.</p>
<p>웹사이트의 특성상 저장된 조합은 다른 웹과의 공유가 불가능합니다.</p>
<p>ex) 크롬에 저장된 조합은 익스플로러에서 볼 수 없습니다.</p>
</div>
</div>
</div>
여기서 id가 modal-back인 div의 역할은 모달창이 화면에 전시되었을 때, 모달창을 제외한 다른 영역은 흐림 처리를 주기 위함이다.
추가로 도움말 버튼은
<div id="title">
<span>Color, me</span>
<svg onclick="openModal();" xmlns="http://www.w3.org/2000/svg" width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="#000000" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><circle cx="12" cy="12" r="10"></circle><path d="M9.09 9a3 3 0 0 1 5.83 1c0 2-3 3-3 3"></path><line x1="12" y1="17" x2="12.01" y2="17"></line></svg>
</div>
사이트 이름 옆에 물음표 버튼을 넣었다.
css까지 추가해서 꽤 그럴듯한(?) 모달창을 만들었다.
body{
width: 100%;
height: 100%;
}
#modal-back{
position: fixed;
width: 100%;
height: 100%;
background-color: #0000009e;
z-index: 2;
overflow: hidden;
}
#modal{
position: absolute;
width: 500px;
min-height: 200px;
left: 50%;
top: 50%;
transform: translate(-50%,-50%);
background-color: white;
box-shadow: 0px 5px 20px rgba(0, 0, 0, 0.25);
border-radius: 20px;
}
#modal-top{
padding: 15px 20px;
border-bottom: 1px solid black;
display: flex;
justify-content: space-between;
font-size: 25px;
align-items: baseline;
}
#modal-cancel{
font-size: 30px;
}
#modal-cancel:hover{
cursor: pointer;
}
#modal-content{
padding: 15px 20px;
}
#modal-content p{
margin: 10px 0;
}
모달창

물론 전에 설정한 반응형에 맞도록 구현했다.
// @media (max-width : 689px) 내의 코드
body{
text-align: center;
}
#modal{
text-align: start;
font-size: 12px;
width: 80%;
}

js로는 도움말 버튼을 클릭하면 openModal(), 모달창 닫기 버튼을 클릭하면 closeModal() 함수가 호출될 수 있도록 함수들을 구현했다.
// 모달창 닫기
function closeModal(){
document.getElementById("modal-back").style.display = 'none';
}
// 모달창 열기
function openModal(){
document.getElementById("modal-back").style.display = 'block';
}
이렇게 하면 사이트를 더 알기 쉽지 않을까라는 생각을 한다.
글 내용 중, 잘못됐거나 더 알아야 하는 지식이 있다면 댓글로 남겨주시면 감사하겠습니다!
모두 좋은 하루 보내세요:)
'Toy Projects' 카테고리의 다른 글
| [Toy Projects] 'TODOoO' project (1) (0) | 2023.03.01 |
|---|---|
| [Toy Projects] 'TODOoO' project (0) (0) | 2023.02.28 |
| [Toy Projects] 'Color, me' project (8) (0) | 2023.02.16 |
| [Toy Projects] 'Color, me' project (7) (2) | 2023.02.09 |
| [Toy Projects] 'Color, me' project (6) (0) | 2023.02.08 |
Comments