728x90
연습과제 1
const page = document.querySelector('.document')
const agreeBtn = document.querySelector('button')
function checkTheBottomOfScrolling(){
// 구현하기
if(page.scrollHeight - page.clientHeight === page.scrollTop){
console.log('문서 다 읽음')
agreeBtn.disabled = false
}
}
page.addEventListener('scroll', checkTheBottomOfScrolling)
연습과제 2
this 는 스크롤 이벤트가 발생한 page 요소를 가리킨다.
const pages = document.querySelectorAll('.document')
const agreeBtn = document.querySelector('button')
let count = 0
function isEndOfScroll(elem){
return elem.scrollHeight - elem.clientHeight === elem.scrollTop
}
function checkTheBottomOfScrolling(){
// 구현하기
if(isEndOfScroll(this)){
console.log('문서 다 읽음')
count++
}
if(count === pages.length){
agreeBtn.disabled = false
}
}
for(let page of pages){
page.addEventListener('scroll', checkTheBottomOfScrolling)
}
아래와 같이 이벤트 타겟을 활용한 방법도 있다.
const pages = document.querySelectorAll('.document')
const agreeBtn = document.querySelector('button')
let count = 0
function isEndOfScroll(elem){
return elem.scrollHeight - elem.clientHeight === elem.scrollTop
}
function checkTheBottomOfScrolling(e){
// 구현하기
console.log(e.target)
if(isEndOfScroll(e.target)){
console.log('문서 다 읽음')
count++
}
if(count === pages.length){
agreeBtn.disabled = false
}
}
for(let page of pages){
page.addEventListener('scroll', checkTheBottomOfScrolling)
}
연습과제 3
const page = document.querySelector('.document')
const agreeBtn = document.querySelector('button')
function checkTheBottomOfScrolling(){
// 구현하기
if(page.scrollHeight - page.clientHeight === page.scrollTop){
console.log('문서 다 읽음')
agreeBtn.disabled = false
}
}
function scrollToBottom(e){
console.log(e.keyCode)
if(e.keyCode === 40){
page.scrollTop += 10
}else if(e.keyCode === 38){
page.scrollTop -= 10
}
}
page.addEventListener('scroll', checkTheBottomOfScrolling)
document.addEventListener('keyup', scrollToBottom)
728x90
'프론트엔드 > Javascript 연습과제 해답' 카테고리의 다른 글
요소의 좌표 계산하기 연습과제 해답 (0) | 2024.02.28 |
---|---|
브라우저 창 사이즈와 스크롤 연습과제 해답 (0) | 2024.02.27 |
브라우저 창 사이즈와 스크롤 (0) | 2024.02.25 |
반복문(최신) 연습과제 해답 (0) | 2024.02.17 |
조건문 연습과제 해답 (0) | 2024.02.17 |