분홍분홍 코딩 프로젝트
Image slider Lv.2 본문
화면 전환에 초점을 맞추어 만든 슬라이더.
좌우 버튼 같은 제어장치는 없지만
각 div 마다 다양한 이미지나 배경을 주면
여러모로 쓸모가 많을 것 같다.
배운 것
- opacity(불투명성)와 z-index의 차이점. opacity는 각 속성을 0,1로 설정했을 떄 뒤에 오는 것이 겹쳐보이지 않는다. 아예 가린다는 말이다. 0,1 사이의 값으로 설정하면 흐릿하게 보이게 해주겠지.
z-index는 택도 없다. 그냥 무대뽀다. - nth-child( ) 는 형제 태그안에서 순서에 따라 선택시켜준다. ( ) 안에 even, odd를 넣을 수 있음.
- Javascript내에서 동일한 클라스 네임을 가진 아이들 중에 첫 번째 것을 선택하고 싶다면
.class_name : first-child
See the Pen eYByemY by hyungsuplee (@VennyLee) on CodePen.
1) html / css
<style>
.slider {
width: 100%;
height: 100vh;
position: relative;
}
body {
margin: 0;
}
.slide_item {
width: 100%;
height: 100vh;
position: absolute;
display: flex;
justify-content: center;
align-items: center;
font-size: 40px;
z-index: 0;
opacity: 0;
transition: all 1s ease-in-out;
}
.slide_item:nth-child(odd) {
background-color: peru;
}
.slide_item:nth-child(even) {
background-color: blueviolet;
}
.showing {
z-index: 1;
opacity: 1;
}
</style>
<body>
<div class="slider">
<div class="slide_item showing"><span>1</span></div>
<div class="slide_item"><span>2</span></div>
<div class="slide_item"><span>3</span></div>
<div class="slide_item"><span>4</span></div>
<div class="slide_item"><span>5</span></div>
<div class="slide_item"><span>6</span></div>
</div>
</body>
2) Javascript
<script>
const firstSlide = document.querySelector(".slide_item:first-child");
const SHOWING_CN = "showing";
function slide() {
const currSlide = document.querySelector(`.${SHOWING_CN}`);
if (currSlide) {
// 만약 현재 슬라이드라면
currSlide.classList.remove(SHOWING_CN); // 현재 슬라이드에서 SHOWING_CN을 제거한다
const nextSlide = currSlide.nextElementSibling; // 다음 슬라이드를 정의한다.
if (nextSlide) {
// 다음 슬라이드에 왔다면
nextSlide.classList.add(SHOWING_CN); // 다음 슬라이드에 SHOWING_CN을 붙인다.
} else {
// 마지막 슬라이드라면
firstSlide.classList.add(SHOWING_CN); // 첫 번쨰 슬라이드로 돌아가 SHOWING_CN을 붙인다.
}
}
}
function init() {
slide();
setInterval(slide, 2000); //slide 함수를 2초에 한 번씩 실행시켜준다.
}
init();
</script>
영어 직독직해 하듯 옆에 한국말을 써보니 머릿속에 쏙쏙 들어온다.
'옛 포스트 > Project' 카테고리의 다른 글
[TIL] Momentum-dash 이슈 (0) | 2021.11.29 |
---|---|
Drum kit (0) | 2021.03.01 |
Chrome Web - Getting current weather and location (0) | 2021.02.27 |
Image slider Lv.1 (0) | 2021.02.24 |
Chrome web - Random Background image (0) | 2021.02.24 |