CSS3 はアニメーション属性を使用してクールな効果を実現します (推奨)

CSS3 はアニメーション属性を使用してクールな効果を実現します (推奨)

animation-name アニメーション名。複数のアニメーションがバインドされていることを示すために、カンマで区切られた複数の値を持つことができます。

animation-name プロパティは、アニメーションに名前を割り当てます。

animation-name は主流のブラウザと互換性がありますが、互換性のためにプレフィックスを付ける必要がある

animation-name には、keyframename と none という 2 つのプロパティ値があります。

<!DOCTYPE html>
<html lang="ja">
<ヘッド>
<メタ文字セット="UTF-8">
<title>ドキュメント</title>
<スタイル>
    体{
        マージン:0 自動;    
        背景:#abcdef;    
    }
    div{    
        幅:800ピクセル;
        高さ:800px;
        マージン:0 自動;    
    }
    。容器{
        位置: 相対的;
    }
    .inner、.middle、.outer、.pic{
        位置: 絶対;
        トップ:0;
        右:0;
        下:0;
        左:0;
        マージン:自動;        
    }
    .インナー{
        背景:url(source/circle_inner.jpg) 中央 繰り返しなし;
        アニメーション名:circle_inner;
    }
    。真ん中{
        背景:url(source/circle_middle.jpg) 中央 繰り返しなし;
        アニメーション名:circle_middle;
    }
    .外側{
        背景:url(source/circle_outer.jpg) 中央 繰り返しなし;
        アニメーション名:circle_outer;
    }
    .pic{
        背景:url(source/pic.jpg) 中央 繰り返しなし;
    }
</スタイル>
</head>
<本文>
    <div class="コンテナ">
        <div class="inner"></div>
        <div class="middle"></div>
        <div class="outer"></div>
        <div class="pic"></div>
    </div>
</本文>
</html>

アニメーション期間のアニメーション期間はデフォルトで0です

アニメーションタイミング関数 アニメーションタイミング関数

アニメーション遅延 アニメーション遅延時間

animation-delay プロパティは、アニメーションがいつ開始するかを定義します。単位は秒 (s) またはミリ秒 (ms) です。負の値も使用できます。-2s を指定すると、アニメーションはすぐに開始されますが、2 秒スキップされます。

animation-iteration-count アニメーションループ回数

アニメーションの反復回数: 数値 | 無限 デフォルトは 1

アニメーション方向: 通常 | 逆 | 交互 | 交互逆

alternate と alternate-reverse は、animation-iteration-count が infinite に設定されていない場合は、1 回だけ実行されて停止します。

animation-fill-mode アニメーションの遅延は実行されない、またはアニメーションが完了した後に一時停止状態になります (アニメーションをループに設定することはできません。そうしないと停止できません)

animation-fill-mode: none | forwards | backwards | both 終了状態なし 開始状態は状況によって異なります

アニメーション再生状態: 実行中 | 一時停止 アニメーション再生状態: 実行中 | 一時停止

アニメーションの省略形

アニメーション: 名前 期間 タイミング関数 遅延 反復回数 方向 塗りつぶしモード 再生状態

