Membuat navbar dengan vanilla script

Diposting Oleh: konstributor
Pernah bekerja dengan vanilla script? Di banding dengan Javascript ia lebih muda dan tentunya lebih modern. 

Jujur ketika membicarakan interest saya, saya sadar topik seperti ini kurang peminatnya alias kurang popular walaupun di zaman now yakni zamannya ibu ibu kita, tetapi zaman next, yaitu zaman generasi Z ke generasi Alpha di masa depan - dimana para ahli sepakat: TIDAK BISA KODING = BUTA HURUF. Terdengar sadis bagi sebagian orang yang masih hidup di zaman 'mak mak' kita, zamannya membaca text, tetapi hal itu memang menggambarkan seperti apa orientasi teknologi di masa depan.

Bagi saya sudah cukup pusing untuk memahami mengapa beberapa situs besar mulai menggunakan VanillaScript dan apa bedanya dengan JavaScript, Angular dan Jquerry? Saya sedikit mulai terbiasa dengan JavaScript dan jadi panasaran, pasti kalian juga kalau berada diposisi yang sama dengan saya.

Konon Vanilla Script mampu melipat-gandakan kecepatan, Oh my Gosh! 

Setelah Web Assembly di klaim dan terbukti sangat cepat kini Vanilla script diklaim memiliki kemampuan lebih daripada "pendahulunya" yakni JavaScript tetapi benarkah dia adalah bahasa pemrograman web? Saya rasa bukan. Lalu apa namanya? Markup?

Akan tetapi ia juga disebut sebagai vanilla JS, artinya Javascript banget. Namun lebih ringan dan lebih enteng. Mari kita bahas dahulu perbedaan dan persamaannya.

vanilla script

1.JavaScript

Jangan bingung dulu, jika kita bicara mengenai JavaScript ini tidak ada hubungannya dengan bahasa program Java ya, Java dibangun sebagai sebuah bahasa yang berdiri disisi perangkat pengguna, Sedangkan JavaScript secara umum dipergunakan untuk memanipulasi “Document Object Model” (DOM), yang meliputi elemen-elemen pada sebuah laman web. Oh jadi dia bahasa markup? 

Jadi, JS (JavaScript) itu adalah sebuah bahasa pemrograman yang dirancang untuk penggunaan pada browser (peramban) web. Kebanyakan Blogger pasti mengerti hal itu.

JavaScript dieksekusi pada client side (sisi pengguna = komputer pengguna): Sebuah server website mengirim JavaScript ke peramban milik pengguna, dan peramban tersebut menginterpretasikan dan menjalankan kodenya.

Semuanya terjadi dalam sebuah sandbox, yang menjaga agar JavaScript tidak menyentuh internal sistem dan mencegah malicious code (kode jahat) menginfeksi komputer pengguna.

2. Vanilla Script

Vanilla Script atau Vanilla JS itu sebenarnya adalah sama saja dengan Java Script, dia hanya memaintain setiap bait daripada kode dalam framework dan terus di maintain agar menjadi lebih kecil namun intuitif, sehingga memang lebih cepat daripada JavaScript, dibawah ini daftar situs pengguna vanilla:

  1. Facebook
  2. Google
  3. YouTube
  4. Yahoo
  5. Wikipedia
  6. Windows Live
  7. Twitter
  8. Amazon
  9. LinkedIn
  10. MSN
  11. eBay
  12. Microsoft
  13. Tumblr
  14. Apple
  15. Pinterest
  16. PayPal
  17. Reddit
  18. Netflix
  19. Stack Overflow
  20. DLL

Faktanya ketimbang kombinasi jQuery, Prototype Js, YUI, dan Web Toolkit, maka Vanilla telah dipergunakan oleh website-website besar secara umum. Terakhir saya baca Boostrap versi teranyar menggunakan Vanilla Script (atau Vanilla JS)

Oh jadi kita ketinggalan zaman gara gara kurang update? Saya periksa template yang saya buat, saya pakai JavaScript dan jQuery saya tidak ada gambaran bagaimana menggantikannya dengan vanilla he he he...

