Velocity.js はページスクロール切り替え効果を実装します

Velocity.js はページスクロール切り替え効果を実装します

今日は、複数ページのスクロール切り替え効果を備えた Web サイトを簡単かつ効率的に開発できる、小さな Javascript アニメーション プラグイン velocity.js を紹介します。

ブラウザのサポート

velocity.js は、IE8+、Chrome、Firefox などのブラウザをサポートし、Andriod と IOS もサポートします。

私たちは、関連ページを多数含むプロジェクトを開発しています。すべてを 1 ページに表示できないが、関連するコンテンツを効果的に読めるようにしたい場合は、興味深い効果を作成することでそれが可能になります。ページスクロール切り替え効果を使用すると、目を引く Web ページを効果的に作成できます。

すべての特殊効果は、velocity.js を通じて適用されます。 Velocity.js は、アニメーション切り替え用の jQuery プラグインです。jQuery の jQuery.animate() メソッドを再実装して、アニメーション切り替えを高速化します。 Velocity.js のサイズはわずか 7k です。jQuery.animate() のすべての機能だけでなく、色の切り替え、変換、ループ、イージング、CSS の切り替え、スクロール機能も含まれています。アニメーションにおける jQuery、jQuery UI、CSS 変換の最適な組み合わせです。 Velocity.js は内部実装で jQuery の jQuery.queue() メソッドを使用しているため、jQuery の jQuery.animate()、jQuery.fade()、jQuery.delay() メソッドよりもスムーズで、CSS のアニメーション プロパティよりもパフォーマンスも高くなります。

携帯電話やスマートウォッチなどの小型端末では全ての効果を表示することはできません。そのため、Web 上で機能を表示するのが最適ですが、閲覧を容易にするために小型端末にも対応した調整も行っています。

要点

velocity.jsは、より高速で効率的なアニメーション切り替え効果を提供するjQueryのアニメーションプラグインです。
2014年5月3日、ジュリアンはGitHubでvelocity.jsをリリースした。
velocity.jsは小さいながらも強力なプラグインです

-

次に、その具体的な実施方法について検討する。

アニメーションやスクロール効果を適用するには、タグ内のデータハイジャックとデータアニメーションの設定をカスタマイズして、この機能を実現する必要があります。

<body データハイジャック="オフ" データアニメーション="スケールダウン">

上記のコードは、開始アニメーション効果データアニメーションが比例して縮小されることを意味します。データアニメーションは、scaleDown、rotate、fixed、gallery、parallax、opacity、catch の合計 7 つの異なるアニメーション効果を定義します。必要に応じて任意の効果を適用できます。そして、その効果をそれぞれ示すために 7 ページのサンプル コードを作成しました。データハイジャック属性をオフに設定します。効果を確認するためにオンに設定することもできます。上記の2つのプロパティはvelocity.jsからのものです。

HTML の DOM 構造

この構造では、5 つの異なるページ グループを表示します。これを 5 つのセクションに分割し、切り替え用のアイコン ボタンを 2 つ定義します。

<body データハイジャック="オフ" データアニメーション="スケールダウン">
    <section class="cd-section 表示">
        <div><h2>ページスクロール切り替え効果1</h2></div>
    </セクション>
    <セクションクラス="cd-section"><div>
            <h2>ページスクロール切り替え効果2</h2></div>
    </セクション>
    <セクションクラス="cd-section">
        <div><h2>ページスクロール切り替え効果3</h2></div>
    </セクション>
    <セクションクラス="cd-section">
        <div><h2>ページスクロール切り替え効果4</h2></div>
    </セクション>
    <セクションクラス="cd-section">
        <div><h2>ページスクロール切り替え効果5</h2></div>
    </セクション>
    <ナビ>
        <ul class="cd-vertical-nav">
            <li><a href="#0" class="cd-prev inactive">次へ</a></li>
            <li><a href="#0" class="cd-next">前へ</a></li>
        </ul>
    </nav> <!-- .cd-vertical-nav -->
</本文>

CSSスタイルを追加

各セクションのスタイルをデザインすることで、表示や操作が便利になります。ニーズに応じて、対応するスタイルをいくつか作成できます。

.cd-section:first-of-type > div {
  背景色: #2b334f;
}
.cd-section:nth-of-type(2) > div {
  背景色: #2e5367;
}
.cd-section:nth-of-type(3) > div {
  背景色: #267481;
}
.cd-section:nth-of-type(4) > div {
  背景色: #fcb052;
}
.cd-section:nth-of-type(5) > div {
  背景色: #f06a59;
}

js イベント処理

data-hijacking 属性をオフに設定すると、すべてのアニメーション効果はウィンドウの相対位置に応じて拡大縮小されます。アニメーション イベントがトリガーされると、ズーム比を含む現在のウィンドウ ページのスタイルが、小さいから大きい、または大きいから小さいに調整されます。関連する透明性の変更についての説明。

以下のコードについては以下で詳しく説明します。まず、windowHeight はデバイスウィンドウ自体の高さを指し、これは固定値です。jQuery(window).scrollTop() はページ内のスクロールバーの高さです。上から下にスライドする場合は 0 からすべてのページの高さまでの範囲値で、下から上にスライドする場合は (すべてのページの高さから 0 まで) の範囲値です。 actualBlock.offset().top は、各セクション ページから上端までの距離を表す固定値のセットです (0、各ページの高さ、各ページの高さ * 2、各ページの高さ * 3...)。各ページの高さはデバイスによって異なります。これらのコードの意味を理解すると、次の判断ステートメントがわかります。オフセット値が負のウィンドウの高さより大きい場合、つまり下から上にスライドする場合、現在のページは大きいものから小さいものに切り替わり、透明度は変化しません。y軸の値は増加し続け、ページは徐々に現在のビューウィンドウから出ていきます。オフセット値がウィンドウの高さより小さい場合、つまり上から下にスライドすると、現在のページが小さいページから大きいページへ切り替わり、透明度が徐々に透明になり、y 軸の値がゼロになり、スケーリングが実行されます。影のぼかし半径が変更されました。

