Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[4주차 기본/생각 과제] Github profile finder #5

Open
wants to merge 28 commits into
base: main
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from 27 commits
Commits
Show all changes
28 commits
Select commit Hold shift + click to select a range
3cf0bc6
construction : week2 브랜치 생성
borimong Oct 13, 2022
8990238
feat: todolist 화면 전환 구현
borimong Oct 13, 2022
f47fc8a
feat: todo리스트 add 기능 구현
borimong Oct 13, 2022
445f96f
feat: 아이콘 클릭 시 리스트 삭제
borimong Oct 13, 2022
13f55ea
feat: velog dropdown 구현 완료
borimong Oct 13, 2022
f7468de
feat: velog 태그 추가 및 삭제 기능 구현
borimong Oct 14, 2022
f417cec
init: 작업 환경 세팅
borimong Oct 31, 2022
a38b544
feat: 헤더 구현 완료
borimong Oct 31, 2022
d11e367
feat: 버튼 클릭 시 사진, 버튼명, 점수 변경하기 구현
borimong Oct 31, 2022
fad18ca
feat: 다시하기 기능 구현
borimong Oct 31, 2022
649f492
:bug 다시하기 버튼에 setEnd(0) 추가 및 score 범위 수정
borimong Oct 31, 2022
67e39d9
refactor: 필요 없는 매개변수 제거
borimong Nov 2, 2022
c53b4e5
etc: 주석 추가
borimong Nov 2, 2022
504668d
feat: styled-component 이용한 css 작업 완료
borimong Nov 2, 2022
69f2672
:docs 생각 과제 완료
borimong Nov 4, 2022
5168d36
feat: portal 이용한 modal 구현 완료
borimong Nov 4, 2022
516daba
feat: 모달창 스타일링 구현 완료
borimong Nov 4, 2022
26d87f7
init: 과제하기 전 실습부터 완료했습니다
borimong Nov 10, 2022
9073b9e
feat: 검색 기록 모달 배열 구현 완료
borimong Nov 11, 2022
c17570a
feat: 이름 클릭 시 검색 기록 삭제 기능 구현
borimong Nov 11, 2022
146b9e8
feat: 검색기록에서 이름 클릭 시 url 변경하는 기능 구현
borimong Nov 11, 2022
dcbe8dd
feat: axios 로 데이터 받아오기 구현
borimong Nov 11, 2022
479fb6f
feat: 스타일링 구현 완료
borimong Nov 11, 2022
8984b06
branch 바꾸기 전 커밋
borimong Dec 2, 2022
1bd5042
docs: fetching library 생각 과제
borimong Dec 2, 2022
3070601
타스
borimong Dec 26, 2022
346587f
fix: 타스 에러 수정
borimong Dec 26, 2022
2c2854c
fix: 코드 리뷰 반영
borimong Dec 27, 2022
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
65 changes: 65 additions & 0 deletions week2/ToDoList/index.html
Original file line number Diff line number Diff line change
@@ -0,0 +1,65 @@
<!DOCTYPE html>
<!--html5 의 구조 .. html 을 명시하는 코드 -->
<html lang="ko">
<!--DOCTYPE 바로 밑에는 html 태그가 와야 한다. lang 는 언어 설정. 접근성 부분에서 차이 -->
<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>
<link rel="stylesheet" href="style.css" />
<link
rel="stylesheet"
href="https://fonts.googleapis.com/css2?family=Material+Symbols+Outlined:opsz,wght,FILL,GRAD@48,400,0,0"
/>
<script defer src="index.js"></script>
</head>
<body>
<header></header>
<nav id class="flex center">
<button id="today_button">오늘만 보기</button>
<button id="tomorrow_button">내일만 보기</button>
<button id="both_button">함께 보기</button>
</nav>
<main class="flex">
<section class="left">
<h5>오늘 할 일</h5>
<ul class="leftList">
<li class="grid">
예시 1
<span class="material-symbols-outlined">delete</span>
</li>
<li class="grid last">
예시 2
<span class="material-symbols-outlined">delete</span>
</li>
</ul>
<form class="flex">
<input class="leftInput" />
<button class="leftButton">+</button>
</form>
</section>
<section class="right">
<h5>내일 할 일</h5>
<ul class="rightList">
<li class="grid">
예시 1
<span class="material-symbols-outlined">delete</span>
</li>
<li class="grid last">
예시 2
<span class="material-symbols-outlined">delete</span>
</li>
</ul>
<form class="flex">
<input class="rightInput" />
<button class="rightButton">+</button>
</form>
</section>
</main>
<footer></footer>
</body>
<script src="index.js"></script>
</html>
123 changes: 123 additions & 0 deletions week2/ToDoList/index.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,123 @@
const $ = (selector) => document.querySelector(selector);
const $$ = (selector) => document.querySelectorAll(selector);

