Sunday, December 22, 2013

Membuat Posting Layar Penuh

Mode layar penuh.
Mode layar penuh.

Saya membuat sebuah aplikasi/widget kecil untuk membuat posting di blog menjadi memiliki alternatif tampilan “layar penuh”. Tidak benar-benar layar penuh sebenarnya, karena widget ini hanya bekerja dengan cara menyisipkan tabir baru berisi duplikat judul dan konten posting. Kalau Anda ingin membuat fitur full screen sungguhan yang bisa memenuhi seluruh layar, Anda bisa mempelajari API JavaScript ini ⇒ MDN – Using Full Screen Mode

Lihat Demo

Untuk memasang widget ini, masuklah ke halaman editor HTML Templat, lalu letakkan kode ini di atas </body>:

<b:if cond='data:blog.pageType == &quot;item&quot;'>
  <script src='https://cdn.rawgit.com/tovic/dte-project/2fd2d2971c3398029ea5e149696447243e7f4d94/full-screen.min.js'/>
  <script>
  //<![CDATA[
  postFullScreen({
    titleSource: document.querySelector('.post-title'),
    contentSource: document.querySelector('.post-body'),
    background: "#fff",
    color: "inherit",
    fontSize: "120%",
    padding: 50,
    maxWidth: 750,
    openText: "Full Screen Mode",
    closeText: "Exit full screen mode",
    appendButtonTo: null,
    beforeInit: null,
    afterInit: null
  });
  //]]>
  </script>
</b:if>

Atau Saya sarankan lebih baik letakkan kode di atas sedekat mungkin dengan posting. Lebih tepatnya di bagian paling bawah dari posting:

<b:section class='main' id='main' showaddelement='no'>
  <b:widget id='Blog1' locked='true' title='Posting Blog' type='Blog'> … </b:section>
</b:section>
<!-- Letakkan di sini -->

Klik Simpan Templat.

Konfigurasi

Opsi Keterangan
titleSource Selektor elemen HTML dimana di dalamnya berisi teks judul. Di atas Saya menggunakan selektor document.querySelector('.post-title') untuk memperoleh teks judul dari dalam elemen <h3 class='post-title'></h3>. Sebagai alternatif, Anda bisa mencoba untuk menggunakan selektor document.title untuk memperoleh judul dari address bar.
contentSource Selektor elemen HTML dimana di dalamnya terdapat konten artikel/posting. Pengaturannya sama persis dengan opsi titleSource.
background Digunakan untuk menentukan warna latar tabir layar penuh.
color Digunakan untuk menentukan warna teks mode layar penuh. inherit artinya warna menyesuaikan dengan warna teks posting.
fontSize Digunakan untuk menentukan besar teks di artikel layar penuh.
padding Digunakan untuk menentukan padding tabir layar penuh.
maxWidth Digunakan untuk menentukan lebar maksimal area artikel layar penuh.
openText Digunakan untuk menentukan teks tombol pemicu layar penuh.
closeText Digunakan untuk menentukan teks tombol penutup tampilan layar penuh.
createButton Digunakan untuk membuat tombol kustom. Lihat penjelasan di bawah.
appendButtonTo Nilai berupa selektor elemen HTML. Jika nilainya null, tombol akan secara otomatis disisipkan di bawah posting. Jika nilainya false, tombol tidak akan disisipkan secara otomatis (bermanfaat jika Anda ingin membuat tombol pemicu tersendiri secara terpisah).
beforeInit Lihat penjelasan di bawah.
afterInit Lihat penjelasan di bawah.

Penjelasan Ekstra

createButton

Opsi ini digunakan sebagai alternatif jika Anda tidak suka dengan tampilan tombol pemicu layar penuh secara normal. Anda bisa memanfaatkan opsi ini untuk menentukan/membuat elemen tombol kustom. Sebagai contoh di sini Saya menggunakan elemen tautan sebagai tombol:

var buttonMarkup = document.createElement('a');
    buttonMarkup.className = "custom-button";
    buttonMarkup.style.display = "block";
    buttonMarkup.style.marginTop = "20px";

postFullScreen({
    openText: "Layar Penuh!",
    createButton: buttonMarkup
});

