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 は本当に標準に準拠していますか?

推薦する

MySQL サーバー IO 100% 分析および最適化ソリューション

序文ストレス テスト中に、リソース使用のボトルネックによって発生する最も直接的なパフォーマンスの問題...

ReactのsetStateがマクロタスクなのかマイクロタスクなのかについて詳しく話しましょう

目次序文面接官は適切な質問をしていますか? § React は setState をどのように制御し...

MySql5.7.18 の文字セット構成の詳細なグラフィック説明

背景:かなり前(2017.6.5、記事にはタイムリーさがあり、特に使用されているツールは頻繁に更新さ...

MySQL の group by と having の詳細な説明

GROUP BY 構文を使用すると、指定されたデータ列の各メンバーに従ってクエリ結果をグループ化して...

開発者とオペレーターが注目すべき Linux デバッグ ツール [推奨]

システム パフォーマンスの専門家である Brendan D. Gregg 氏は、LinuxCon N...

jQueryは広告を上下にスクロールする効果を実現します

この記事では、広告を上下にスクロールする効果を実現するためのjQueryの具体的なコードを参考までに...

jsを使用して簡単な抽選機能を実現する

この記事では、参考までに、簡単な抽選機能を実装するためのjsの具体的なコードを共有します。具体的な内...

MySQL マスタースレーブレプリケーションの実装手順

目次mysql マスタースレーブレプリケーションMySQL マスタースレーブレプリケーション方式My...

CSS3はリストの無限スクロール/カルーセル効果を実現します

効果プレビューアイデア現在のリストを最後の項目までスクロールし、すぐに最初の項目に戻ります。問題1....

Dockerプライベート倉庫の構築と利用の詳細説明

イメージは hub.docker.com に保存できますが、ネットワーク速度が比較的遅いです。内部環...

JS 日付コントロール My97DatePicker の基本的な使い方

My97DatePicker は非常に柔軟で使いやすい日付コントロールです。使い方はとても簡単です。...

MySQL のマスター スレーブ レプリケーション オプションをオンラインで変更する方法

序文: MySQL で最も一般的に使用されるアーキテクチャは、マスター スレーブ レプリケーションで...

ウェブテーブルフレームを作成するためのヒント

<br />Web テーブル フレームを作成するためのヒント。 ------------...

スクリプトを使用して、ワンクリックでDockerイメージをパッケージ化してアップロードします。

著者は1年以上マイクロフロントエンドプロジェクトに取り組んできました。チームは10個のマイクロアプリ...

Docker イメージを Docker Hub にプッシュする実装

イメージが正常にビルドされると、Docker 環境があれば使用できますが、イメージを Docker ...