DiviとGSAPを使用してスクロール速度でデザインを変換する方法

公開: 2021-05-21

Diviに慣れれば知るほど、それが非常に柔軟なツールであることに気付くようになります。 これにより、最初に他のデザインアプリケーションを実行しなくても、ページデザインに直接飛び込むことができます。 また、スクロール効果やスティッキーオプションなど、組み込み機能のいくつかを使用して、さらに高度なエクスペリエンスを作成するための基盤を設定します。 さて、これらはそれ自体でかなり強力な機能ですが、限界があります。 外部ライブラリを使用する場合、簡単に抜け出すことができる制限。 たとえば、今日のチュートリアルでは、Divi、GSAP、およびScrollTrigger for GSAPを使用して、スクロール速度でデザインを変換する方法を示します。 デザインを下にスクロールすると、スクロールに使用している速度に応じて特定の要素が変化するため、インタラクティブ性の高いエクスペリエンスが実現します。 JSONファイルも無料でダウンロードできます!

それを手に入れましょう。

プレビュー

チュートリアルに入る前に、さまざまな画面サイズでの結果を簡単に見てみましょう。

垂直スキュー

デスクトップ

スクロール速度

モバイル

スクロール速度

水平スキュー

デスクトップ

スクロール速度

モバイル

スクロール速度

回転する

デスクトップ

スクロール速度

モバイル

スクロール速度

レイアウトを無料でダウンロード

無料のレイアウトを手に入れるには、まず下のボタンを使用してそれらをダウンロードする必要があります。 ダウンロードにアクセスするには、以下のフォームを使用して、DiviDailyのメーリングリストに登録する必要があります。 新規加入者として、毎週月曜日にさらに多くのDiviの良さと無料のDiviレイアウトパックを受け取ります! すでにリストに載っている場合は、下にメールアドレスを入力して[ダウンロード]をクリックしてください。 「再購読」したり、追加のメールを受信したりすることはありません。

ファイルをダウンロードする
無料でダウンロード

無料でダウンロード

Diviニュースレターに参加すると、究極のDiviランディングページレイアウトパックのコピーに加えて、他のすばらしい無料のDiviリソース、ヒント、コツがたくさんメールで送信されます。 従うと、すぐにDiviマスターになります。 すでに購読している場合は、以下にメールアドレスを入力し、[ダウンロード]をクリックしてレイアウトパックにアクセスしてください。

正常にサブスクライブしました。 メールアドレスを確認してサブスクリプションを確認し、毎週無料のDiviレイアウトパックにアクセスしてください。

私たちが使用しているもの

  • ディビ
  • GSAP
  • GSAP用のScrollTrigger
  • ScrollTriggerデモ

1.要素構造を構築する

新しいセクションを追加

グラデーションの背景

このチュートリアルは、新規または既存のページで要素構造を構築することから始めます。 新しいセクションを追加し、セクション設定を開いて、グラデーションの背景を含めます。

  • 色1:#162c2d
  • カラー2:#122223
  • グラデーションタイプ:線形
  • グラデーション方向:90度
  • 開始位置:20%
  • 終了位置:20%

スクロール速度

間隔

セクションの[デザイン]タブに移動し、次にパディング値を変更します。

  • トップパディング:100px
  • ボトムパディング:100px

スクロール速度

オーバーフロー

セクションコンテナを超えるものがないことを確認するために、セクションのオーバーフローも非表示にします。

  • 水平オーバーフロー:非表示
  • 垂直オーバーフロー:非表示

スクロール速度

新しい行を追加

カラム構造

次の列構造を使用して、新しい行を追加して続行します。

スクロール速度

サイジング

モジュールをまだ追加せずに、行設定を開き、次のようにサイズ設定を変更します。

  • カスタムガター幅を使用:はい
  • 側溝幅:1
  • 列の高さを等しくする:はい
  • 幅:90%
  • 最大幅:1580px

スクロール速度

主な要素

[詳細設定]タブの行のメイン要素にCSSコードの次の行を追加することで、行のコンテンツを垂直方向に配置しています。