/*

akan menghasilkan ini:

<a class="custom-button" style="display:block;margin-top:20px;">Layar Penuh!</a>

*/

Lihat Demo

Atau Anda juga bisa menentukan nilainya sebagai objek yang sudah ada. Sebagai contoh Anda membuat tombol pemicu secara manual di tempat tertentu, misalnya di sidebar:

<aside>
  ...
  <button id="full-screen-button">Layar Penuh</button>
  ...
  ...
</aside>

Kemudian Anda bisa melakukan ini untuk membuat tombol tersebut menjadi aktif:

postFullScreen({
    createButton: document.getElementById('full-screen-button'),
    appendButtonTo: false
});

Jangan lupa untuk mengatur opsi appendButtonTo menjadi false karena jika tidak tombol tersebut mungkin akan berpindah tempat. Secara umum akan berpindah ke bagian akhir posting:

Lihat Demo

appendButtonTo

Opsi ini digunakan untuk menentukan ke mana tombol pemicu tampilan layar penuh akan disisipkan. Berikut ini adalah sebuah contoh jika Anda ingin menyisipkan tombol pemicu layar penuh di dalam elemen #button-container:

<div id="button-container"></div>
postFullScreen({
    ...
    appendButtonTo: document.getElementById('button-container')
});

Lihat Demo

beforeInit dan afterInit

Ini adalah opsi untuk membuat fungsi bebas yang akan tereksekusi sebelum (untuk beforeInit) dan sesudah (untuk afterInit) markup tabir tersisip ke blog. Yang paling berguna adalah beforeInit. Fungsi ini bisa Anda gunakan untuk memastikan bahwa manipulasi konten posting yang dilakukan oleh JavaScript telah dilakukan sebelum widget ini tereksekusi. Misalnya mengenai Syntax Highlighter atau JavaScript emotikon. Jika Syntax Highlighter atau JavaScript emotikon tidak diaktifkan sebelum widget ini aktif, maka kemungkinannya posting-posting kode yang berada di dalam artikel layar penuh tidak akan berwarna, dan emotikon-emotikon di dalam artikel tidak akan berubah menjadi gambar:

postFullScreen({
    beforeInit: function() {
        repText('post-12345');
        hljs.initHighlighting();
    },
    afterInit: function() {
        alert('OK!');
    }
});

Pengguna jQuery

Jangan lupa untuk menambahkan indeks [0] setelah selektor jika Anda menggunakan API selektor elemen jQuery:

postFullScreen({
    titleSource: $('.post-title')[0],
    contentSource: $('.post-body')[0]
});

Labels: ,

17 Comments:

At Sunday, December 22, 2013 at 10:31:00 PM GMT+7, Anonymous Anonymous said...

Keren Banget mas taufik, \o/

kalau ini untuk post,
kalau untuk blog secara keseluruhan gimana mas..??

 
At Monday, December 23, 2013 at 1:39:00 AM GMT+7, Blogger Shiro said...

Sedikit Rumit juga yah mas taufik :)

 
At Monday, December 23, 2013 at 2:32:00 AM GMT+7, Blogger Unknown said...

Layar penuh penting juga, tapi tidak terlalu membuat orang bisa membaca hal hal yang berbau layar penuh, karena sulit untuk membaca dilayar yang penuh itu. tapi salut deh.

misteri.us

 
At Monday, December 23, 2013 at 9:24:00 AM GMT+7, Blogger Taufik Nurrohman said...

Kalau Anda ingin membuat fitur full screen sungguhan yang bisa memenuhi seluruh layar, Anda bisa mempelajari API JavaScript ini ⇒ MDN - Using Full Screen Mode

 
At Monday, December 23, 2013 at 3:43:00 PM GMT+7, Blogger FN said...

\o/ akhirnya keposting juga. mas, apakah ini juga bisa dipakai untuk demo template blog yg diaplikasikan ke postingan?

 
At Tuesday, December 24, 2013 at 5:57:00 AM GMT+7, Blogger Unknown said...

Asik.... :D
mangstab ini :-bd

 
At Thursday, December 26, 2013 at 1:22:00 AM GMT+7, Blogger Unknown said...