Bahkan saya belum mencoba menerapkannya, ternyata dia seperti bagian dari JavaScript secara terpisah dan terkadang direferensikan sebagai library , contoh kodenya dapat di pasang ke dalam HTML jika ingin menggunakan Vanilla:

<script src="path/to/vanilla.js"></script>

JavaScript banget ya...so, sebagian orang masih berpendapat: it's not really a framework or a library. 

3. Membuat navbar dengan vanilla script

wah bisa gak sih vanilla script di pasang ke blogger? Jika ia librari apakah kita harus pasang eksternal link? Itu dia persoalannya tadi.

Tentu saja bisa karena ia hanyalah javascript yang bekerja lebih detail di dalam framework, dan vanilla dapat bekerja di dalam halaman HTML blog, misalnya ketika kita ingin membentuk sebuah navbar dari sebuah navigasi menu, contohnya kita dapat meletakan vanilla script berikut di atas kode </body> di halaman HTML blogger:

    <script>const nav = document.querySelector(&quot;nav&quot;);
const supportPageOffset = window.pageXOffset !== undefined;
const isCSS1Compat = (document.compatMode || &quot;&quot;) === &quot;CSS1Compat&quot;;

let previousScrollPosition = 0;

const isScrollingDown = () =&gt; {
  let scrolledPosition = supportPageOffset
    ? window.pageYOffset
    : isCSS1Compat
    ? document.documentElement.scrollTop
    : document.body.scrollTop;
  let isScrollDown;

  if (scrolledPosition &gt; previousScrollPosition) {
    isScrollDown = true;
  } else {
    isScrollDown = false;
  }
  previousScrollPosition = scrolledPosition;
  return isScrollDown;
};

const handleNavScroll = () =&gt; {
  if (isScrollingDown() &amp;&amp; !nav.contains(document.activeElement)) {
    nav.classList.add(&quot;scroll-down&quot;);
    nav.classList.remove(&quot;scroll-up&quot;);
  } else {
    nav.classList.add(&quot;scroll-up&quot;);
    nav.classList.remove(&quot;scroll-down&quot;);
  }
};

var throttleTimer;

const throttle = (callback, time) =&gt; {
  if (throttleTimer) return;

  throttleTimer = true;
  setTimeout(() =&gt; {
    callback();
    throttleTimer = false;
  }, time);
};

const mediaQuery = window.matchMedia(&quot;(prefers-reduced-motion: reduce)&quot;);

window.addEventListener(&quot;scroll&quot;, () =&gt; {
  if (mediaQuery &amp;&amp; !mediaQuery.matches) {
    throttle(handleNavScroll, 250);
  }
});</script>

Letakan di atas </body>, demikian struktur template blogger telah tertata.

Jadi kita segera tahu kode tersebut telah di parse, ya disitu persoalanya tapi faktanya ia bekerja dengan baik. Artinya itu adalah Javascript yang bernama vanilla script. Akan tetapi karena ia bekerja dengan cara berbeda dalam framework, maka kita mengenalinya sebagai vanilla script.

Lalu Pasang  kode CSS berikut di atas kode </head>:

    <style>body {
  margin: 0;
  font-family: &#39;Lato&#39;, sans-serif;
}

* {
  box-sizing: border-box;
}

nav {
  position: sticky;
  top: 0;
  display: flex;
  flex-wrap: wrap;
  justify-content: space-between;
  padding: 1.5rem 2rem;
  background-color: #eaeaea;
  transition: top 500ms ease-in-out;
      z-index:2000;
}

nav.scroll-up,
nav:focus-within {
  top: 0;
}

nav.scroll-down {
  top: -100%;
}

.links {
  display: flex;
  margin: 0 -1em;
}

.links a {
  display: inline-block;
  margin: 0 1em;
}

.logo {
  font-weight: bold;
  text-transform: uppercase;
  letter-spacing: 0.2em;
}

