HTML+CSSは、要素の位置までスクロールして読み込みアニメーション効果を表示します。

HTML+CSSは、要素の位置までスクロールして読み込みアニメーション効果を表示します。

要素までスクロールするたびに読み込みアニメーションを追加するにはどうすればよいですか?

初期パラメータを追加する要素

上の画像のアニメーションを例に、左右のコンテナを 2 つ追加し、コンテナ内にコンテンツを配置します。

デフォルトの透明度が 0、左右に 100 ピクセル移動する初期データを追加します。

//左コンテナ.item-leftContainer {
    不透明度: 0;
    変換: translateX(-100px);
  }
  //右コンテナ.item-rightContainer {
    不透明度: 0;
    変換: translateX(100px);
  }

アニメーションデータの追加

less でアニメーションデータを追加します。ここでは から のみ設定します。手順 1 の初期パラメータ設定を省略し、アニメーション内で から を設定することもできます。

実行後、透明度が 0 から 1 に変わり、2 つのコンテナーが中央に 100 ピクセル移動して元の位置に戻ります。

//アニメーション @keyframes showLeft {
    に {
      不透明度: 1;
      変換: translateX(0px);
    }
  }
  @keyframes 右を表示 {
    に {
      不透明度: 1;
      変換: translateX(0px);
    }
  }
  @keyframes 左を非表示 {
    に {
      不透明度: 0;
      変換: translateX(-100px);
    }
  }
  @keyframes を右に非表示 {
    に {
      不透明度: 0;
      変換: translateX(100px);
    }
  }

アニメーションのトリガー

ページの読み込み/更新トリガー - componentDidMount で実行

ページがスクロールするとトリガーされます - componentDidMount と componentWillUnmount にページスクロール イベントのリスナー/ログアウトを追加します

現在のスクロールの高さと要素の位置の差を確認します。

window.pageYOffset (スクロール距離) + windowHeight (ウィンドウの高さ) > leftElement.offsetTop (要素の相対位置) + parentOffsetTop (親要素の相対位置) + 200

  • 実際のスクロール視覚位置 - window.pageYOffset (スクロール距離) + windowHeight (ウィンドウの高さ)
  • 親コンテナーは絶対配置を使用するため、ここでは上からの要素の高さ (leftElement.offsetTop + parentOffsetTop) が使用されます。通常のレイアウトの場合は、要素の現在の位置 leftElement.offsetTop を使用します。
  • 視覚的な体験を最適化するために、高さ 200 が追加されました。高さが200を超えるとアニメーションが起動します

ページが下までスクロールすると、表示アニメーションがトリガーされ、ページが再び上までスクロールすると、非表示アニメーションがトリガーされます。

コンポーネントマウント() {
        this.checkScrollHeightAndLoadAnimation();
        window.addEventListener('スクロール'、this.bindHandleScroll);
    }
    コンポーネントのマウントを解除します(){
        window.removeEventListener('scroll', this.bindHandleScroll);
    }
    bindHandleScroll = (イベント) => {
        this.checkScrollHeightAndLoadAnimation();
    }
    チェックスクロールの高さと読み込みアニメーション() {
        定数 windowHeight = window.innerHeight;
        parentEelement を document.getElementById("softwareUsingWays-container") として htmlElement に格納します。
        const parentOffsetTop = parentEelement.offsetTop;
        leftElement を (parentEelement.getElementsByClassName("item-leftContainer") として htmlCollectionOf<HTMLElement>)[0] にします。
        if (window.pageYOffset + windowHeight > leftElement.offsetTop + parentOffsetTop + 200) {
            leftElement.style.animation = "showLeft .6s forwards" //アニメーションを追加} else {
            leftElement.style.animation = "hideLeft 0s forwards" //アニメーションを非表示}
        rightElement を (parentEelement.getElementsByClassName(".item-rightContainer") として HTMLCollectionOf<HTMLElement>)[0] にします。
        if (window.pageYOffset + windowHeight > rightElement.offsetTop + parentOffsetTop + 200) {
            rightElement.style.animation = "showRight .6s forwards" //アニメーションを追加} else {
            rightElement.style.animation = "hideRight 0s forwards" //アニメーションを非表示}
    }

html+cssを使用して要素の位置までスクロールし、読み込みアニメーション効果を表示する方法についての記事はこれで終わりです。関連するhtml読み込みアニメーションコンテンツの詳細については、123WORDPRESS.COMの以前の記事を検索するか、以下の関連記事を引き続き参照してください。今後も123WORDPRESS.COMを応援してください。

<<:  MySQL ソートの原則とケース分析

>>:  Windows ホストと Docker コンテナに共有フォルダを設定してマウントする手順

推薦する

JavaScriptで継承を実装するいくつかの方法

目次構造継承(callで実装)プロトタイプチェーン継承(プロトタイプチェーンの助けを借りて実装)複合...

Node.js+express+socket でオンラインのリアルタイム多人数チャットルームを実現

この記事では、オンラインリアルタイム多人数チャットルームを実現するためのNode.js+expres...

CentOS 7 環境でソースコードから MySQL 5.7 をインストールする方法

この記事では、CentOS 7 環境でソース コードから MySQL 5.7 をインストールする方法...

「いいね!」文がインデックスに登録されないのはなぜですか?

序文この記事は、最も人気のある言語で最も退屈な基礎知識を説明することを目的としていますこのトピックは...

Linux で測位バックグラウンド サービスが時々クラッシュする問題の解決方法

問題の説明最近のバックグラウンドサービスでは、特定の命令の要求データをディスクに保存する新しい機能が...

MySQLアカウントのパスワード変更方法(概要)

序文:データベースを日常的に使用すると、パスワードが単純すぎて変更する必要がある場合、パスワードの有...

アコーディオン効果を実現するネイティブ js

実際のWebページ開発でも、アコーディオンは頻繁に登場します。簡単なアコーディオンを作ったのですが、...

Vueはページに透かし効果を追加する機能を実装します

最近、あるプロジェクトに取り組んでいたとき、ページに透かし効果を追加するように依頼されました。さっそ...

大規模な Vue.js プロジェクトの構築と維持のための 10 のベスト プラクティス

目次1. スロットを使用してコンポーネントを理解しやすくし、より強力にする2. Vuexストアを正し...

JavaScript で判決文をエレガントに記述する例

目次序文1. モナドの判断1.1 例1.2 オブジェクトに入れる1.3 マップに載せる2. 複数の判...

JavaScript ではおそらく switch 文を使う必要はない

目次スイッチも複雑なコードブロックもありませんPythonからのインスピレーション辞書を使用してスイ...

Vueのwatch、computed、methodsの違いのまとめ

目次1 はじめに2 基本的な使い方2.1 方法2.2 計算プロパティ2.3 リスナーを見る3 3つの...

JS でシングルトン モードを実装するための 6 つのソリューションの概要

序文今日は、デザインパターンのクリエーションパターンを見直していたところ、JS でシングルトンパター...

MySQL 文字列連結関数 GROUP_CONCAT の詳細な説明

前回の記事では、クロステーブル更新について書きました。自分が書いた SQL を見たとき、自分がバカみ...

FileZilla_Server:425 データ接続を開けない問題を解決する方法

FileZilla Serverをサーバーにインストールすると、425データ接続を開けない問題が発生...