CSS3 フリップカード番号サンプルコード

CSS3 フリップカード番号サンプルコード

今日会社から課題をもらったのですが、効果図は以下のとおりです。

どのような効果を実現したいかは特に決めていませんでしたが、純粋なデジタル変換ではシンプルすぎると思ったので、カードをめくる効果だけにしました。

エフェクトのプレビューは新しいウィンドウで開きます: https://codepen.io/andy-js/pen/ExaGxaL

まずページレイアウトを行います。

<ul></ul>
 本文{背景: #000;}
     ul{
         リストスタイル: なし;
         マージン:100px 0;
         ディスプレイ: フレックス;
         コンテンツを中央揃えにする。
         行の高さ: 56px;
         高さ:56px;
         フォントサイズ: 39.6px;
         色: #FFFFFF;
         変換スタイル:3D を保持します。
         パースペクティブ:1000px;
     }
     li{
        高さ:56px;
        マージン:0 10px;
        背景:なし;
        幅:16px;
        位置: 相対的;
     }
     .nu​​m{
        幅:46ピクセル;
        変換スタイル:3D を保持します。
        パースペクティブ:1000px;
        変換:Y軸を0度回転します。
        遷移: 1s すべて緩和;
    }
    p{
        高さ:56px;
        幅:46ピクセル;
        テキスト配置: 中央;
        背景: #EC2C5C;
        境界線の半径: 2.57px;
        位置: 絶対;
    }
    
    p:n番目の子(2){
        変換: スケールx(-1) 移動Z(-1px);
    }

次に、動的な挿入を通じて、このような効果をシミュレートします。アニメーションを作成するには、Transition を使用します。反転を作成するには、Transform:rotateY を使用します。反転する前に、別の数値 scalex を左右にミラーリングしてから、translateZ (-1px) を他の数値の背面に移動します。このようにして、反転するとミラーリングされた数値が表示されます。完璧ではなく、改善できる場所はまだたくさんあります。完全なコードは次のとおりです。

<スクリプト>
var 番号 = 9999993、
    numArr=addComma(数値)、
    数値=[],
    oUl=document.getElementsByTagName('ul')[0];
for(let i=0;i<numArr.length;i++){
    li = document.createElement('li') とします。
    oUl.appendChild(li);
    if(numArr[i]==',')
    li.innerHTML=',';
    それ以外
    li.innerHTML='<p>'+numArr[i]+'</p><p></p>',
    li.className='num',
    li.deg=0,
    aNum.push(li);
};

setInterval(関数(){
    changeNum=number+1+'' とします。
    changeArr = addComma(changeNum) とします。
        差=changeArr.length-numArr.length;
    if(違い){
        for(let i=0;i<difference;i++){
            li = document.createElement('li') とします。
            oUl.insertBefore(li、oUl.children[0]);
            if(changeArr[i]==',')
            li.innerHTML=',';
            それ以外
            li.innerHTML='<p>'+changeArr[i]+'</p><p></p>',
            li.className='num',
            li.deg=0,
            aNum.unshift(li);
        };
    };
    数値+='';
    for(let i=changeNum.length-number.length;i<changeNum.length;i++){
        if(changeNum[i]==number[i]) 続行;
        deg = aNum[i].degとします。
        aNum[i].deg=deg=deg+180;
        index=(deg/180)%2とします。
        aNum[i].children[index].innerHTML=changeNum[i];
        aNum[i].style.transform='rotateY('+deg+'deg)';
    };
    数値=数値(changeNum);
    numArr=変更Arr;
},2000);


function addComma(num){ //3桁ごとに豆番号を追加します return (num || 0).toString().replace(/(\d)(?=(?:\d{3})+$)/g, '$1,');
};
</スクリプト>

以上がこの記事の全内容です。皆様の勉強のお役に立てれば幸いです。また、123WORDPRESS.COM を応援していただければ幸いです。

<<:  HTML およびプラグイン アプリケーションにおけるデータ カスタム属性の使用の概要

>>:  セマンティクス: Html/Xhtml は本当に標準に準拠していますか?

推薦する

Windows 10 で Ubuntu 20.04 LTS をアップデートする方法

2020 年 4 月 23 日、本日、Windows 上の Ubuntu 20.04 では、Ubun...

Node.JS で悪天候のリアルタイム警報システムを構築する

目次序文:ステップ1: 無料の天気予報インターフェースを見つけるステップ2: 天気予報インターフェー...

メッセージボードにメッセージを追加および削除するための JavaScript

この記事では、JavaScript メッセージ ボードでメッセージを追加および削除する小さな例を詳細...

ROS2のインストールとdocker環境の使い方について

目次Docker を使用する理由は何ですか? DockerのインストールROSイメージを取得するRO...

トップナビゲーションバーメニューを作成するためのHTML+CSS

ナビゲーションバーの作成:技術要件: CS HTMLタグ達成目的:ナビゲーションバーメニューの作成コ...

Vue 開発プロジェクトで Font Awesome 5 を使用する方法

目次依存関係をインストールする構成使用1.アイコン検索ページに入る2. 使用したいアイコンの英語名を...

Reactの仮想DOMとdiffアルゴリズムの詳細な説明

仮想DOMの役割まず、仮想 DOM の出現によってどのような問題が解決されるのかを知る必要があります...

TeamCenter12 にログインする際の 404/503 問題の解決方法

TeamCenter12はアカウントのパスワードを入力し、ログインをクリックすると、404または50...

Firefox で英語の文字が折り返されない問題の解決方法

テキストのレイアウトには、言語に応じていくつかの書式設定要件があります。たとえば、簡体字中国語では、...

MySQL スケジュールタスクの実装と使用例

この記事では、例を使用して、MySQL スケジュール タスクの実装と使用方法を説明します。ご参考まで...

VMwareがwin10ホームバージョンに64ビットオペレーティングシステムをインストールできない問題を解決します

問題の説明VMware Workstationが新しい仮想マシンを作成し、64ビットオペレーティング...

MySQL で UTF-8 エンコーディングを使用しないのはなぜですか?

MySQL UTF-8 エンコーディングMySQL は 2003 年のバージョン 4.1 から U...

JavaScript のカンマ式が含まれている場合について

JavaScript の if ステートメントで英語のカンマ「,」が表示されることがあります。これは...

React構成サブルーティングの実装

1. コンポーネント First.js にはサブコンポーネントがあります。 './Admin...