nav a {
  color: #0f0f0f;
  text-decoration: none;
  font-size: 0.9rem;
  text-transform: uppercase;
  letter-spacing: 0.2em;
}

section {
  width: 65%;
  margin: 0 auto;
}

section h1 {
  font-size: 2rem;
}

section p {
  font-size: 1.25rem;
  line-height: 140%;
}

footer {
  padding: 1em;
  text-align: center;
  background-color: #FFDFB9;
}

footer a {
  color: inherit;
  text-decoration: none;
}

footer .heart {
  color: #DC143C;
}</style>

Terakhir letakan kode HTML berikut di bawah kode <body>:

<nav>
  <div class='logo'>
    <data:blog.title/>
  </div>
  <div class='links'>
    <a href=''>Link 1</a>
    <a href=''>Link 2</a>
    <a href=''>Link 3</a>
    <a href=''>Link 4</a>
  </div>
</nav>

Penutup:

Di atas tadi saya ada mengutip kata kata ahli, yakni: "Di masa depan tidak bisa koding sama saja seperti buta huruf" well, terserah kita mau setuju atau tidak, tapi waktu akan terus merambat ke masa depan dan lajunya tidak bisa ditahan oleh kita.

Buta huruf modern adalah: orang yang tidak mau membuka pikirannya, taklid dan merasa dirinya saja yang paling benar. Tidak mau belajar ilmu diluar keyakinannya, tidak perduli yang penting orang lain harus sama dengan dirinya. Jika tidak akan dianggap bukan golongannya. Padahal bagiamana dia akan melawan lawan lawannya jika dia tidak menguasai ilmu mereka?

Ikuti terus trik, tips, teknik hack dan kabar terupdate dari blog ini! Share:

Baca Juga:

Komentar

Posting Komentar

Jika Anda mau menuliskan, menyisipkan atau mem"pastekan" suatu kode HTML, JS dll kedalam kotak komentar terlebih dahulu, silahkan mengkopi seluruh kode tersebut dan mem"parse"kannya kedalam kotak parse online yang banyak tersedia di Google, silahkan kunjungi:

BLOGCROWDS

Pastekan terlebih kode disana dan lalu klik tombol "PARSE" berada dibawah kanan kotak parse tersebut, setelah hasil parse muncul copy seluruh kode tersebut dan pastekan kedalam kotak komentar blogspot dan lalu publish.

Labels

