コーディング Web制作 jQuery アニメーション

【jQuery】スクロールして要素が画面内に入ったらフェードインさせる方法

【jQuery】スクロールして要素が画面内に入ったらフェードインさせる方法
スクロールするとフワっと浮き出てくるフェードインってどうやって実装するんだろう?

今回はそんな疑問にお答えします。

ここではプラグインを使わない方法ですが、正直プラグイン使う方がおススメです(^^;

プラグインを使った方法については以下の記事を参照下さい。

【jQueryプラグイン】inview.jsでスクロールして表示領域に入ったらフェードインさせる方法

効率よくコーディングしたい人はこちら

スクロールして要素が画面内に入ったらフェードインさせる方法

フェードインはプラグインを使っても出来ますが、今回はプラグインなしでjQueryを使って実装していきます。

フェードインは上下左右どの方向からでも可能で、タイミングやフェードの時間も調整可能です。

 

下からのフェードイン

まずは基本となる下からのフェードインを見てみたいと思います。

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軸(横)になったという事ですね。

上記は左からフェードインしますが、こちらも先ほど同じ位置にマイナスを付ければ今度は右からフェードインします。

以上です。

 


コーディング案件の単価と作業効率を上げる!

Brainランキング1位獲得 & 3日で500部突破

クチコミ約300件
(平均スコア

今だけ!5つの無料特典あり🎁

👇画像をクリック

  • この記事を書いた人

じゅんぺい

タイ・バンコク在住のWeb制作フリーランス兼ブロガー▶︎37歳からWeb制作を開始▶︎コーディングとWordPressのオリジナルテーマ制作でこれまで80件以上納品▶︎Web制作中心の当ブログは月7万PV▶︎コーディングとWordPressのコンテンツを販売し、3日で500部突破&250万円&人気1位獲得。

-コーディング, Web制作, jQuery, アニメーション
-