CSS3 ボタン境界アニメーションの実装

CSS3 ボタン境界アニメーションの実装

まず効果を見てみましょう:

html

<a href="#">
  <span></span>
  <span></span>
  <span></span>
  <span></span>
  進む
</a>

CSS3

体 {
  マージン: 0;
  パディング: 0;
  背景色: #035f3c;
}

{
  位置: 絶対;
  上位: 50%;
  左: 50%;
  変換: translate(-50%, -50%);
  -webkit-transform: translate(-50%, -50%);
  -moz-transform: translate(-50%, -50%);
  -ms-transform: 変換(-50%、-50%);
  -o-transform: 変換(-50%, -50%);
  色: #16f03a;
  パディング: 30px 60px;
  フォントサイズ: 30px;
  文字間隔: 2px;
  テキスト変換:大文字;
  テキスト装飾: なし;
  ボックスの影: 0 20px 50px rgba(0, 0, 0, 0.5);
  /* アニメーションラインの長さを削除するには: */
  オーバーフロー: 非表示;
}

a:前{
  コンテンツ: "";
  位置: 絶対;
  上: 2px;
  左: 2px;
  下: 2px;
  幅: 50%;
  背景: rgba(255, 255, 255, 0.05);
}

span:nth-child(1) {
  位置: 絶対;
  上: 0;
  左: 0;
  幅: 100%;
  高さ: 2px;
  背景: 線形グラデーション(右、#035f3c、#16f03a);
  アニメーション: animate1 2s 線形無限;
  -webkit-animation: animate1 2s 線形無限;
}

@keyframes アニメーション1 {
  0% {
    変換: translateX(-100%);
    -webkit-transform: translateX(-100%);
    -moz-transform: translateX(-100%);
    -ms-transform: 変換X(-100%);
    -o-transform: translateX(-100%);
  }
  100% {
    変換: translateX(100%);
    -webkit-transform: translateX(100%);
    -moz-transform: translateX(100%);
    -ms-transform: translateX(100%);
    -o-transform: translateX(100%);
  }
}

span:nth-child(2) {
  位置: 絶対;
  上: 0;
  右: 0;
  幅: 2px;
  高さ: 100%;
  背景: 線形グラデーション(下へ、#035f3c、#16f03a);
  アニメーション: animate2 2s 線形無限;
  -webkit-animation: animate2 2s 線形無限;
  /* 効果の継続性を保つために遅延を追加する*/
  アニメーション遅延: 1秒;
}

@keyframes アニメーション2 {
  0% {
    変換: translateY(-100%);
    -webkit-transform: translateY(-100%);
    -moz-transform: translateY(-100%);
    -ms-transform: 変換Y(-100%);
    -o-transform: translateY(-100%);
  }
  100% {
    変換: translateY(100%);
    -webkit-transform: translateX(100%);
    -moz-transform: translateX(100%);
    -ms-transform: translateX(100%);
    -o-transform: translateX(100%);
  }
}

span:nth-child(3) {
  位置: 絶対;
  下部: 0;
  右: 0;
  幅: 100%;
  高さ: 2px;
  背景: 線形グラデーション(左、#035f3c、#16f03a);
  アニメーション: animate3 2s 線形無限;
  -webkit-animation: animate3 2s 線形無限;
}

@keyframes アニメーション3 {
  0% {
    変換: translateX(100%);
    -webkit-transform: translateX(100%);
    -moz-transform: translateX(100%);
    -ms-transform: translateX(100%);
    -o-transform: translateX(100%);
  }
  100% {
    変換: translateX(-100%);
    -webkit-transform: translateX(-100%);
    -moz-transform: translateX(-100%);
    -ms-transform: 変換X(-100%);
    -o-transform: translateX(-100%);
  }
}

span:nth-child(4) {
  位置: 絶対;
  上: 0;
  左: 0;
  幅: 2px;
  高さ: 100%;
  背景: 線形グラデーション(上へ、#035f3c、#16f03a);
  アニメーション: animate4 2s 線形無限;
  -webkit-animation: animate4 2s 線形無限;
  /* 効果の継続性を保つために遅延を追加する*/
  アニメーション遅延: 1秒;
}

@keyframes アニメーション4 {
  0% {
    変換: translateY(100%);
    -webkit-transform: translateY(100%);
    -moz-transform: translateY(100%);
    -ms-transform: 変換Y(100%);
    -o-transform: translateY(100%);
  }
  100% {
    変換: translateY(-100%);
    -webkit-transform: translateY(-100%);
    -moz-transform: translateY(-100%);
    -ms-transform: 変換Y(-100%);
    -o-transform: translateY(-100%);
  }
}

上記は、CSS3 ボタン境界アニメーションの実装の詳細な内容です。CSS3 ボタン境界アニメーションの詳細については、123WORDPRESS.COM の他の関連記事に注目してください。

<<:  動的画像読み込み技術の応用とjquery.lazyloadプラグインの使用例

>>:  携帯電話に GreasyFork js スクリプトをインストールするチュートリアル

推薦する

WeChatアプレットが連携メニューを実現

最近はコース設計を実現するために、フロントエンドも少しやっています。今日はいくつかの機能を実現するた...

VMwareワークステーションとデバイス/資格情報の非互換性によって発生する起動エラーについて

VMware Workstationsが仮想マシンエラーを起動する エラー レポートのリンク htt...

MySQLをシンプルに学ぶ

序文データベースは常に私の弱点でした。自分の経験 (python+sqlalchemy) を組み合わ...

MySQL 5.7 のインストールと設定の詳細な手順

1. MySQLをダウンロードする1. MySQLの公式ウェブサイトにログインし、64ビットシステム...

CSS でマウスの位置をマッピングし、マウスを動かしてページ要素を制御する (サンプル コード)

マウスの位置をマッピングしたり、ドラッグ効果を実装したりすることは、 JavaScriptで行うこと...

Vueはフォーム検証機能を実装します

この記事では主に、NUXT の validate メソッドに基づいてフォーム検証を実装する方法につい...

Linux での MySQL のインストールに関する詳細なチュートリアル

1. MySQLサービスをシャットダウンする# service mysqld stop 2. rpm...

CentOS 6.x のインストール時に発生するエラー「ディスク sda に BIOS RAID メタデータが含まれています」の解決方法

今日、CentOS6.2 をインストールしていたところ、ハード ドライブの検出段階を通過できませんで...

div タグ内の要素の margin-top が無効である場合の解決策

タイトル通りです。その質問は非常に奇妙です。要素の親タグはdivで、幅や高さなどの属性は設定されてい...

JavaScript axiosのインストールとパッケージ化のケースの詳細な説明

1. axiosプラグインをダウンロードする cnpm インストール axios -S 2. mai...

JSはモバイル端末の画面を1つずつ上下にスライドさせる機能を実装します

この記事では、モバイル端末を一度に1画面ずつ上下にスライドさせるためのJSの具体的なコードを参考まで...

CSS ブラウザ互換性の問題に対する 4 つの解決策

フロントエンドは、技術が急速に進化するだけでなく、知っておくべき事柄が多すぎるという理由で大変な仕事...

Dockerでイメージをプルするための手順を完了する

1. Docker pullはイメージをプルします$ docker pull {IMAGE_NAME...

React Fragment の紹介と詳しい使い方

目次序文フラグメントの動機React Fragment の紹介と使用<React.Fragme...

クールなページング効果を実現するネイティブJS

この記事では、次のような効果を持つ JS ページング効果の例を紹介します。クールだと思いませんか? ...