CSS3アニメーション属性に基づくWeChatタップアニメーション効果の実装

CSS3アニメーション属性に基づくWeChatタップアニメーション効果の実装

最近人気のWeChatタップ機能を見て、CSS3アニメーションを見直し、このボックスシェイクアニメーションを作成し、QQウィンドウシェイクを追加しました。

@-webkit-keyframes シェイク {
    0% {
        -webkit-transform: translate(2px, 2px);
    }

    25% {
        -webkit-transform: translate(-2px, -2px);
    }

    50% {
        -webkit-transform: translate(0px, 0px);
    }

    75% {
        -webkit-transform: translate(2px, -2px);
    }

    100% {
        -webkit-transform: translate(-2px, 2px);
    }
}

@keyframes シェイク {
    0% {
        変換: translate(2px, 2px);
    }

    25% {
        変換: translate(-2px, -2px);
    }

    50% {
        変換: translate(0px, 0px);
    }

    75% {
        変換: translate(2px, -2px);
    }

    100% {
        変換: translate(-2px, 2px);
    }
}

.シェイク{
    位置: 相対的;
    上: 30px;
    左: 100px;
    高さ: 200px;
    幅: 200ピクセル;
    色: #ff0000;
    背景: #000;
}

.shake:hover {
    -webkit-animation: 0.2 秒のシェイクを無限に実行します。
    アニメーション: 0.2 秒無限にシェイクします。
}
 /*アクティビティスイングアニメーション*/
 @-webkit-keyframes スイング {
  10% {
    変換: 回転(15度);
  }
  20% {
    変換: 回転(-10度);
  }
  30% {
    変換: 回転(5度);
  }
  40% {
    変換: 回転(-5度);
  }
  50%,100% {
    変換: 回転(0度);
  }
}
@-moz-keyframes スイング {
  10% {
    変換: 回転(15度);
  }
  20% {
    変換: 回転(-10度);
  }
  30% {
    変換: 回転(5度);
  }
  40% {
    変換: 回転(-5度);
  }
  50%,100% {
    変換: 回転(0度);
  }
}
@-o-keyframes スイング {
  10% {
    変換: 回転(15度);
  }
  20% {
    変換: 回転(-10度);
  }
  30% {
    変換: 回転(5度);
  }
  40% {
    変換: 回転(-5度);
  }
  50%,100% {
    変換: 回転(0度);
  }
}
@keyframes スイング {
  10% {
    変換: 回転(12度);
  }
  20% {
    変換: 回転(-11.5度);
  }
  30% {
    変換: 回転(1度);
  }
  40% {
    変換: 回転(-1度);
  }
  50%,100% {
    変換: 回転(0.5度);
  }
}
.ずらす {
  背景色: #ff0000;
  幅: 60ピクセル;
  高さ: 60px;
}
.stagger1{
  アニメーション: スイング 0.5 秒 0.15 秒 リニア 1;
  /* アニメーション再生状態: 一時停止; */
}
 <!-- qq ウィンドウが揺れる -->
  <div class="shake">qq ウィンドウシェイク</div>
  <!-- WeChatアバターが揺れる-->
  <div class="stagger">WeChat パットアバターが揺れる</div>
document.querySelector('.stagger').addEventListener('click', function() {
      document.querySelector('.stagger').classList.add('stagger1')
      console.log('パパが赤ちゃんを小突いた')
})
	/*クリックごとにアニメーションが実装され、監視アニメーションの終了に注意し、アニメーションクラスを削除してからアニメーションクラスを追加します document.querySelector('.stagger').addEventListener('animationend', function() {
      document.querySelector('.stagger').classList.remove('stagger1')
    })

CSS3アニメーション属性に基づいてWeChatタップアニメーション効果を実装する方法についての記事はこれで終わりです。CSS3 WeChatタップ機能の関連コンテンツについては、123WORDPRESS.COMの以前の記事を検索するか、次の関連記事を引き続き参照してください。今後も123WORDPRESS.COMを応援してください。

<<:  SQL ROW_NUMBER() および OVER() メソッドのケーススタディ

>>:  ウェブページで Enter キーを押すと自動的にフォームを送信し、他のページにジャンプするソリューション

推薦する

MYSQL 5.6 スレーブレプリケーションの展開と監視

MYSQL 5.6 スレーブレプリケーションの展開と監視MYSQL 5.6 のインストールと展開 #...

MySQL の日付フォーマットと複雑な日付範囲クエリ

目次序文クエリの使用シナリオ例時間間隔クエリクエリ日付と今日の時間の比較データ一般的なサイクルタイム...

DockerはRedisをインストールし、操作用のビジュアルクライアントを導入します

1 はじめにRedis 、 ANSI C言語で開発されたKey-Valueベースの高性能NoSQLデ...

Mysql データベースのマスタースレーブ同期構成

目次Mysql マスタースレーブ同期構成1. 2つのmysqlをインストールする2. MySQL設定...

Docker管理に関する断片的な知識のまとめ

目次1. 概要2. 応用例2.1、Docker コンテナ分離名前空間2.2. Docker のフリー...

ラジオボタンと複数選択ボタンは画像を使用してスタイル設定されます

ラジオ ボタンや複数選択ボタンにスタイルを追加する方法や、ボタンを大きくする方法を尋ねる人を以前見か...

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

** Linuxにmysql-8.0.20をインストールする**環境の紹介オペレーティングシステム:...

Vue2.x と Vue3.x のルーティングフックの違いの詳細な説明

目次vue2.xプレコンセプト:ルーティングフックのカテゴリルーティングとコンポーネントの概念(フッ...

MySQL の制限使用法とページングクエリステートメントのパフォーマンス分析の詳細な説明

使用制限クエリ ステートメントを使用する場合、多くの場合、データの最初の数行または中間行を返す必要が...

Tomcat コアコンポーネントとアプリケーションアーキテクチャの詳細な説明

目次Web コンテナとは何ですか? HTTP の性質HTTP リクエスト応答の例クッキーとセッション...

MySQLの保存時間の不一致の問題を解決する

Java を使用してシステム時間を取得し、それを MySQL データベースに保存した後、時間タイプが...

txt ブックの内容を Web ページに表示するコード

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1...

CSS3の新しいセレクタの例

構造(位置)擬似クラスセレクタ(CSS3) :first-child : 指定されたセレクタは、親要...

Linux ファイル記述子、ファイルポインタ、および inode の詳細

目次Linux - ファイル記述子、ファイルポインタ、インデックスノード1. Linux - ファイ...

deepin 2014 システムに MySQL データベースをインストールする方法

Deepin 2014 のダウンロードとインストールDeepin 2014 のダウンロードとインスト...