デスクトップ:

display: flex;
justify-content: center;
align-items: center;

タブレットと電話:

display: block;

スクロール速度

列1の設定

主な要素

次に、列1の設定を開き、[詳細設定]タブでさまざまな画面サイズにわたって列の幅を変更します。

デスクトップ:

width: 45% !important;

タブレットと電話:

width: 100% !important;

スクロール速度

スクロール速度

列2の設定

背景色

次に、列2の設定を開き、背景色を使用します。

  • 背景色:#193738

スクロール速度

スクロール速度

間隔

次に、列の間隔の値を変更します。

  • トップパディング:
    • デスクトップ:200px
    • タブレット:100px
    • 電話番号:50px
  • ボトムパディング:
    • デスクトップ:200px
    • タブレット:100px
    • 電話番号:50px
  • 左パディング:5%
  • 右パディング:5%

スクロール速度

主な要素

そして、列のメイン要素に次のCSSコード行を追加して、列の設定を完了します。

デスクトップ:

width: 55% !important;

タブレットと電話:

width: 100% !important;

スクロール速度

列1に画像モジュールを追加

画像ボックスを空のままにします

1列目の画像モジュールから始めて、モジュールの追加を開始します。画像ボックスは空のままにします。

スクロール速度

背景画像

代わりに、このモジュールには背景画像を使用しています。

スクロール速度

サイジング

[デザイン]タブでサイズ設定を変更します。

  • 幅:
    • デスクトップ:100%
    • タブレットと電話:90%
  • モジュールの配置:中央

スクロール速度

間隔

次に、次の値を間隔設定に適用します。

  • トップマージン:
    • デスクトップ:100px
    • タブレットと電話:0px
  • 下マージン:
    • デスクトップ:100px
    • タブレットと電話:0px
  • トップパディング:
    • デスクトップ:250px
    • タブレット:200px
    • 電話番号:150px
  • ボトムパディング:
    • デスクトップ:250px
    • タブレット:200px
    • 電話番号:150px

スクロール速度

テキストモジュール#1を列2に追加します

H3コンテンツを追加する

列2に進みます。そこで必要な最初のモジュールは、H3コンテンツを含むテキストモジュールです。

スクロール速度

H3テキスト設定

モジュールの[デザイン]タブに移動し、それに応じてH3テキスト設定を変更します。

  • 見出し3フォント:Karla
  • 見出し3テキストの色:#e0ca9a
  • 見出し3テキストサイズ:
    • デスクトップ:44px
    • タブレット:30px
    • 電話番号:26px

スクロール速度

テキストモジュール#2を列2に追加します

説明コンテンツを追加

前のテキストモジュールのすぐ下に別のテキストモジュールを追加し、選択した説明コンテンツを挿入します。

スクロール速度

テキスト設定

それに応じてモジュールのテキスト設定を変更します。

  • テキストフォント:Alata
  • テキストの色:rgba(255,255,255,0.67)
  • 文字サイズ:
    • デスクトップ:17px
    • タブレット:15px
    • 電話番号:14px
  • テキスト行の高さ:2.2em

スクロール速度

間隔

そして、間隔の設定に上マージンを追加します。

  • トップマージン:5%

スクロール速度

ボタンモジュールを列2に追加

コピーを追加

この列に追加する次の最後のモジュールはボタンモジュールです。 お好みのコピーを使用してください。

スクロール速度

ボタンの設定

モジュールの[デザイン]タブに移動し、ボタンの設定を次のように変更します。

  • ボタンにカスタムスタイルを使用する:はい
  • ボタンのテキストサイズ:
    • デスクトップ:20px
    • タブレットと電話:18px
  • ボタンのテキストの色:#ffffff
  • ボタンの境界線の幅:0px

スクロール速度

  • ボタンフォント:Karla
  • ボタンアイコンを表示:はい
  • ボタンアイコンの配置:左
  • ボタンのホバー時にアイコンのみを表示:いいえ