<!DOCTYPE html>
<html lang="ja">
<ヘッド>
<メタ文字セット="UTF-8">
<title>ドキュメント</title>
<スタイル>
    体{
        マージン:0 自動;    
        背景:#abcdef;    
    }
    div{    
        幅:800ピクセル;
        高さ:800px;
        マージン:0 自動;    
    }
    。容器{
        位置: 相対的;
        -webkit-transform-style:3d を保存します。
           -moz-transform-style:3d を保存します。
            -ms-transform-style:3d を保持します。
             -o-変換スタイル:3d を保持します。
                変換スタイル:3D を保持します。
    }
    .inner、.middle、.outer、.pic{
        位置: 絶対;
        トップ:0;
        右:0;
        下:0;
        左:0;
        マージン:自動;        
    }
    .container:hover div{
        -webkit-アニメーションの再生状態:一時停止;
           -moz-アニメーションの再生状態:一時停止;
            -ms-アニメーションの再生状態:一時停止;
             -o-アニメーションの再生状態:一時停止;
                アニメーションの再生状態:一時停止;
    }
    .インナー{
        背景:url(source/circle_inner.jpg) 中央 繰り返しなし;    
        /*サイクル*/
        -webkit-animation:circle_inner 10 秒の easy-in-out 1 秒の無限交互実行;
           -moz-animation:circle_inner 10 秒の easy-in-out 1 秒の無限交互実行;
            -ms-animation:circle_inner 10 秒のイーズインアウト、1 秒の無限交互実行。
             -o-animation:circle_inner 10 秒の easy-in-out 1 秒の無限交互実行;
                アニメーション:circle_inner 10s easy-in-out 1s infinite alternate running;    
        /*ループなし、塗りつぶし効果*/
        /*-webkit-animation:circle_inner 10s easy-in-out 1s forwards running;
           -moz-animation:circle_inner 10 秒、ease-in-out 1 秒、前方に走ります。
            -ms-animation:circle_inner 10 秒、ease-in-out 1 秒、前方に走ります。
             -o-animation:circle_inner 10 秒、ease-in-out 1 秒、前方に走ります。
                アニメーション:circle_inner 10s easy-in-out 1s forwards running;*/
    }
    。真ん中{
        背景:url(source/circle_middle.jpg) 中央 繰り返しなし;
        -webkit-animation:circle_middle 10 秒のイーズインアウト、1 秒の無限交互実行。
           -moz-animation:circle_middle 10 秒のイーズインアウト、1 秒の無限交互実行。
            -ms-animation:circle_middle 10 秒のイーズインアウト、1 秒の無限交互実行。
             -o-animation:circle_middle 10 秒のイーズインアウト、1 秒の無限交互実行。
                アニメーション:circle_middle 10s easy-in-out 1s infinite alternate running;    
    }
    .外側{
        背景:url(source/circle_outer.jpg) 中央 繰り返しなし;
        -webkit-animation:circle_outer 10 秒の easy-in-out 1 秒の無限交互実行;
           -moz-animation:circle_outer 10 秒の easy-in-out 1 秒の無限交互実行;
            -ms-animation:circle_outer 10 秒の easy-in-out 1 秒の無限交互実行;
             -o-animation:circle_outer 10 秒の easy-in-out 1 秒の無限交互実行;
                アニメーション:circle_outer 10 秒の easy-in-out 1 秒の無限交互実行;    
    }
    .pic{
        背景:url(source/pic.jpg) 中央 繰り返しなし;
    }
    @keyframes 円_内側{
        0%{ 変換:Xを0度回転します; }
        50%{ 変換:回転X(90度); }
        100%{ 変換:回転X(360度); }
    }
    @keyframes 円_middle{
        0%{ 変換:Y回転(0度); }
        50%{ 変換:Y回転(90度); }
        100%{ 変換:Y回転(360度); }
    }
    @keyframes 円_外側{
        0%{ 変換:Z回転(0度); }
        50%{ 変換:Zを90度回転します; }
        100%{ 変換:Z回転(360度); }
    }
</スタイル>
</head>
<本文>
    <div class="コンテナ">
        <div class="inner"></div>
        <div class="middle"></div>
        <div class="outer"></div>
        <div class="pic"></div>
    </div>
</本文>
</html> 

アニメーションパフォーマンスの最適化:

background-attachmentの代わりにposition-fixedを使用する

画像を含む要素は疑似要素に配置される

変わる

IE13+との互換性は諦めてもいいような気がします…

下向き矢印効果