adwords aibo ajax alexa algoritma alternative Am I Responsive amazon ambigu Amerika AMP Andorid Android Android 10 Angular animasi apple ARM Art Of War artikel sabtu asesories autodidact avatar avatar penulis awesome awsome back to top backdoor backlink bahasa bank btn batam beautiful beginning belajar belajar koding berita bing web master biografi blackberryOS blackhat blockquote blog blogcomments blogger bloggerhelp blogging Blogging mobile bloging blogspeed blogspot bluetooth bootstrap border dash breadcrumb browser btn mobile bugs Buku business capital letter cara catatan catatan awal tahun Cek IMEI Cerita cerpen cewek chimpense chipset chrome chrome 76 Cina cinta clickjacking codepen coding compose contact form contempo contempo base contempo blackmagic contempo hibrida contempo hybrid converter coolest copy-paste copyright covid 19 covid_19 cowok CPC credit footer css CTR cuitan curhat cybercrime Dahlan Iskan dark mode dasbor data default Demo desain diblokir dirtylink disway DOM domain domain authority Donald Trump download download template terbaru dropdown earn money edisi minggu edit editblogtema editor HTML ekonomi elektronik Elle Darby embed emoji emporio emporio hybrid english error essential expires header expires headers facebook fakta fanpage fast loading template fastloading template favicon featured posts feed burner firefox fitur fixed fixed sidebar font font awsome footer footer link Footer navigasi forbes Free friendship fuchsia full stacks furure g-suite gadget gagdet galeri gambar gambar bergoncang gambar profile penulis gambar responsive game generasi Alpha Generasi Z geng motor genius gerhana girl gmail Gmetrix gong xi fa cai good news google google chrome Google Domain google drive google font Google honemoon google Plus google search console google webmaster Googlewebmaster gradasi warna grafik gramedia gratis grid style GTmetrix h1 Habibie hack hacker halaman web hamburger menu hanya opini hapus hari bumi harimau heading headings heart secret hewan hoax hobi hotpink HTM5 html huawei hukum human Idulfitri Iklan ikon Imlek in memories indie Indonesia Indonesia darurat corona indosat infinite color infinity war informasi instagram intel inteligensia internal link internasional internet internt interntet interntt intert iOS iPad iPadOS iPhone isu IT italia Jaime Ocabo java JavaScript jimdo jin Ping jingling Jokowi jQuery JSitor kaca pembesar kafe kalimantan kalkulus kamera kanonis kartun keamanan keamanan blogger kebijkan kecepatan blog mobile kehidupan kemanusiaan kesehatan keyakinan keyboard keyword kiata G+ klasik klik kode warna koding komentar komentar blog komputer konsipirasi konten konversi kopi kota kotak navigasi menu blog kotak pencarian kotlin kriminalitas kualitas kucing label laptop lay out lay out version 3 theme layarlipat layout lazyload lifehack lingkungan logitech logo love Macbook Macbook Air machine learning MacOS magnifier maintenance makmur manusia margasatwa masa depan masonry matahari matematika medsos mega menu mengganti tempa menu menu navigasi menu pencarian menulis merombak metafisika Microsoft microsoft edge Minggu minify misteri mitos mobile modal modern modifikasi monetisi morality motivasi motivation moz myths nasehat terbaik navbar navigasi navigasi menu blog ngeblog nibbler notable office Omnibus online online editor operating sistem opini otodidak pagelist pagerank paginator Pandora panduan panduan mobile paradox parameter parasit parse pembatasan pemilu 2019 Pemilu Indonesia 17 April 2019 pemrograman pemula pendidikan pengalaman pengaturan pengusaha Penulis perang dagang Cina vs Amerika perang dunia ketiga perangdagang perceraian perihal perubahan pexel phablet PHP plagiat plagiator PlagScan play store polemik politik ponsel popularitas popularposts portable powered by blogger Powerpoint prediksi premium privasi produk profesi profile programmer programming programming. prosesor pseudo-sains psikologi Python rahasia ramalan ranking faktor rawgit re-desain re-desain tema blogger React Reactions read more recentPosts redesain related posts remaja resolusi responsinator responsive review robot robot.txt sains samsung sanggahan saran temaplate blogger saran template search secrets security sederhana sejarah seken selegram semrush SEO share button sharing buttons I.O sidebar sidenav siginifikan silikon simple simpson singularity sitelink sitemap smartphone snippet soho solusi somadmorroco spesial spoiler star wars sticky sidebar sticky widget Strategi SEO Student study study online style submenu subscriber success sudut cerita SVG SVG icon syimbian tab s2 tabel tablet tabs2 tagging takdir takhyul talenta tataletak Teen teka teki teknik teknologi TELKOMSEL tema tema kesederhanaan template template premium template premium gratis template SOHO template versi ke-2 terkemuka tes popularitas testimoni testmysite text theme Thucydides tip tips toggle tokoh tombol berbagi tombol pengalihan tombol reply komentar tops traffik trafic trafik translator tribun tricks Trik triks troubleshooting Tutorial Tutorial Anissa tutorialKhusus twitter uang UAS unduh unik update urang utan ustazd Abdul Somad vanilla Script video viomagz viral virus corona vlogging vue w3-css w3school W3Shool wabah warna web web story WebAssembly webdesign WEBP website whatsapp widget wifi ID windows Windows Mobile wisata WIX wordpress X-Frame xiomi xml yandex youtube youtuber z-index
Tampilkan selengkapnya

Populer

Cara memperbaiki add numbering dan add bullets yang tidak bisa tampil pada postingan blog

Downoad Notable simple yang pas buat blog curhat

Feed Burner akan di non aktifkan pada bulan Juli 2021

Follow by Email