スクロール速度

間隔

次に、間隔設定にカスタム値を追加します。

  • トップマージン:5%
  • トップパディング:20px
  • ボトムパディング:20px

スクロール速度

行を2回クローンする

行とすべてのモジュールを完了したら、必要な回数だけ行のクローンを作成できます。

スクロール速度

画像とコンテンツの変更

重複する各行の重複するコンテンツを必ず変更してください。

スクロール速度

2.スクロール速度効果を追加します

スキューしたい要素にCSSクラスを追加する

列2

要素構造が整ったので、エフェクトを機能させることに集中できます。 これを行うには、各行の列2の設定を個別に開き、CSSクラスを割り当てます。

  • CSSクラス:velocity-transform

スクロール速度

スクロール速度

列1の画像モジュール

同じCSSクラスをデザインの各画像モジュールに追加します。

  • CSSクラス:velocity-transform

スクロール速度

新しい行を追加

カラム構造

次に、次の列構造を使用して、セクションの下部に新しい行を追加します。

スクロール速度

間隔

行設定を開き、間隔設定のデフォルトの上下のパディングをすべて削除します。

  • トップパディング:0px
  • ボトムパディング:0px

スクロール速度

コードモジュールを列に追加

次に、この新しい行にコードモジュールを追加します。

スクロール速度

GSAPとScrollTriggerライブラリを追加する

コードを追加する前に、スクリプトタグの間にGSAPライブラリとScrollTriggerライブラリを含めます。

  • https://cdnjs.cloudflare.com/ajax/libs/gsap/3.5.1/gsap.min.js
  • https://cdnjs.cloudflare.com/ajax/libs/gsap/3.5.1/ScrollTrigger.min.js

スクロール速度

スクリプトタグを追加する

これらのライブラリのすぐ下に新しいスクリプトタグを追加します。

スクロール速度

スクリプトタグ間にカスタムコードを追加する(垂直スキュー)

また、JavaScriptコードの次の行を含めて、垂直方向のスキューを作成します。

let proxy = { skew: 0 },
    skewSetter = gsap.quickSetter(".velocity-transform", "skewY", "deg"), 
    clamp = gsap.utils.clamp(-10, 10);

ScrollTrigger.create({
  onUpdate: (self) => {
    let skew = clamp(self.getVelocity() / -400);
    if (Math.abs(skew) > Math.abs(proxy.skew)) {
      proxy.skew = skew;
      gsap.to(proxy, {skew: 0, duration: 0.8, ease: "power0", overwrite: true, onUpdate: () => skewSetter(proxy.skew)});
    }
  }
});

gsap.set(".velocity-transform", {force3D: true});

スクロール速度

代わりに水平スキューまたは回転を使用してください

この投稿のプレビューにあるように、代わりに水平スキューまたは回転を使用する場合は、コードの「SkewY」を水平スキューの場合は「SkewX」に、回転の場合は「rotate」に置き換えるだけです。 それでおしまい。

スクロール速度

スクロール速度

プレビュー

すべての手順を完了したので、さまざまな画面サイズでの結果を最終的に見てみましょう。

垂直スキュー

デスクトップ

スクロール速度

モバイル

スクロール速度

水平スキュー

デスクトップ

スクロール速度

モバイル

スクロール速度

回転する

デスクトップ

スクロール速度

モバイル

スクロール速度

最終的な考え

この投稿では、スクロールでインタラクティブなデザインを作成する方法を紹介しました。 具体的には、スクロール速度に応じてデザインを変換する方法を示しました。 最高のDiviを2つの外部JavaScriptライブラリ、つまりGSAPとScrollTrigger forGSAPと組み合わせました。 JSONファイルも無料でダウンロードできました! ご質問やご提案がございましたら、下のコメント欄にコメントを残してください。

Diviの詳細を知り、Diviの景品をさらに入手したい場合は、メールマガジンとYouTubeチャンネルに登録して、この無料コンテンツを最初に知って利益を得ることができるようにしてください。