kayak seperti di maxthon mas :)
jadi di browser maxthon jika mengunjungi artikel situs website/blog ada fitur di address bar "reader mode" jadi hanya tertampil artikel dengan tampilan full screen seperti ini , keren (y)

 
At Sunday, December 29, 2013 at 2:48:00 PM GMT+7, Blogger Mr. Jom Be said...

Mas Taufik saya perhatikan judulnya postingan rapat tuh bila tak menggunakan line-height: 1.1em
judulnya terlalu rapat, mohon maaf mas taufik klo project full-screen.min.js saya edit sedikit

 
At Saturday, February 22, 2014 at 4:56:00 PM GMT+7, Blogger Kang Rian said...

Seperti metode Print untuk Browser yah mas taufik , kalo saya pikir2 .. :D , lebih menentukan ID mana yang ingin di buat full screen . :)

 
At Monday, February 24, 2014 at 7:50:00 AM GMT+7, Blogger Unknown said...

Mas bagaimana supaya kaya labnol ? Yang langsung menghide sidebar, cara ini mirip, cuma kalau di labnol disembunyikan sidebarnya, bagaimana kk javascriptnya ?

 
At Thursday, March 13, 2014 at 5:06:00 AM GMT+7, Blogger Fajar Gooner said...

banyak juga yang harus di edit ya

 
At Wednesday, April 9, 2014 at 8:41:00 PM GMT+7, Blogger Unknown said...

Dapat trik baru lagi, mungkin nanti bisa dipakai. sekarang bookmark dulu :D

Mas taufik, sy request tutorial dong :D
Bagaimana cara menyembunyikan kode CSS blog di page source code. sy sudah obrak abrik google tapi tidak dapat jawaban yang memuaskan :D

 
At Monday, February 2, 2015 at 3:28:00 AM GMT+7, Blogger Unknown said...

tutorial kodenya sepotong2 gk ada pilihan yg sudah jadi, kalau dipraktekan pada postingan blog tombol yg ready tinggal (kopi paste) terletak di akhir artikel, tentu sudah tidak berguna karena orang sudah selesai membaca. kalau mau menyisipkan di bawah judul postingan nggak tau cara bikin button dan meletakkannya (seperti pada contoh). mungkin ini pelajaran untuk yg suka belajar koding bukan untuk umum ya boss ? sulit memahami gaya bahasanya jika yg membaca orang awam macam saya.

 
At Monday, February 2, 2015 at 11:27:00 PM GMT+7, Blogger Taufik Nurrohman said...

Kalau dipraktekan pada postingan blog tombol yg ready tinggal (kopi paste) terletak di akhir artikel, tentu sudah tidak berguna karena orang sudah selesai membaca.

Bener juga sih. Untuk menyisipkan tombol setelah judul, coba cara ini:

Tambahkan tombol ini sebelum konten posting, bisa diletakkan di atas kode <div class="post-body entry-content">. Jumlahnya mungkin ada lebih dari satu (satu untuk tampulan web dan satu untuk tampilan seluler):

<button id="full-screen-button">Layar Penuh</button>

Lalu set opsi JavaScript menjadi seperti ini:

postFullScreen({
titleSource: document.querySelector('.post-title'),
contentSource: document.querySelector('.post-body'),
createButton: document.getElementById('full-screen-button'),
appendButtonTo: false
});

 
At Tuesday, February 3, 2015 at 4:56:00 AM GMT+7, Blogger Unknown said...

Terimakasih banget mas Taufik, atas jawaban pertanyaan yang saya ajukan, dan sudah saya praktekan di blog saya dan berhasil baik, saya sangat suka dengan ide anda, bagus sekali penempatan fullscreen ini, sangat berguna unuk pembaca yang memiliki masalah penglihatan..salam sukses dari saya untuk anda beserta keluarga..amin. :-bd

 
At Saturday, November 12, 2016 at 12:21:00 AM GMT+7, Blogger Agus Suryawan said...

keren.... \o/ tp aku g mudeng :-a
kl tidak kberatan ajarin dong master....

 
At Monday, April 9, 2018 at 8:39:00 PM GMT+7, Blogger Johny Chan said...

kalau template yang hanya satu halaman saja maksudnya beranda hanya 1 posting saja langsung scrol kebawah. referensinya template apa bos
thank

 

Post a Comment

<< Home