-
Notifications
You must be signed in to change notification settings - Fork 1
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
[ 2주차 기본,심화 과제 ] 웨비의 사진관 #6
Conversation
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
역시나 깔꼼하네요 !
저는 첫 번째 섹션에 더보기 버튼을 모두 넣어두고, 글자수에 따라 유동적으로 더보기 버튼이 보이거나 안 보이게 해야지! 라고 생각하고 구현하려 하였는데 이 부분을 승희는 다르게 구현하고 또 깔꼼해서 많이 배워갑니다아
수고 많았어요오 💗
<div class="description"> | ||
<h3>빤히숭이</h3> | ||
<p> | ||
빤히..빤히..빤히..빤히빤히빤히빤히빤히빤히빤히빤히빤히빤히빤히빤히빤히빤히빤히빤히빤히빤히빤히빤히빤히빤히빤히빤히빤히빤히빤히빤히빤히빤히당신을 |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
zㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋ
숭러질것만같아.. 무너질것만같아..숭러질것만같아.. | ||
무너질것만같아..숭러질것만같아.. 무너질것만같아..숭러질것만같아.. | ||
무너질것만같아.. 아침의 우리 모습 |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
아 제발 ㅜ ㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋ
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
하.....ㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋ세상에.....
const leftBtn = document.querySelector("#preview>i:first-child"); | ||
const rightBtn = document.querySelector("#preview>i:last-child"); |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
특별한 css 지정을 해야하는 것은 아니니 따로 id 지정 안 하고 이렇게 하는 거 괜찮은 방법인 것 같네요 !
preview.scrollTo({ left: 0, behavior: "smooth" }); | ||
}); | ||
rightBtn.addEventListener("click", function () { | ||
preview.scrollTo({ left: 999, behavior: "smooth" }); |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
왜 999인가요 ? 궁금궁금
저도 처음엔 적당한 큰 값을 넣었더니 스크롤이 끝까지 이동 안 하고 중간에 멈추는 문제가 발생해서 preview section의 width값을 구해서 넣어두었거든요 !
빤히..빤히..빤히..빤히빤히빤히빤히빤히빤히빤히빤히빤히빤히빤히빤히빤히빤히빤히빤히빤히빤히빤히빤히빤히빤히빤히빤히빤히빤히빤히빤히빤히빤히당신을 | ||
쳐다보는 숭이 | ||
</p> | ||
<button type="button" class="moreBtn">더보기</button> |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
오 글자수가 넘어갈 때만 html 상에서 버튼을 미리 추가해두고 시작하였군뇨
저는 동적으로 추가하려고 시도하다가 포기하고 냅다 다 추가해뒀는데 ..
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
심화과제까지 적용되어있어서 구현 못한 부분도 어떤 식으로 보완해나가야할지 덕분에 감을 잡을수 있었어요! 늘 깔끔한 코드..너무 멋있습니다💛
숭러질것만같아.. 무너질것만같아..숭러질것만같아.. | ||
무너질것만같아..숭러질것만같아.. 무너질것만같아..숭러질것만같아.. | ||
무너질것만같아.. 아침의 우리 모습 |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
하.....ㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋ세상에.....
<img src="./src/숭이10.jpg" alt="원숭이사진10" /> | ||
<div class="description"> | ||
<h3>코코숭</h3> | ||
<p>숭이 숭이 코코밥 ... 아띵크아일라익댓... 엑소숭이</p> |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
진짜...광기다 언니...🔥
const moreBtn = document.querySelectorAll(".moreBtn"); | ||
const handleMoreBtn = (e) => { | ||
const descriptionParagraph = e.target.parentElement.querySelector("p"); | ||
const currentMoreBtn = e.target.parentElement.querySelector("button"); | ||
descriptionParagraph.style.overflow = "visible"; | ||
currentMoreBtn.style.display = "none"; | ||
}; | ||
moreBtn.forEach((btn) => (btn.onclick = handleMoreBtn)); |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
심화과제 하다 잠시 내려두었는데... "더 보기" 버튼의 부모 요소에 이런방식으로 연결하면 되겠네요!!
@@ -0,0 +1,43 @@ | |||
const handleScrollPosition = () => { | |||
const scrollPos = | |||
window.scrollY / (document.body.clientHeight - window.innerHeight); |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
현재 스크롤 위치를 전체 문서의 높이에서 화면 높이를 뺀 값으로 나눠서 0과 1사이 값을 구하고, 이걸 opacity에 넣었군요!
아니 이거 진짜 천재같아요 어떻게 이런 생각을 해 진짜...
✨ 구현 기능 명세
이미지 (첫번째 섹션만 해당) ✔️
이미지 호버시 백그라운드가 어둡게 처리되고, 해당 사진에 대한 제목과 설명이 나타납니다.
이미지에서 벗어나면 사라집니다.
→ 한번에 반드시 하나의 이미지의 설명만 나타납니다.
top버튼 ✔️
이미지 ✔️
3줄 이상인 설명은 말줄임표 처리와, 더보기 버튼이 나타납니다.
더보기 클릭시 설명이 모두 보입니다.
→ 설명은 넘치지 않도록 넣어주세요!
preview section ✔️
💎 PR Point
각 이미지 태그를 아래와 같이 구성했습니다.
호버 처리는 css만 사용하여 구현하였습니다.
relative
로 주고, 내부의 img와 description박스 (호버시 나타나는 어두운 설명 박스) 두개의 position을 모두absolute
로 하여 중첩 배치하였습니다.handleScrollPosition
이벤트리스너를 연결🥺 소요 시간, 어려웠던 점
2h
🌈 구현 결과물
i.e.e.e.2023-10-27.i.i.8.20.45.mov
심화과제 구현 결과물은 과제 채점 후 추후 업로드하겠습니다