<div class="container">
<div class="item">Item 1</div>
<div class="item">Item 2</div>
<div class="item">Item 3</div>
<div class="item">Item 4</div>
<div class="item">Item 5</div>
</div>
<button class="next-button">Next</button>
<button class="prev-button">Prev</button>
xxxxxxxxxx
/* container要素をスクロール可能にする */
.container {
display: flex;
overflow-x: scroll;
scroll-snap-type: x mandatory;
scroll-behavior: smooth; /* スクロールを滑らかにする */
}
/* container内の要素を一行に配置する */
.item {
flex: 0 0 100%;
scroll-snap-align: center;
}
/* ======== 以下、demoのためのスタイル ======== */
.item {
height: 100vh;
font-size: 2rem;
background-color: #f7f7f7;
display: grid;
place-items: center;
}
.next-button, .prev-button {
position: fixed;
top: 50%;
transform: translateY(-50%);
width: 2.5rem;
height: 2.5rem;
background-color: #333;
color: #fff;
border: none;
cursor: pointer;
}
.next-button {
right: 1rem;
}
.prev-button {
left: 1rem;
}
xxxxxxxxxx
var container = document.querySelector('.container');
var nextButton = document.querySelector('.next-button');
var prevButton = document.querySelector('.prev-button');
// 次へボタンのクリックイベントを処理する
nextButton.addEventListener('click', function() {
container.scrollLeft += container.offsetWidth;
});
// 前へボタンのクリックイベントを処理する
prevButton.addEventListener('click', function() {
container.scrollLeft -= container.offsetWidth;
});
This Pen doesn't use any external CSS resources.
This Pen doesn't use any external JavaScript resources.