const nav = $('nav');
const forms = $$('form');
const left_form_button = $('.leftButton');
const right_form_button = $('.rightButton');
const left_input = $('.leftInput');
const right_input = $('.rightInput');
const left_list = $('.leftList');
const right_list = $('.rightList');
const garbage = $('.material-symbols-outlined');
const lists = $$('li');

//이벤트 위임을 이용해 버튼을 이용한 화면 전환 구현
//애니메이션 효과 적용

nav.addEventListener("click", (e) => {
e.stopPropagation();
const target = e.target;
switch (target.id) {
case 'today_button' :
$('.right').classList.add('hidden');
$('.left').classList.add('full');
$('.left').classList.remove('hidden');
$('.right').classList.remove('full');
break;
case 'tomorrow_button' :
$('.left').classList.add('hidden');
$('.right').classList.add('full');
$('.right').classList.remove('hidden');
$('.left').classList.remove('full');
break;
case 'both_button' :
$('.right').classList.remove('hidden');
$('.left').classList.remove('full');
$('.left').classList.remove('hidden');
$('.right').classList.remove('full');
break;
}

})

//Left + 버튼 클릭 시 Add 함수 호출하는 이벤트

left_form_button.addEventListener("click", (e) => {
e.preventDefault();
e.stopPropagation();
left_list.appendChild(onAddLeft(left_input));

})

//Left 에 Add 하는 함수

function onAddLeft(left_input) {
const currentLi = document.createElement('li');
currentLi.innerHTML = left_input.value;

//delete 아이콘 만들어서 리스트에 추가하기
const currentDeleteBtn = document.createElement('span');
currentDeleteBtn.innerHTML = "delete";
currentDeleteBtn.classList.add('material-symbols-outlined');
currentLi.appendChild(currentDeleteBtn);

currentLi.classList.add('grid');

return currentLi;
}

//Right + 버튼 클릭 시 Add 함수 호출하는 이벤트

right_form_button.addEventListener("click", (e) => {
e.preventDefault();
e.stopPropagation();
right_list.appendChild(onAddRight(right_input));
})

//Right 에 Add 하는 함수

function onAddRight(right_input) {
const currentLi = document.createElement('li');
currentLi.innerHTML = right_input.value;

//delete 아이콘 만들어서 리스트에 추가하기
const currentDeleteBtn = document.createElement('span');
currentDeleteBtn.innerHTML = "delete";
currentDeleteBtn.classList.add('material-symbols-outlined');
currentLi.appendChild(currentDeleteBtn);

currentLi.classList.add('grid');

return currentLi;
}

//Left 에서 휴지통 아이콘 클릭 시 삭제하는 기능 구현

left_list.addEventListener("click", (e) => {
e.stopPropagation();
const target = e.target;
switch (target.nodeName) {
case 'SPAN':
const n = e.target.parentNode;
left_list.removeChild(n);
break;
}

}
)

//Right 에서 휴지통 아이콘 클릭 시 삭제하는 기능 구현

right_list.addEventListener("click", (e) => {
e.stopPropagation();
const target = e.target;
switch (target.nodeName) {
case 'SPAN':
const n = e.target.parentNode;
right_list.removeChild(n);
break;
}

}
)
122 changes: 122 additions & 0 deletions week2/ToDoList/style.css
Original file line number Diff line number Diff line change
@@ -0,0 +1,122 @@
* {
box-sizing: border-box;
}

html,
body {
height: 100vh;
}

.flex {
display: flex;
}

.grid {
display: grid;
}

.center {
align-items: center;
justify-content: center;
}

/* semantic tags */

header {
height: 100px;
background-color: red;
}

main {
width: 100%;
min-height: 700px;
}

nav {
height: 50px;
border-bottom: 1px solid black;
}

nav button {
margin-right: 10px;
}

section.left {
width: 50%;
border-right: 1px solid black;
padding-left: 20px;
position: relative;
transition-property: width;
transition-duration: 0.2s;
transition-timing-function: ease;
}

section.right {
width: 50%;
border-left: 1px solid black;
padding-left: 20px;
position: relative;
transition-property: width;
transition-duration: 0.5s;
transition-timing-function: ease;
}

footer {
height: 30px;
width: 100%;
border-top: 1px solid black;
border-bottom: 1px solid black;
background-color: red;
}

/*button*/

button {
background-color: pink;
border: none;
}

/*form*/

form {
position: absolute;
bottom: 20px;
left: 50%;
transform: translate(-50%, 0);
}

form input {
min-width: 200px;
}

form button {
border-radius: 3px;
border: 1px solid black;
}

/*list*/

ul {
list-style: none;
padding-left: 10px;
}

li {
grid-template-columns: 9fr 1fr;
height: 50px;
padding-top: 20px;
}

.hidden {
width: 0% !important;
height: 0;
padding: 0 !important;
overflow: hidden !important;
color: white;
}

.full {
width: 100% !important;

}

Loading