//actualBlockはアニメーションするセクションです
var offset = $(window).scrollTop() - 実際のブロック.offset().top,
    ウィンドウの高さ = $(window).height();

if(オフセット >= -windowHeight && オフセット <= 0 ) {
    // ビューポートに入るセクション
       translateY = (-オフセット)*100/ウィンドウの高さ;
       スケール = 1;
      不透明度 = 1;
} そうでない場合(オフセット > 0 && オフセット <= ウィンドウの高さ) {
    //ビューポートを離れるセクション 
       スケール = (1 - ( オフセット * 0.3 / ウィンドウの高さ));
    不透明度 = ( 1 - ( オフセット / ウィンドウの高さ ) );
    翻訳Y = 0;
    boxShadowBlur = 40*(オフセット/ウィンドウの高さ);
}

上記のイベントが処理された後、さらに 2 つのクリック イベントがあります。2 つのスイッチ ボタンをクリックすると、ページが直接切り替わります。velocity.js のイベント処理機能には、translateUp、translateDown、scaleDown などのアニメーション効果に対するいくつかの効果などもあります。

$.速度
    .RegisterEffect("スケールダウン", {
        デフォルト期間: 800、
        通話:[ 
            [ { 不透明度: '0', スケール: '0.7', ボックスシャドウブラー: '40px' }, 1]
        ]
    });

以上がこの記事の全内容です。皆様の勉強のお役に立てれば幸いです。また、123WORDPRESS.COM を応援していただければ幸いです。

以下もご興味があるかもしれません:
  • jsはシームレスなスクロールの二重画像切り替え効果を実現します
  • JSはラベルスクロール切り替えの効果を実現します
  • jsを使用して、マウスホイールのスクロールによるページ切り替えの効果を実現します(360のデフォルトのページスクロール切り替え効果に似ています)
  • テキストスクロールと画像切り替え効果を実現するjs+divコード
  • js 複数の画像を左右にスクロールして効果を切り替えるコード共有を制御します
  • JavaScriptで画像スクロール切り替え効果を実現する別のアイデア
  • jsページ切り替え機能の簡単な実装
  • jsは、単一のHTMLページに対して2セットのCSS切り替えコードを実装します。
  • echarts の同じページ上で 4 つのチャートを切り替える js データ操作方法の例

<<:  html2canvas で破線境界線を実装する例

>>:  OCSP を有効にすると、https 証明書の検証効率が向上し、Let's Encrypt SSL 証明書へのアクセスが遅くなる問題が解決されます。

推薦する

CSSの2つの特別な値は、カスケードの継承と初期メソッドを制御するために使用されます。

カスケードを制御するために CSS の任意のプロパティに割り当てることができる特別な値が 2 つあり...

JS でオブジェクトを作成する 4 つの方法

目次1. リテラル値でオブジェクトを作成する2. 新しいキャラクターを使ってオブジェクトを作成する3...

MySQL の結合フィールドの Concat()

目次1. はじめに2. 本文2.1 フィールドの連結2.2 フィールドでの算術計算の実行1. はじめ...

MySQL の効率的なクエリの左結合とグループ化 (プラス インデックス)

mysql 効率的なクエリMySQL は、左結合の速度を上げるために group by を犠牲にし...

Linux または Windows 環境での pytorch のインストールと検証 (runtimeerror 問題の解決)

1. pytorch公式サイトから対応するインストールファイルをダウンロードします。 https:...

SQL Server 2019 Always On クラスターの Docker デプロイメントの実装

目次Docker デプロイメント Always on クラスターDockerをインストールする建築関...

Idea で Docker を使用して SpringBoot プロジェクトをデプロイする詳細な手順

序文プロジェクト要件: Dockeridea に Docker プラグインをインストールし、Dock...

JavaScript における this ポイントの問題の詳細な説明

要約する地球環境 ➡️ ウィンドウ通常関数 ➡️ ウィンドウまたは未定義コンストラクター ➡️ 構築...

JavaScript の例におけるループの使用法の詳細な説明

退屈だったので、ループに関する簡単な演習をいくつかまとめてみました。JS を学び始めたばかりの方に役...

MySQL のロードバランサーとして nginx を使用する方法

注意: nginxのバージョンは1.9以上である必要があります。nginxをコンパイルするときに、-...

MySql の忘れたパスワードの変更方法はバージョン 5.7 以上に適しています

1. まずmysqld.exeプロセスを停止します2. cmd を開き、mysql の bin ディ...

インターフェーステストプラットフォームを構築するためのDjango+Vue+Dockerの詳細な説明

1. 冒頭の2つの単語みなさんこんにちは。私の名前はLin Zonglinです。私はテストエンジニア...

Windows に MySQL 5.7.18 の解凍バージョンをインストールするチュートリアル

1. インストールプロセスMySQL バージョン: 5.7.18 1. my.ini ファイル(簡易...

トークンの有効期限が切れたときにページを更新するときに繰り返しプロンプトが表示されないようにする Vue について

トークンの有効期限が切れたら、ページを更新します。ページの読み込み時にバックエンドに複数のリクエスト...