本をめくるように見せる方法は、以前はFlashを使ったり、複雑なJavaScriptでプログラムを組んだりと面倒でしたが、簡単にjQueryで表現できるようになりました。
div要素を本のページをめくるようにみせたい場合は、この「Flippage」を利用すると実現できます。
サンプルを作ってみました。
本をめくるようにみれるjQueryプラグイン「FlipPage」の使い方は、続きをご覧下さい。
「FlipPage」の設置方法
まずは、Flippage by marcbuilsのサイトから、Download.zipをダウンロードします。
ダウンロードしたzipファイルを解凍します。いろいろなファイルが入っていますが、実際に使うのは以下のファイルになります。
- jquery.flippage.css
- jquery.flippage.js
- jquery.min.js(jQuery CDNを使うときは不要)
まず、<head>~</head>部分にjQuery本体とjquery.flippage.jsを読み込ませる記述をします。読み込ませるパスに注意して下さい。
<script src="js/jquery.min.js"></script> <script src="js/jquery.flippage.min.js"></script>
もしjQuery CDNを利用する場合は、jQuery 2.x または jQuery 1.xを利用して下さい。jQuery 3系ではうまく動きませんでした。
<script src="https://code.jquery.com/jquery-2.2.4.js" integrity="sha256-iT6Q9iMJYuQiMWNd9lDyBUStIq/8PuOW33aOqmvFpqI=" crossorigin="anonymous"></script>
jquery.flippage.cssを読み込ませます。これもパスに注意して下さい。
<link href="css/jquery.flippage.css" type="text/css" rel="stylesheet" />
続いてscriptを記述します。
<script> $('#exemple').flippage({ // #クラス名 width: 500, // 画像の幅 height: 333 // 画像の高さ }); </script>
<body>部分に表示させる画像を記述します。
<div id="exemple"> <div><img src="画像Aパス1" style="margin-left: 0px;" /></div> <div><img src="画像Aパス1" style="margin-left: -225px;" /></div> <!-- 画像幅の半分をマージンさせます。 --> <div><img src="画像Bパス2" style="margin-left: 0px;" /></div> <div><img src="画像Bパス2" style="margin-left: -225px;" /></div> <!-- 以下画像分繰り返し --> </div>
のように記述します。
最後にサンプルのソースを書いておきますので、どうぞご参考まで。
<!DOCTYPE html> <html lang="ja"> <head> <meta name="viewport" content="width=device-width"> <meta charset="utf-8"> <title>FlipPageサンプル|キツネノシッポ</title> <!-- jQuery --> <script src="js/jquery.min.js"></script> <!-- Flippage --> <script src="js/jquery.flippage.js"></script> <link href="css/jquery.flippage.css" type="text/css" rel="stylesheet" /> <style> body { background: #efecec; } body>div { display: block; width: 500px; height: 333px; margin-left: 50px; margin-top: 50px; } .exemples>div { background-color: white; } </style> <script> (function($) { $(document).ready(function() { $('.exemples:eq(0)').flippage({ width: 500, height: 333 }); $('.exemples:eq(1)').flippage({ width: 300, height: 150 }); }); })(jQuery); </script> </head> <body> <body> <h1>本をめくるように画像を見せるjQueryプラグイン</h1> <div> <h2>Exemple 1</h2> 画像の半分をクリックまたはドラッグするとページがめくれます。 <div class="exemples"> <div><img src="img/img1.jpg" style="margin-left: 0px;" /></div> <div><img src="img/img1.jpg" style="margin-left: -250px;" /></div> <div><img src="img/img2.jpg" style="margin-left: 0px;" /></div> <div><img src="img/img2.jpg" style="margin-left: -250px;" /></div> <div><img src="img/img3.jpg" style="margin-left: 0px;" /></div> <div><img src="img/img3.jpg" style="margin-left: -250px;" /></div> <div><img src="img/img4.jpg" style="margin-left: 0px;" /></div> <div><img src="img/img4.jpg" style="margin-left: -250px;" /></div> <div><img src="img/img5.jpg" style="margin-left: 0px;" /></div> <div><img src="img/img5.jpg" style="margin-left: -250px;" /></div> </div> </div> <div> <h2>Exemple 2</h2> <div class="exemples"> <div> <h3>Page 1</h3> </div> <div> <h3>Page 2</h3> </div> <div> <h3>Page 3</h3> </div> <div> <h3>Page 4</h3> </div> <div> <h3>Page 5</h3> </div> <div> <h3>Page 6</h3> </div> <div> <h3>Page 7</h3> </div> <div> <h3>Page 8</h3> </div> </div> </div> </body> </html>
参考:Flippage