-->

Sunday, November 20, 2016

Cara Membuat Menu Melayang saat di Scroll

Tutorial berikut ini adalah tentang bagaimana membuat menu navigasi tetap berada pada posisinya meskipun halaman digulir / di scroll, atau sering juga disebut menu navigasi melayang dan dalam dunia blogging namanya sticky navigation.

Kenapa menu harus dibuat sticky? Alasan paling logis adalah agar pengunjung blog tidak perlu repot dalam mencari menu blog meskipun sedang berada di dasar terbawah sebuah halaman blog, sehingga memudahkan pengunjung blog atau web untuk menjelajahi seluruh isi blog lewat menu navigasi yang kita buat posisinya menjadi fixed menu atau tetap.

Untuk memulai tutorial ini, blog anda harus memiliki fitur menu yang nantinya akan di jadikan Sticky Menu Navigation. Jika belum punya anda bisa ikuti salah satu tutorial berikut :

  1. Cara Membuat Menu Navigasi Slide Samping di Blog 
  2. CaraMembuat Top Menu plus Search Box di Blog.


Jika anda sudah memiliki menu blog yang akan di jadikan sticky navigation, silahkan ikuti tutorial cara membuat menu melayang saat di scroll berikut ini.

1. Masuk ke edit HTML kemudian copy kode jquery di bawah, lalu pastekan tepat di atas kode </head>
<script src='//ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js' type='text/javascript'/>

Ket : sebelum di copy paste sebaiknya anda periksa dulu apakah di dalam template anda sudah terdapat kode jquery seperti di atas, jika sudah ada lewati saja langkah pertama.

Tips: lewati saja dulu langkah pertama, jika nanti hasilnya menu masih amblas saat di scroll itu artinya template anda belum memiliki kode jquery di atas.

2. Copy kode javascript di bawah ini, lalu pastekan tepat di atas kode </body>
    <script type='text/javascript'>
      $(document).ready(function() {
        var stickyNavTop = $('#top-menu').offset().top;
        var stickyNav = function(){
          var scrollTop = $(window).scrollTop();
          if (scrollTop > stickyNavTop) {
            $('#top-menu').css({ 'position': 'fixed', 'top':0, 'z-index':9999 });
          } else {
            $('#top-menu').css({ 'position': 'relative' });
          }
        };
        stickyNav();
        $(window).scroll(function() {
          stickyNav();
        });
      });
    </script>

Ket : ganti kode warna merah dengan id top menu milik anda.
Sekedar gambaran, pada umumnya sebuah menu blog memiliki skema kode HTML sebagai berikut :
<div id='top-menu'>

  <nav id='menu'>

    <ul>

      <li><a href='#'>Menu1</a></li>

      <li><a href='#'>Menu2</a></li>

      <li><a href='#'>Menu3</a></li>

    </ul>

  </nav>

</div>


[UPDATE]
Abaikan langkah di bawah ini. Langsung di simpan saja ok. Untuk keterangan, lihat komentar.
3. PENTING!!!
Sebelum di simpan sebaiknya anda klik Format template dulu, setelah template terformat baru klik Simpan template.

Catatan :
Ketika penulis menguji artikel ini, menu navigasi masih amblas saat di scroll bila template di simpan dalam keadaan belum di FORMAT, sebaliknya setelah template di simpan dalam keadaan terformat menu navigasi menjadi melayang.

Sekian tutorial cara membuat menu navigasi melayang di Blog / Web, semoga bisa bermanfaat dan selamat mencoba, Salam Blogger.

21 comments:

HeXDroid said...

ini baru cerahhhh, tutor yg laen gak fungsi sama skali,makasih om ijin praktek,,,

Ridwan said...

Silahkan, dan terima kasih juga atas kunjungannya

Ridwan said...

@Java Sat, maaf komentarnya ga sengaja kehapus. Setahu saya ada beberapa versi jquery, dan untuk sekedar membuat efek melayang, versi di atas sudah cukup. Terima kasih

Java Sat said...

G mslh mas...sblmnya saya pke jquery yg sama kyk py mas....beberapa hari ini kok ga bs sticky...iseng2 saya gnti versinya bisa sendiri...xixixi

Ridwan said...

Sampai saat ini, versi di atas masih efektif pada template yang saya gunakan. Kalau Anda berkenan, tolong kirim kode jquery nya, barangkali ada pengguna lain mengalami hal yang sama. Tulis kode nya yang lengkap ya gan hehehe

Admin said...

masih tetap amblas gan

Ridwan said...

Teliti lagi gan, mungkin id nya belum disesuaikan dengan menu agan. trus langsung di save aja, ga usah diformat. Kode yang diformat sekarang gak bisa disimpan

Unknown said...

thx's Om artikelnya..
disaya sukses namun transparan..
biar backroundnya sama gimana caranya OM?

ijin share jg..

Ridwan said...

Kalau pakai javascript diatas seharusnya tidak mengubah warna apapun, tapi jika maksud agan biar background menu berubah warna ketika menu melayang, kuncinya ada di dalam javascript. Css di atas kode } else itu untuk mengatur kondisi saat menu melayang sedangkan css dibawah else { sebaliknya, Anda jg bs menambahkan perubahan gaya untuk id dibawah id top-menu (disitulah background diubah), untuk teknik penulisannya, gunakan contoh yang sudah ada. Silahkan

Ardha said...

id top menu maksudnya apa

Ridwan said...

Nama id yg digunakan untuk membungkus Menu navigasi, dan itu bebas terserah yg bikin template atau tutorial, contohnya ada diatas, kalau kurang jelas silahkan baca tutorial cara membuat top menu di blog (tautannya ada di atas)

KunciGitar 2020 said...

Lho kok bisa ya diterapin di blog ane... tadinya ngimpi lho mas... dlunya pernah nyari gagal terus,,, cuman ane iseng aja terapin script diatas eh ternyata berhasil... mantaps... hebat mas,,, makasih tutornya bermanfaat di blog ane thanks....

Ridwan said...

Sama-sama, thanks untuk kunjungannya

Ichsani said...

waduh punya saya gak bisa gan wkwkw ^_^

Ichsani said...

wah manteb mas ^_^
akhirnya di blog saya bisa sukses, tapi kalo di format dulu malah gak bisa mas hehe

Ridwan said...

Sudah di jelaskan pada salah satu balasan komentar di atas dan sudah di update, thanks infonya

Ichsani said...

iya Mas.... ^_^

Reza Ichsani said...

mas kalau pas di scroll menunya tiba2 pindah sisi kiri gimana caranya Mas :v

Ridwan said...

Maksudnya biar saat Sticky menu tombolnya geser ke kiri begitu??, ana" bae sampeyan,,, sebenarnya sama seperti masalah di atas (ganti background dan style lainnya). Ok biar lebih jelas dan mudah dimengerti, hapus kode } else { yang ada di script, terus ganti pake kode ini
$('#menu label,#menu input').css({'right':'85%'});
} else {
$('#menu label,#menu input').css({'right':0});

Sesuaikan kode #menu dengan kode yg anda gunakan, jika tidak bekerja, coba tulis manual, thanks semoga berhasil.

Rakyat Indonesia said...

Terimakasih gan terimahasih sangat sangat , akhirnya sukses

Ridwan said...

Sama-sama gan,