今回は、フェードインのアニメーションで要素を表示させる方法を紹介します。
JavaScriptを使って実装します。
【JS】フェードインのアニメーションで要素を表示させる方法
完成形はこちら。
下にスクロールしていくと、要素が下からフェードインして表示されます。
※ フェードインのアニメーションに関するコードだけ載せます。
HTML
<section class="items">
<div class="item fade-in">
<div class="item__img">
<img src="./image/1.JPG" alt="">
</div>
<div class="item__text">
<h2>フェードインします</h2>
<p>ブラウザに要素が表示されると、フェードインします。ブラウザに要素が表示されると、フェードインします。ブラウザに要素が表示されると、フェードインします。ブラウザに要素が表示されると、フェードインします。ブラウザに要素が表示されると、フェードインします。ブラウザに要素が表示されると、フェードインします。ブラウザに要素が表示されると、フェードインします。</p>
</div>
</div>
<div class="item fade-in">
<div class="item__img">
<img src="./image/2.JPG" alt="">
</div>
<div class="item__text">
<h2>フェードインします</h2>
<p>ブラウザに要素が表示されると、フェードインします。ブラウザに要素が表示されると、フェードインします。ブラウザに要素が表示されると、フェードインします。ブラウザに要素が表示されると、フェードインします。ブラウザに要素が表示されると、フェードインします。ブラウザに要素が表示されると、フェードインします。ブラウザに要素が表示されると、フェードインします。</p>
</div>
</div>
<div class="item fade-in">
<div class="item__img">
<img src="./image/4.JPG" alt="">
</div>
<div class="item__text">
<h2>フェードインします</h2>
<p>ブラウザに要素が表示されると、フェードインします。ブラウザに要素が表示されると、フェードインします。ブラウザに要素が表示されると、フェードインします。ブラウザに要素が表示されると、フェードインします。ブラウザに要素が表示されると、フェードインします。ブラウザに要素が表示されると、フェードインします。ブラウザに要素が表示されると、フェードインします。</p>
</div>
</div>
</section>
まずは、フェードインさせたい要素に対して「fade-in」クラスをつけます。
CSS
// フェードイン
.fade-in {
opacity: 0;
visibility: hidden;
transform: translateY(50px);
transition: opacity 2s, transform 2s;
}
.fade-in.show {
opacity: 1;
visibility: visible;
transform: translateY(0px);
}
ブラウザに要素が表示されるまでは非表示にします。
そしてブラウザに要素が表示された時に、下から50pxほどフェードインして表示されるようにします。
JavaScript
// フェードイン
function showElementAnimation() {
var element = document.getElementsByClassName('fade-in');
if (!element) return;
var showTiming = window.innerHeight > 768 ? 200 : 60;
var scrollY = window.pageYOffset;
var windowH = window.innerHeight;
for (var i = 0; i < element.length; i++) {
var elemClientRect = element[i].getBoundingClientRect(); var elemY = scrollY + elemClientRect.top; if (scrollY + windowH - showTiming > elemY) {
element[i].classList.add('show');
} else if (scrollY + windowH < elemY) {
}
}
}
showElementAnimation();
window.addEventListener('scroll', showElementAnimation);
ブラウザに要素が表示されるとshowクラスがつき、下からフェードアウトするようにしました。
まとめ
以上が、フェードインのアニメーションで要素を表示させる方法でした。



