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 コンテナに共有フォルダを設定してマウントする手順

推薦する

Vue 仮想リストの実例

目次序文デザイン成し遂げるまとめ序文最近は、いつも延々とスワイプしています。 Weibo をチェック...

Dockerはローカルイメージをパッケージ化し、他のマシンに復元します

1. docker imagesを使用して、このマシン上のすべてのイメージファイルを表示します。 2...

Linuxのtimeコマンドの使い方の詳しい説明

1. コマンドの紹介時間は、コマンドの実行に費やされた時間や関連するシステム リソース、その他の情報...

Windows で mysql 8.0.12 をインストールするための詳細なチュートリアル

この記事では、MySQL 8.0.12のインストール方法に関する詳細なチュートリアルを参考までに紹介...

CentOS7.4 で JDK1.8 をインストールするためのグラフィカル チュートリアル

Linux インストール JDK1.8 手順1. CentOS に独自の openJDK があるかど...

JavaScript 配列の重複排除とフラット化関数の紹介

目次1. 配列の平坦化(配列の次元削減とも呼ばれる)方法1: 削減メソッドを使用する方法2: スタッ...

Ansibleを使用してTomcatをバッチでデプロイする方法

1.1 ディレクトリ構造の構築この操作は、nginx+mysql+tomcat+dbのディレクトリ構...

MySQL でパーセンテージと最初の数パーセントを表示する方法

目次必要とする実装コードデータベース数日前、友人からこれを書くのを手伝ってほしいと頼まれました。ただ...

nginx がアップストリーム アドレスにジャンプしない問題の解決方法

序文今日、nginx で非常に奇妙な問題に遭遇しました。フロントエンドの tomcat がページにジ...

C++ TpeScriptシリーズのジェネリックについて

目次1. テンプレート2. ジェネリック3. ジェネリック再帰4. デフォルトのジェネリックパラメー...

ウェブサイトのコンテンツの一部を傍受するための iframe を実装するためのアイデアとコード

コードをコピーコードは次のとおりです。 <div スタイル="幅:630px;高さ:...

Vueは画像切り替え効果を実現

この記事の例では、画像切り替え効果を実現するためのVueの具体的なコードを参考までに共有しています。...

CSS3実践手法のまとめ(推奨)

1. 丸い境界線: CSSコードコンテンツをクリップボードにコピー境界線の半径: 4px ; 2....

Linux サーバーに SSH パスワードなしでログインする方法

テスト サーバーにログインするたびに、必ず ssh ログインのパスワードを入力する必要があります。ロ...

Web2.0: 情報過多の原因と解決策

<br />情報の重複、情報過多、情報強迫、パーソナライズされたカスタマイズ、検索エンジ...