2020-05-16/2023-05-23

【jQuery】スクロールに合わせて表示する

【jQuery】スクロールに合わせて表示する

スクロール時にコンテンツがふわっと出てくる感じきれいに見えますよね。

今回はスクロールに合わせてコンテンツを表示させる方法をまとめます。

先日実装する機会がありましたので、備忘録的にまとめておきます。

完成形

こんな感じになります。

HTML,CSS部

<div class="container" style="background-color:#ccc"></div>
<div class="container">
<div class="box" id="box1">box1</div>
<div class="box" id="box2">box2</div>
<div class="box" id="box3">box3</div>
<div class="box" id="box4">box4</div>
</div>

今回はボックス4つを順番に表示させますので箱4つ用意してます。

それぞれの箱をあらかじめ下に用意しておいて表示したときに、上に登ってくるようにしておきます。

.active {
opacity: 1;
transform: translateY(0vh);
}

「active」クラスはJavaScriptの付与するためのものです。

可視化して下に用意していたものをもとの高さまで戻しています。

JavaScript部

window.addEventListener("scroll", function() {
var box1 = document.getElementById("box1");
var box2 = document.getElementById("box2");
var box3 = document.getElementById("box3");
var box4 = document.getElementById("box4");
window.onscroll = function() {
var screenHeight = window.innerHeight;
var scrollTop = document.documentElement.scrollTop;
if (screenHeight / 2 < scrollTop) {
box1.classList.add("active");
box2.classList.add("active");
box3.classList.add("active");
box4.classList.add("active");
}
};
});

screenHeight / 2 < scrollTop の部分でどのぐらいスクロールされたら表示するかを決めます。

今回はウインドウの高さの半分スクロールされたら表示されるようにしました。

2020 KumaTechLab.