오늘은 RESAT 파밍 챌린지 7일 차다.
어제부터 해서 캐러셀을 만드는 미션이었는데, 어제는 정말 캐러셀 기능에서 딱 필요한 기능이었고
오늘은 기본 캐러셀에서 추가 기능들이 적용된 미션이다.
미션 내용
- 이미지가 2초 간격으로 자동 슬라이드 되는 기능 구현
- 슬라이드 끝 부분에서 슬라이드 이미지가 첫 번째 이미지로 순환
이번 미션에는 어제 추가 기능으로 구현하려 했던 자동 슬라이드의 기능을 구현하라고 되어있었다.
예상했으면 미리 해둘걸 싶으면서...
여기서 요구하는 조건 외에 나중에 추가하면 좋을 기능을 리스트업 해보겠다.
- dot 만들기
- dot 클릭 시 해당 순서에 있는 이미지로 이동
이번에는 예상하고 미리 한번 만들어 봐야겠다..!
728x90
중점 구현 사항
const autoSlide = () => {
auto = setInterval(() => {
handleCarouselBtn(1);
}, 2000);
};
const autoRightSlide = (idx) => {
if (idx === textList.length) {
carouselImgList.style.transition = "none";
carouselImgList.style.transform = `translateX(0px)`;
setTimeout(() => {
carouselImgList.style.transform = `translateX(-${defaultWidth}px)`;
carouselImgList.style.transition = `all 0.3s ease-in-out`;
}, 10);
currentIdx = 1;
}
};
const autoLeftSlide = (idx) => {
if (idx === 0) {
carouselImgList.style.transition = "none";
carouselImgList.style.transform = `translateX(-${
defaultWidth * (textList.length - 1)
}px)`;
setTimeout(() => {
carouselImgList.style.transform = `translateX(-${
defaultWidth * (textList.length - 2)
}px)`;
carouselImgList.style.transition = `all 0.3s ease-in-out`;
}, 10);
currentIdx = 4;
}
};
autoSlide();
이번에는 자동으로 슬라이드가 되는 기능을 구현해야 해서 setInterval 메서드를 사용했다.
여기서 자동으로 넘어가는 것도 중요한데 가장 중요한 건 마지막 페이지에 도착했을 때가 문제다.
제일 마지막에 도착한 뒤 다음 페이지로 넘어갈 때 가장 첫 번째로 넘어가야 하는데
이 과정에서 애니메이션이 뚝 끊기게 보이게 되는 상황이 발생할 수 있어서
짧은 사이에 스타일을 변경하는 방식으로 구현해서 시각적으로 자연스럽도록 구현했다.
구현 화면
자동 슬라이드는 커서가 나오지 않았을 때 보이는 화면이고,
마지막 슬라이드로 이동했을 때 자연스럽게 처음 이미지가 나오는 것이 커서가 나왔을 때다.
나름 자연스럽게 넘어가서 꽤 만족스러운 부분이라고 생각이 된다
현재 상금 현황
현재 시간 기준 7일 차 과제 제출 기간이 종료됐다.
일차별 제출 인원을 조사해 본 결과 아래와 같이 확인이 되었다.
일차 | 제출 인원 (총 34명) | 현재 상금 | 1인당 상금 |
1 | 31 | 15,000원 | 약 500원 |
2~4 | 12 | 110,000원 | 약 9천원 |
5~7 | 10 | 120,000원 | 12,000원 |
어제 예상대로 이대로 쭉 갈 거 같다는 느낌이었는데 역시는 역시였다.
아마 이대로 종료되지 않을까 싶긴 한데..
배포 링크
'Develop > Challenge' 카테고리의 다른 글
[RESAT] 9일차 미션 : 반응형 네비게이션 바 만들기 (0) | 2023.06.30 |
---|---|
[RESAT] 8일차 미션 - 캐러셀 만들기 (3) (0) | 2023.06.29 |
[RESAT] 6일차 미션 - 캐러셀 만들기 (1) (0) | 2023.06.27 |
[RESAT] 5일차 미션 - 달력 만들기 (0) | 2023.06.24 |
[RESAT] 4일차 미션 - ToDo List 만들기 (0) | 2023.06.23 |