CSS3は光る境界線効果を実現します

CSS3は光る境界線効果を実現します

操作効果:

html

<!-- この要素は表示されません。DOM は JavaScript によって生成されます -->
<div class="root" style="display: none;">
  <div>
    <div class="サイド左"></div>
    <div class="サイドトップ"></div>
    <div class="サイド右"></div>
    <div class="サイドボトム"></div>
  </div>
</div>

CS

体 {
  マージン: 0;
  幅:100vw;
  高さ:100vh;
  背景: #010326;
}

。根 {
  --glow_width: 2px;
  --アニメーションの長さ: 2秒;
  --遅延係数: 2;

  位置: 絶対;
  左: 50%;
  上位: 50%;
  幅: 300ピクセル;
  高さ: 300px;
  変換: 移動(-50%, -50%) 回転(45度);

/* このシステムがどのように設定されているかを確認するには、以下の行のコメントを解除してください */
/* 境界線: 1px 破線赤; */
  オーバーフロー: 非表示;
}

.サイド{
  位置: 絶対;
  上: 0;
  左: 0;
}

.サイド.左,
.サイド.右{
  幅: var(--glow_width);
  高さ: 0;
  背景: linear-gradient(下へ、透明、#c03225、透明);
  アニメーション: heightAnim var(--animation_length) 線形無限、
    ハイダーcalc(var(--delay_factor) * var(--animation_length))
      var(--animation_length) 無限;
}

.サイド.トップ、
.サイド.ボトム {
  幅: 100%;
  高さ: var(--glow_width);
  背景: linear-gradient(左、透明、#c03225、透明);
  アニメーション: widthAnim var(--animation_length) 0s 線形無限、
    ハイダーcalc(var(--delay_factor) * var(--animation_length))
      var(--animation_length) 無限;
}

.サイド.右{
  左: 自動;
  右: 0;
  高さ: 0;
  アニメーション遅延: calc(var(--animation_length) / 2);
  アニメーション方向: 通常、逆方向;
}

.サイド.ボトム {
  上:自動;
  下部: 0;
  幅: 0;
  アニメーション遅延: calc(var(--animation_length) / 2);
  アニメーション方向: 通常、逆方向;
}

@keyframes 高さアニメーション {
  0% {
    高さ: 0px;
  }
  50% {
    高さ: 300px;
    変換: 初期;
  }
  100% {
    変換: translate(0, 300px);
  }
}

@keyframes 幅アニメーション {
  0% {
    幅: 0px;
  }
  50% {
    幅: 300ピクセル;
    変換: 初期;
  }
  100% {
    変換: translate(300px, 0px);
  }
}

@keyframes 非表示 {
  0%、
  50% {
    不透明度: 0;
  }
  51%、
  100% {
    不透明度: 1;
  }
}

js

テンプレートを `<div class="root" style="transform: translate(-50%, -50%) rotate({{ value }})"> にします。
<div>
    <div class="サイド左"></div>
    <div class="サイドトップ"></div>
    <div class="サイド右"></div>
    <div class="サイドボトム"></div>
  </div>
</div>`

セグメントを9にする
for(let i = -セグメント; i < セグメント; i++){
  document.body.innerHTML += template.replace("{{ value }}", 90/セグメント * i + "deg")
}

// document.body.innerHTML += template.replace("{{ value }}", 90/segments * 0 + "deg")

上記は、CSS3 で光るボーダー効果を実現する方法の詳細です。CSS3 で光るボーダー効果の詳細については、123WORDPRESS.COM の他の関連記事に注目してください。

<<:  MySQL実践ウィンドウ関数SQL分析クラスの生徒のテストの成績と生活費

>>:  Linux で CPU 使用率が高くなる原因をトラブルシューティングするプロセスの詳細な説明

推薦する

FirefoxでCookieとお気に入りをインポートおよびエクスポートする方法

Firefox は、多くの拡張機能とプラグインを備えた、よく使用されるブラウザです。IE に比べて多...

MySQL 8.0 の降順インデックス

序文インデックスが順序付けられていることは誰もが知っていると思いますが、MySQL の以前のバージョ...

CSS3は円錐グラデーション効果を実現します

文法:背景画像: 円錐グラデーション(位置の角度から、開始色、...、最後の色)最初のパラメータ:開...

XHTML+CSS Web ページ作成における美しいスタイルシートの適用

これはかなり前に書かれた記事です。今となっては、その中の考え方は学ぶ価値があるように思えます。jb5...

JavaScript でツリー構造を構築するための効率的なアルゴリズムについての簡単な説明

目次導入アイデアID配列インデックスのマッピング関係を確立するツリー構造の構築原理要約する導入組織階...

Nodeはバックエンドの実装手順を素早く構築します

1. まず、node、express、express-generator をインストールします (4...

MySQL 8.0.13 手動インストールチュートリアル

この記事では、MySQL 8.0.13の手動インストールチュートリアルを参考までに紹介します。具体的...

ウェブページ制作でウェブフォントファイルにベクターアイコンを追加する方法

ご存知のとおり、コンピューターには 2 種類の画像があり、1 つはビットマップ、もう 1 つはベクタ...

WeChatアプレットの手動および自動追跡の実装の詳細説明(Taro)

どの企業もユーザーベースを拡大したいのであれば、ユーザーの操作データを収集・分析する必要があり、その...

MySQL データベースの最適化: テーブルとデータベースのシャーディング操作の詳細な説明

この記事では、例を使用して、MySQL データベースの最適化のためのテーブルおよびデータベース シャ...

Quickjs は JavaScript サンドボックスの詳細をカプセル化します

目次1. シナリオ2. 基盤となるAPIを簡素化する2.1 自動的に破棄を呼び出す2.2 VM値を作...

CSS3を使用してオンラインライブ放送に似たキューアニメーションを実装する方法

以前、グループの友人が質問しました。つまり、ミニプログラムでユーザーがオンラインになったときに、ライ...

JavaScript で簡単な計算機を実装する

この記事の例では、参考までに簡単な計算機を実装するためのJavaScriptの具体的なコードを共有し...

Linux インストール MySQL チュートリアル (バイナリ配布)

このチュートリアルでは、LinuxにMySQLをインストールする詳細な手順を参考までに紹介します。具...