ティックアニメーション効果を作成するための svg+css または js

ティックアニメーション効果を作成するための svg+css または js

以前、上司からログイン後にチェックマークを表示できるプログラムを作るように言われたのですが、Baiduでは見つけられませんでした。今日、Bilibiliで実際に要件に基づいて改良を加えた動画を見ました。さっそく、その効果を見てみましょう!

HTMLコード

<!DOCTYPE html>
<html lang="ja">
<ヘッド>
    <メタ文字セット="UTF-8">
    <title>チェックボックスアニメーション</title>
</head>
<本文>
<div id="d1">
    <input type="checkbox" style="display: none" id="love1" />
    <label for="love1" id="btn1" >完了</label>
<svg 幅="200px" 高さ="200px">
    <circle r="90" class="circle" fill="none"stroke="#2de540"stroke-width="10" cx="100" cy="100"stroke-linecap="round" transform="rotate(-90 100 100) " ></circle>
    <ポリライン fill="none" ストローク="#2de540" ストローク幅="10" ポイント="44,107 86,137 152,69" ストロークラインキャップ="round" ストロークラインジョイン="round" クラス="tick" ></ポリライン>
</svg>
<h2 style="text-align: center;width: 200px">成功</h2>

</div>
</本文>
<!--ここで地元の jq を紹介してください-->
<script src="http://libs.baidu.com/jquery/2.0.0/jquery.min.js"></script>
</html>

CSSコード

h2 {
        フォントファミリー: Helvetica;
        フォントサイズ: 30px;
        上マージン: 20px;
        色: #333;
        不透明度: 0;
    }
    input[type="checkbox"]:checked+ ラベル ~ h2 {
        アニメーション: .6 秒のタイトルのイーズインアウト;
        アニメーション遅延: 1.2秒;
        アニメーション塗りつぶしモード: forwards;
    }
    。丸 {
        ストロークダッシュ配列: 1194;
        ストロークダッシュオフセット: 1194;
    }
    input[type="checkbox"]:checked + ラベル + svg .circle {
        アニメーション: 1 秒間の円のイーズインアウト;
        アニメーション塗りつぶしモード: forwards;
    }
    .ティック{
        ストロークダッシュ配列: 350;
        ストロークダッシュオフセット: 350;
    }
    input[type="checkbox"]:checked + label+ svg .tick {
        アニメーション: tick .8s イーズアウト;
        アニメーション塗りつぶしモード: forwards;
        アニメーション遅延: .95秒;
    }
    @keyframes 円 {
        から {
            ストロークダッシュオフセット: 1194;
        }
        に {
            ストロークダッシュオフセット: 2388;
        }
    }
    @keyframes ティック {
        から {
            ストロークダッシュオフセット: 350;
        }
        に {
            ストロークダッシュオフセット: 0;
        }
    }
    @キーフレームタイトル{
        から {
            不透明度: 0;
        }
        に {
            不透明度: 1;
        }
    }
    ラベル {
        表示: インラインブロック;
        高さ: 38px;
        幅: 38px;
        行の高さ: 38px;
        パディング: 0 18px;
        背景色: #1E9FFF;
        色: #fff;
        空白: ラップなし;
        テキスト配置: 中央;
        フォントサイズ: 14px;
        境界線: なし;
        境界線の半径: 2px;
        カーソル: ポインタ;
    }
    #d1 {
        ディスプレイ: フレックス;
        コンテンツの中央揃え: 中央;
        最小高さ: 100px;
        flex-direction: 列;
    }

ここで終わるべきだったのですが、実際に機能を実装すると、アニメーション効果の表示を切り替えるためにチェックボックスを使用することはほとんどありません。一般的に、アニメーション効果を操作するには、やはりボタンが必要です。以下はjq操作のコードです。実際にはjqの.animate()を使用する方が良いのですが、初心者なので怠けて(ps:まあ、やり方がわからないのですが)、直接.css()を使用しました。