<!DOCTYPE html>
<html lang="ja">
<ヘッド>
<メタ文字セット="UTF-8">
<title>ドキュメント</title>
<スタイル>
    体{
        マージン:0 自動;    
        背景:#abcdef;    
    }
    div{    
        幅:30px;
        高さ:30px;
        位置: 固定;
        左:0;
        右:0;
        下:100px;
        マージン:0 自動;    
        カーソル:ポインタ;
        -webkit-transform:回転(90度);
           -moz-transform:回転(90度);
            -ms-transform:回転(90度);
             -o-transform:回転(90度);
                変換:回転(90度);
        -webkit-animation:upDown 2s easy-in-out 無限;
          -moz-animation:upDown 2s イーズインアウト 無限;
           -ms-animation:upDown 2s イーズインアウト 無限;
            -o-animation:upDown 2s イーズインアウト 無限;
               アニメーション:アップダウン 2秒 イーズインアウト 無限;
    }
    @-webkit-keyframes アップダウン{
        0%{ 下部:100px; }
        50%{ 下部:80px; }
        100%{ 下部:100px; }
    }
    @-moz-keyframes アップダウン{
        0%{ 下部:100px; }
        50%{ 下部:80px; }
        100%{ 下部:100px; }
    }
    @-ms-keyframes アップダウン{
        0%{ 下部:100px; }
        50%{ 下部:80px; }
        100%{ 下部:100px; }
    }
    @-o-keyframes アップダウン{
        0%{ 下部:100px; }
        50%{ 下部:80px; }
        100%{ 下部:100px; }
    }
    @keyframes アップダウン{
        0%{ 下部:100px; }
        50%{ 下部:80px; }
        100%{ 下部:100px; }
    }
</スタイル>
</head>
<本文>
    <div> </div>
</本文>
</html> 

要約する

以上、CSS3 のアニメーション属性を使用してクールな効果を実現する方法についてご紹介しました。お役に立てれば幸いです。

<<:  HTML 選択オプションの基本的な理解と使用

>>:  Mysqlはマスタースレーブ構成とマルチマスターマルチスレーブ構成を実装します

推薦する

IE 環境での css-vars-ponyfill の使用に関する詳細な説明 (nextjs ビルド)

css-vars-ポニーフィルCSS 変数を使用して Web ページのスキニングを実現すると、互換...

JavaScript BOM の説明

目次1. BOMの紹介1. JavaScriptは3つの部分から構成される2.ウィンドウオブジェクト...

フロントエンドAIカットのコツ(体験談)

AI 画像の切り取りは PS と連携する必要があります。まず、スライスするレイヤーを選択し、それを...

JavaScript の querySelector メソッドと getElementById メソッドの違いを分析する

目次1. 概要1.1 querySelector() と querySelectorAll() の使...

MySQL バイナリログデータ復旧: 誤ってデータベースを削除した場合の詳細な説明

MySQL Binログデータの回復: 誤ってデータベースを削除した場合前書き: テスト マシンで誤っ...

インライン要素とブロック要素とは何ですか?

1. インライン要素はコンテンツの幅のみを占めますが、ブロック要素はコンテンツの量に関係なく行全体を...

Ubuntu 18.04 に vsftpd をインストールするための実装コード

vsftpdをインストールする $ sudo apt-get install vsftpd -y v...

Explainキーワードに基づいてMySQLインデックス機能を最適化する方法

EXPLAIN は、MySQL がインデックスを使用して選択ステートメントを処理し、テーブルを結合す...

CSS3 のメディアクエリと rem レイアウトを組み合わせてモバイル画面に適応

CSS3 構文: (750 ピクセルのデザインの場合、1rem = 100 ピクセル) @media...

Nginx 静的サービス設定の詳細な説明 (ルートとエイリアスの指示)

静的ファイルNginx は高いパフォーマンスで知られており、フロントエンドのリバース プロキシ サー...

MySQL の全体的なアーキテクチャの紹介

MySQL の全体的なアーキテクチャは、サーバー層とストレージ エンジン層に分かれています。サーバー...

HTMLの基本概念の詳細な説明

HTMLとは何ですか? HTML は Web ページを記述するために使用される言語です。 •HTML...

既存のMySQLデータベースの文字セットを統一する方法

序文データベースでは、一部のデータ テーブルとデータは latin1 であり、一部のデータ テーブル...

Alibaba Cloud で静的ウェブサイトを素早く構築する方法

序文:ジュニアプログラマーとして、私は自分自身の個人ウェブサイトを構築し、それを他の人に見せることを...