本をめくる効果を実現するネイティブJS

本をめくる効果を実現するネイティブJS

この記事では、ネイティブ JS で実装された本をめくる効果の図を紹介します。効果は次のとおりです。

実装コードは以下のとおりです。コピーして貼り付けてご利用ください。

<!doctypehtml>
<html>
 
    <ヘッド>
        <メタ文字セット="utf-8">
        <title>本をめくる効果を実現するネイティブ JS</title>
        <スタイル タイプ="text/css">
            * {
                マージン: 0;
                パディング: 0;
                リストスタイル: なし;
            }
 
            #ボタン{
                幅: 50px;
                高さ: 40px;
                行の高さ: 40px;
                位置: 相対的;
                左: 50%;
                左マージン: -25px;
                上: 100px;
            }
 
            #本 {
                幅: 600ピクセル;
                高さ: 400px;
                位置: 絶対;
                左: 50%;
                上位: 50%;
                マージン: -200px 0 0 -300px;
                境界線: 1px 黒一色;
                /* 最初のカバー */
                背景: url(images/0.jpg);
            }
 
            #右ページ {
                幅: 50%;
                高さ: 100%;
                位置: 絶対;
                左: 50%;
                zインデックス: 2;
                遷移: 0.5秒;
                変換: 視点(800px)、Y方向回転(0px);
                変換の原点: 左中央;
                背景:黒;
                変換スタイル: 3D を保持します。
            }
 
            #右ページ #トップノード {
                位置: 絶対;
                幅: 100%;
                高さ: 100%;
                /* 最初のカバー */
                背景: url(images/0.jpg) 300px 0;
                変換: translateZ(1px);
            }
 
            #右ページ #下部ノード {
                位置: 絶対;
                幅: 100%;
                高さ: 100%;
                /* 3番目のカバー */
                背景: url(images/2.jpg) 0 0;
                /*scaleX はブックミラーを反転した後の画像を復元します*/
                変換: translateZ(-1px) scaleX(-1);
            }
 
            #右その他のページ{
                位置: 絶対;
                左: 50%;
                高さ: 100%;
                幅: 50%;
                /* 3番目のカバー */
                背景: url(images/2.jpg) 300px 0;
                zインデックス: 1;
            }
        </スタイル>
    </head>
 
    <本文>
        <input type='button' value='次のページ' id='btn'>
        <div id='本'>
            <div id='右ページ'>
                <div id='topNode'></div>
                <div id='bottomNode'></div>
            </div>
            <div id='rightその他のページ'></div>
        </div>
        <script type="text/javascript">
            var インデックス = 0;
            var フラグ = false;
 
            btn.onclick = 関数(){
                if (フラグ) return;
                フラグ = true;
                インデックス++;
                rightPage.style.transition = '0.5s';
                rightPage.style.transform = 'perspective(800px) rotateY(-180deg)';
 
                setTimeout(関数() {
                    // ページをめくるとすぐに次のページの背景を変更します book.style.backgroundImage = 'url(images/' + (index % 2 + 1) + '.jpg)';
                    // ページを瞬時に戻しますrightPage.style.transition = '0s';
                    rightPage.style.transform = 'perspective(800px) rotateY(0deg)';
 
                    // フリップペーパーの表面の背景を変更します。topNode.style.backgroundImage = 'url(images/' + (index % 2 + 1) + '.jpg)';
                    // フリップペーパーの裏面の背景を変更します。 bottomNode.style.backgroundImage = 'url(images/' + ((index + 1) % 2 + 1) + '.jpg)';
 
                    // ページを右にめくった後に用紙の背景を変更しますOtherPage.style.backgroundImage = 'url(images/' + ((index + 1) % 2 + 1) + '.jpg)';
                    フラグ = false;
 
                }, 500);
 
            };
        </スクリプト>
    </本文>
 
</html>

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

以下もご興味があるかもしれません:
  • Turn.js の非同期読み込みで本をめくる効果を実現
  • フリップブック効果を実現する JS ベースのページ切り替えスタイル
  • 画像の反転効果を実現するネイティブJS
  • Turn.js をベースに本をめくる効果を実現する
  • モバイル H5 開発 Turn.js で素晴らしい本めくり効果を実現
  • JavaScript HTML5 に基づいて 3D ブック フリップ効果を実現する
  • js 画像 フリップブック 効果 コード共有
  • 絵本風フリップブックの効果を実現するJSサンプルコード

<<:  MySQL実行計画の詳細な説明

>>:  Dockerfileを使用してApacheイメージを作成する方法

推薦する

WeChatアプレットタブの左右スライドスイッチ機能実装コード

効果画像: 1. はじめに独自のアプレットでこのような機能を実装する必要がある1. 核となる考え方ス...

Linux で MySQL パスワードを忘れた場合の解決策

問題は次のとおりです。mysql -uroot -p コマンドを入力しましたが、パスワードを忘れてし...

Ubuntu 18.04 Server バージョンのインストールと使用方法 (画像とテキスト)

1 システムのインストール手順OSバージョン:1804イメージのダウンロード: http://cd...

Mysql5.7.14 Linux版のパスワードを忘れた場合の完璧な解決策

/etc/my.confファイルで、[mysqld]の下に次の行を追加します: skip-grant...

シンプルなページング効果を実現するjQuery+Ajax

この記事では、ページング効果を実現するためのjquery+Ajaxの具体的なコードを参考までに紹介し...

CSSのline-heightとheightの詳細な説明

最近、CSS インターフェースに取り組んでいるときに、line-height と height とい...

画像の色を変更するための純粋なCSS

画像の色を変更するための CSS テクニックは非常にシンプルです。具体的なコードは次のとおりです。ヒ...

フォーム OnSubmit と input type=image の使用の概要

ここに <input type="image"> がある場合、この画...

MySql 範囲内の検索時にインデックスが有効にならない理由の分析

1 問題の説明この記事では、確立された複合インデックスをソートし、レコード内の非インデックス フィー...

MySQLはデータ復旧を実装するためにbinlogログを使用する

MySQL binlog は MySQL ログの中で非常に重要なログであり、データベースのすべての ...

Vueシャトルボックスは上下の動きを実現します

この記事の例では、vueシャトルボックスを上下に動かすための具体的なコードを参考までに共有しています...

タイムスタンプの差を計算するSQLメソッド

タイムスタンプの差を計算するSQLメソッド概要場合によっては、特定のレコードを時間で検索する必要があ...

MySQLデータベース入門:マルチインスタンス構成方法の詳しい説明

目次1. マルチインスタンスとは2. 複数インスタンスのインストールの準備3. MYSQLの複数イン...

MySQL で珍しい文字を挿入できないときの対処方法 (文字列値が正しくない)

最近、ビジネス側から、一部のユーザー情報の挿入に失敗し、エラー メッセージが「不正な文字列値:&qu...

HTML の POST リクエストにおける a タグの 2 つの使用法の分析

HTML POST リクエストで a タグを使用する 2 つの例を次に示します。 1. ajaxを使...