JavaScript コード

  $("#btn1").on("クリック",関数() {
       if($(this).text()==="完了"){
           $(".circle").css({'animation':'circle 1s easy-in-out','animation-fill-mode':'forwards'});
           $(".tick").css({'animation':'tick .8s easy-out','animation-fill-mode':'forwards','animation-delay':'.95s'});
           $("h2").css({'アニメーション':'.6s タイトルのイーズインアウト','アニメーションフィルモード':'フォワード','アニメーションディレイ':'1.2s'})
           $(this).text("キャンセル")
       }それ以外{
           $(".circle").css({'アニメーション':'なし','アニメーションの塗りつぶしモード':'なし'});
           $(".tick").css({'アニメーション':'なし','アニメーションの塗りつぶしモード':'なし'});
           $("h2").css({'アニメーション':'なし','アニメーションの塗りつぶしモード':'なし'})
           $(this).text("完了")
       }
   });

svg+css または js を使用してチェックマークアニメーション効果を作成する方法についての記事はこれで終わりです。より関連性の高い svg css チェックマークアニメーションコンテンツについては、123WORDPRESS.COM の以前の記事を検索するか、以下の関連記事を引き続き参照してください。今後も 123WORDPRESS.COM を応援していただければ幸いです。

<<:  ウェブサイトのカラースキーム ウェブサイトに適した色の選択

>>:  Docker Compose を使用して ELK を迅速にデプロイする (テスト済みで効果的)

推薦する

MySQL FAQ シリーズ: 一時テーブルを使用する場合

一時テーブルの概要一時テーブルとは: MySQL は中間結果セットを保存するために使用されます。一時...

(MariaDB) MySQL のデータ型とストレージメカニズムの包括的な説明

1.1 データ型の概要データ型は、各フィールドに保存できるデータの種類、保存できるデータの量、保存で...

HTMLでマスクレイヤーを実装する方法 HTMLでマスクレイヤーを使用する方法

Web ページでマスク レイヤーを使用すると、繰り返しの操作を防ぎ、読み込みを促進できます。また、ポ...

MYSQLはUnionを使用して2つのテーブルのデータを結合し、表示します。

UNION演算子の使用union : 2 つ以上の SELECT ステートメントの結果を 1 つの...

Centos7 で yum を使用して Ceph 分散ストレージをインストールするチュートリアル

目次序文yumソース、epelソースを設定するCephソースの設定Cephとそのコンポーネントをイン...

mysql8 共通テーブル式 CTE 使用例の分析

この記事では、例を使用して、MySQL 8 の共通テーブル式 (CTE) の使用方法を説明します。ご...

Linux Crontab シェル スクリプトを使用して第 2 レベルのスケジュールされたタスクを実装する方法

1. シェルスクリプトcrontab.shを書く #!/bin/bash step=1 #ステップ間...

MySQL ストレージ エンジンの基礎

前回の記事では、MySQL トランザクションについて説明しました。これで、MySQL トランザクショ...

Linux RabbitMQ クラスタ構築プロセス図

1. 全体的な手順冒頭で、RabbitMQ サービスをインストールして実行する方法を紹介しましたが、...

Dockerを使用してSonarQubeをインストールする詳細なチュートリアル

目次1. イメージをプルする1.1 関連するイメージをプルして実行する1.1.1 関連する画像を取得...

Vue 大画面データ表示例

効率的に要件を満たし、コンポーネント ライブラリの肥大化や車輪の再発明を避けるために、私は以前、大画...

Windows で IP アドレスを指定してサーバーへのリモート アクセスを設定する方法

当社には、外部ネットワークからの干渉を受けることが多いサーバーが多数あります。侵入者はポート 338...

Linux で Squid プロキシ サーバーを構築するための完全な手順

序文この記事では、Linux で Squid プロキシ サーバーを設定することに関する関連コンテンツ...

MySQL データベースのマスター スレーブ分離のサンプル コード

導入MySQL データベースの読み取りと書き込みの分離を設定すると、データベースに対する書き込み操作...

Antd+vueは円形属性フォームの動的検証のアイデアを実現します

必要な項目をループして検証するために、クエリ フォームのいくつかのプロパティを実装したいと考えていま...