CSS3 で QR コードスキャン効果を実装する例

CSS3 で QR コードスキャン効果を実装する例

オンラインプレビュー

https://jsrun.pro/AafKp/

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

最初のステップは、グリッドの背景を実現することです。

背景画像:
    線形勾配(0度,
    透明 24%、
    RGBA(32, 255, 77, 0.1) 25%,
    RGBA(32, 255, 77, 0.1) 26%,
    透明 27%、
    透明度74%、
    RGBA(32, 255, 77, 0.1) 75%,
    RGBA(32, 255, 77, 0.1) 76%,
    透明度77%、
    透明)、
    線形勾配(90度、
    透明 24%、
    RGBA(32, 255, 77, 0.1) 25%,
    RGBA(32, 255, 77, 0.1) 26%,
    透明 27%、
    透明度74%、
    RGBA(32, 255, 77, 0.1) 75%,
    RGBA(32, 255, 77, 0.1) 76%,
    透明度77%、
    透明);
背景サイズ: 3rem 3rem;
背景位置: -1rem -1rem;

2番目のステップでは、走査線とグラデーション背景効果を実現します。

背景: linear-gradient(180deg, rgba(0, 255, 51, 0) 50%, #00ff33 300%);
下境界線: 2px 実線 #00ff33;

4つのコーナー効果

幅と高さが等しい 4 つの正方形があり、それぞれに境界線を設定できます。

スキャンアニメーションを設定する

@keyframes レーダービーム {  
    0% {  
        変換: translateY(-110%);  
  }  
  
    100% {  
        変換: translateY(120%);  
  }  
}

完全なコード:

<!DOCTYPE html>
<html>

<ヘッド>
    <メタ文字セット="utf-8">
    <meta http-equiv="X-UA-compatible" content="IE=edge,chrome=1">
    <title>css3-scanner.html</title>
    <スタイル>
    html,
    体 {
        高さ: 100%;
        マージン: 0;
    }

    .qrスキャナー{
        背景画像:
            線形勾配(0度,
            透明 24%、
            RGBA(32, 255, 77, 0.1) 25%,
            RGBA(32, 255, 77, 0.1) 26%,
            透明 27%、
            透明度74%、
            RGBA(32, 255, 77, 0.1) 75%,
            RGBA(32, 255, 77, 0.1) 76%,
            透明度77%、
            透明)、
            線形勾配(90度、
            透明 24%、
            RGBA(32, 255, 77, 0.1) 25%,
            RGBA(32, 255, 77, 0.1) 26%,
            透明 27%、
            透明度74%、
            RGBA(32, 255, 77, 0.1) 75%,
            RGBA(32, 255, 77, 0.1) 76%,
            透明度77%、
            透明);
        背景サイズ: 3rem 3rem;
        背景位置: -1rem -1rem;
        幅: 100%;
        高さ: 100%;
        位置: 相対的;
        背景色: #111;
    }

    .qr-スキャナー .box {
        幅:75vw;
        高さ:75vw;
        最大高さ: 75vh;
        最大幅: 75vh;
        位置: 相対的;
        左: 50%;
        上位: 50%;
        変換: translate(-50%, -50%);
        オーバーフロー: 非表示;
        境界線: 0.1rem実線rgba(0, 255, 51, 0.2);
    }

    .qr-スキャナー .line {
        高さ: calc(100% - 2px);
        幅: 100%;
        背景: linear-gradient(180deg, rgba(0, 255, 51, 0) 43%, #00ff33 211%);
        下境界線: 3px 実線 #00ff33;
        変換: translateY(-100%);
        アニメーション: レーダービーム 2s 無限;
        アニメーションタイミング関数: 立方ベジェ(0.53, 0, 0.43, 0.99);
        アニメーション遅延: 1.4秒;
    }

    .qr-scanner .box:after、
    .qr-scanner .box:before,
    .qr-scanner .angle:after,
    .qr-scanner .angle:before {
        コンテンツ: '';
        表示: ブロック;
        位置: 絶対;
        幅: 3vw;
        高さ: 3vw;

        境界線: 0.2rem 透明実線;
    }

    .qr-scanner .box:after、
    .qr-スキャナー .box:before {
        上: 0;
        上の境界線の色: #00ff33;
    }

    .qr-scanner .angle:after,
    .qr-scanner .angle:before {
        下部: 0;
        境界線下部の色: #00ff33;
    }

    .qr-scanner .box:before,
    .qr-scanner .angle:before {
        左: 0;
        左境界線の色: #00ff33;
    }

    .qr-scanner .box:after、
    .qr-scanner .angle:after {
        右: 0;
        右境界線の色: #00ff33;
    }

    @keyframes レーダービーム {
        0% {
            変換: translateY(-100%);
        }

        100% {
            変換: translateY(0);
        }
    }
    </スタイル>
</head>

<本文>
    <div class="qr-scanner">
        <div class="box">
            <div class="line"></div>
            <div class="angle"></div>
        </div>
    </div>
</本文>
</html>

上記は、CSS3 を使用して QR コード スキャン特殊効果を実装する例の詳細です。CSS3 QR コード スキャン特殊効果の詳細については、123WORDPRESS.COM の他の関連記事に注目してください。

<<:  異なるページ間のJavaScriptデータ転送(URLパラメータ取得)

>>:  HTMLおよびJSPページがキャッシュされ、Webサーバーから再取得されるのを防ぎます。

推薦する

JavaScript を使用せずに HTML の a タグを無効にするには、純粋な CSS を使用します。

実際、この問題は、HTML の select タグを初めて学んだときにすでに発生していました。今日に...

Nginx メモリプールのソースコード分析

目次メモリプールの概要1. nginxデータ構造2. nginxはOSからスペースngx_creat...

CSS3+ベジェ曲線でスケーラブルな入力検索ボックス効果を実現

では、早速レンダリングを見てみましょう。 コア コードはtransition: cubic-bezi...

JavaScript データ プロキシとイベントの詳細な分析

目次データブローカーとイベントObject.defineProperty メソッドのレビューデータブ...

uniapp vue および nvue カルーセル コンポーネントのサンプル コード

vueの部分は以下のとおりです。 <テンプレート> <ビュークラス="&...

MySQL ストアド プロシージャで if ステートメントを使用する詳細な例

この記事では、例を使用して、MySQL ストアド プロシージャでの if ステートメントの使用方法を...

jsはテーブルドラッグオプションを実装します

この記事の例では、テーブルドラッグオプションを実装するためのjsの具体的なコードを参考までに共有して...

linxu での Svn ワンクリック インストール シェル スクリプトの詳細な説明

#!/bin/bash #SVNをダウンロード yum -y サブバージョンをインストールします ...

Linux/CentOS サーバー セキュリティ構成の一般ガイド

Linux はオープン システムです。インターネット上には、既成のプログラムやツールが多数存在します...

Linux CentOS6.5 yum インストール mysql5.6

この記事では、Linux yumを使用してmysql5.6をインストールする簡単な手順を参考までに紹...

Vue で親子コンポーネントの値を双方向バインドするために v-model を使用するときに発生する問題と解決策

目次シナリオ解決してみる解決するシナリオ今日、コンポーネントの双方向データバインディングにv-mod...

nginx ベースのブラウザネゴシエーションキャッシュプロセスの詳細な説明

この記事は主に、nginx に基づいてブラウザネゴシエーションキャッシュを設定する詳細なプロセスを紹...

Tomcat の構成と最適化ソリューションの詳細な説明

サービス.xml Server.xml 構成ファイルは、コンテナー全体を構成するために使用されます。...

Ubuntu 14 に Nginx-RTMP ストリーミング サーバーをインストールするチュートリアル

1. RTMP RTMP ストリーミング プロトコルは、Adobe が開発したリアルタイムのオーディ...

MySQL5.7+ MySQL Workbenchのインストールと設定方法のグラフィックチュートリアル(MAC)

この記事では、主にMACオペレーティングシステムでのMySQL5.7とMySQLWorkbenchの...