今回はそんな疑問にお答えします。
ここではプラグインを使わない方法ですが、正直プラグイン使う方がおすすめです(^^;
プラグインを使った方法については以下の記事を参照下さい。
inview.jsでスクロールして表示領域に入ったらフェードインさせる方法【jQueryプラグイン】
続きを見る
(有料になっていたらすいません🙇♂️)
スクロールして要素が画面内に入ったらフェードインさせる方法
フェードインはプラグインを使っても出来ますが、今回はプラグインなしでjQueryを使って実装していきます。
jQueryの使い方はこちらの記事を参照下さい。
【初心者向け】jQueryとは?CDNを使った本体の読み込み方も分かりやすく解説
続きを見る
フェードインは上下左右どの方向からでも可能で、タイミングやフェードの時間も調整可能です。
下からのフェードイン
まずは基本となる下からのフェードインを見てみたいと思います。
See the Pen
フェードイン(アップ) by junpei (@junpei-sugiyama)
on CodePen.
背景はあった方が見やすいかと思ったので付けましたが、CSSは基本的に気にしなくて大丈夫です。
まずはHTMLですが、これはフェードインさせたい要素にjQueryで使うclassを付けるだけです。
上記でいえばclass="scroll-fade-up"
となります。
そしてjQueryですが、フェードのタイミング、移動距離、スピードなどは以下の箇所で調整可能です。
<!-- jQuery -->
const fade_bottom = 50; // 画面下からどの位置でフェードさせるか(px)
const fade_move = 100; // どのぐらい要素を動かすか(px)
const fade_time = 800; // エフェクトの時間(ms)
またjQueryでフェード前のCSSを定義します。
$(".scroll-fade-up").css({
opacity: 0,
transform: "translateY(" + fade_move + "px)",
transition: fade_time + "ms",
});
最初はopacity: 0;
で見えないようにしています。
また2行目ですが、
- 変更前:transform: "translateY(" + fade_move + "px)"
- 変更後:transform: "translateY(-" + fade_move + "px)"
とすると下からではなく上からフェードインします(あまり使わないと思いますが)
横からのスライドイン
次は横からのスライドインを見てみます。
See the Pen
フェードイン(サイド) by junpei (@junpei-sugiyama)
on CodePen.
HTML、CSSは先ほどと同じで、jQueryもほぼ同じです。
jQueryで変わった点は、translateY が translateX になった事です。
変化の軸がY軸(縦)からX軸(横)になったという事ですね。
上記は左からフェードインしますが、こちらも先ほど同じ位置にマイナスを付ければ今度は右からフェードインします。
まとめ
今回はjQueryを使ってスクロールして要素が画面内に入ったらフェードインさせる方法について解説しました。
以上になります。
Animate.cssをスクロールに応じてアニメーションできる『wow.js』の使い方【サンプルで解説】
続きを見る