Sabtu, 11 Agustus 2012

Web : Membuat buku virtual dengan turn.js


Anda pernah mendengar tentang FlashPageFlip? itu adalah library flash untuk membuat buku virtual lengkap dengan efek ketika kita membuka tiap halaman buku tersebut. Kini saya akan memperkenalkan Turn.js, sebuah library Javascript yang fungsinya hampir sama dengan FlashPageFlip, namun tanpa flash.
Turn.js
DemonstrasiDownload
Turn.js menggunakan teknologi HTML5 dan CSS3, terutama dibagian efek membuka halaman buku. Turn.js bisa dijalankan di browser berikut:
  • Safari 5
  • Chrome 16
  • Firefox 10, dan
  • IE 7,8,9
Anda dapat mendownloadnya disitus resminya, di http://turnjs.com/ atau disini
Untuk memahami penggunaanya, saya akan memberikan contoh sederhana dengan membuat sebuah buku gallery dengan gambar-gambar yang diambil dari dribbble.com.

HTML

Untuk, markup html, kita hanya membutuhkan sebuah div dengan id book, untuk halaman didalam akan langsung di generate secara otomatis oleh jquery.
  1. <div id="book"></div>

CSS

Kita tambahkan CSS, untuk buku virtual yang akan kita buat:
  1. *{margin:0;padding:0}
  2. #book{
  3. margin:30px auto;
  4. }
  5. h2{
  6. background :rgba(255,255,255,.9);
  7. color :#777;
  8. font-family:calibri,sans-serif;
  9. font-weight: normal;
  10. padding :10px;
  11. text-shadow:0 1px 0 rgba(255,255,255,.8);
  12. text-align :center;
  13. }

Javascript

Selanjutnya adalah inti dari artikel ini, pertama-tama kita muat terlebih dahulu library jquery dan turn.js yang telah di download dari websitenya.
  1. <script src="jquery.min.js"></script>
  2. <script src="turn.min.js"></script>
Lalu tambahkan script berikut:
  1. <script>
  2. $.getJSON("http://api.dribbble.com/shots/popular?callback=?",
  3. {
  4. per_page:"16",
  5. format: "json"
  6. },
  7. function(data) {
  8. shots=data.shots;
  9. for(var i in shots){
  10. var shot=shots[i];
  11.  
  12. $("#book").append('<div style="background:url('+shot.image_url+');" class="page"><h2>'+shot.title+'</h2></div>');
  13. }
  14. $('#book').turn({
  15. width: 800,
  16. height: 300,
  17. autoCenter:true
  18. });
  19. });
  20. </script>

Penjelasan Code

Untuk gambar yang akan ditampilkan berasal dari situs dribbble.com, saya menggunakan api dribbble untuk mendapatkan gambar-gambar terpopuler. API dribbble akan mengembalikan nilai berupa daftar posting (shots) dengan format JSON, lalu saya lakukan perulangan (baris 9-13) dengan menambahkan tag div dengan gambar sebagai background dan tag h2 untuk title (line 12).
Setelah gambar-gambar ditambahkan ke dalam div#book, selanjutnya kita panggil fungsi turn.js untuk membuat gambar-gambar tersebut menjadi buku virtual (baris 14-18);
Jika anda ingin mempelajari fungsi .getJSON silahkan baca disini, dan untuk mempelajari API dribbble silahkan baca disini

Jalankan Kode

Save pekerjaan anda dan tampilkan di browser yang compatible (telah disebutkan di atas), hover sudut halaman, click atau click dan drag untuk membuka halaman selanjutnya.

Kesimpulan

Turn.js memanfaatkan fitur CSS3 diantaranya, gradient, box-shadow, transform dan lain sebagainya untuk membuat efek membuat sebuah buku. Oleh karena itu jika kita membukanya di browser yang tidak compatible maka, efek-nya kurang berasa.
Kelebihan lainnya adalah, anda dapat mengubah halaman web anda menjadi sebuah virtual book, lengkap dengan efek page flip. Pada contoh di atas kita merubah sebuah div menjadi lembaran-lembaran buku gallery. Untuk contoh lainnya, bisa anda temukan di demo yang terdapat di dalam folder hasil download turn.js. Selamat berkreasi :) .

2 komentar:

Posting Komentar