반응형
HTML, CSS, 자바스크립트를 이용하여
배경색을 1초마다 다른 색으로 변경시켜 보도록 하겠습니다.
변경도 자연스럽게 슬라이드 되도록 한번 해보도록 하겠습니다.
아래 run pen을 누르시면 동작합니다.
See the Pen slide by powerku (@powerku) on CodePen.
먼저 HTML을 이용하여
div, ul, li 태그를 만들어줍니다.
<div class=box>
<ul>
<li class="red"></li>
<li class="orange"></li>
<li class="yellow"></li>
<li class="green"></li>
<li class="blue"></li>
<li class="navy"></li>
<li class="purple"></li>
</ul>
</div>
li 태그들이 이동하면서 화면이 슬라이드 되는 것처럼 보이게 됩니다.
css도 추가합니다.
.box {
width: 300px;
height: 300px;
position: relative;
overflow: hidden;
}
ul {
position: absolute;
top: 0px;
left: 0px;
width: 2100px;
height: 100px;
padding: 0;
margin: 0;
transition: 1s;
}
li {
list-style: none;
width: 300px;
height: 300px;
float: left;
}
.red {
background-color: red;
}
.orange {
background-color: orange;
}
.yellow {
background-color: yellow;
}
.green {
background-color: green;
}
.blue {
background-color: blue;
}
.navy {
background-color: navy;
}
.purple {
background-color: purple;
}
자바스크립트도 추가합니다.
반응형
const ul = document.querySelector('ul');
let li;
let left = 0;
setInterval(() => {
li = document.querySelectorAll('li');
left = -300;
ul.style.left = `${left}px`;
ul.style.transition = '1s';
}, 1000)
ul.addEventListener("transitionend", function() {
console.log('transitionend');
ul.style.left = `0px`
ul.style.transition = '0s';
ul.appendChild(li[0]);
})
1초 간격으로 li를 이동시킵니다.
이동시킨 이후에는 li를 요소를 맨뒤로 보냅니다.
이렇게 하면 1초에 한 번씩 배경색을 슬라이드 할 수 있습니다.
728x90
반응형