Pernahkan teman-teman menjumpai sebuah halaman web, ketika kita melakukan scroll, maka menu atau navigasinya akan mengecil. Teknik ini menggunakan JavaScript atau jika ingin lebih mudah bisa dilakukan dengan menggunakan jQuery.
Artikel kali ini kita akan mencoba membuat efek tersebut, sebutannya mungkin yang paling umum adalah ‘Shrink Navigation Menu on Scroll’.
Teman-teman siapkan dahulu file-filenya seperti index.html, css dan javascriptnya.
Berikut potongan kodenya:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 |
<div id="navbar"> <a href="#default" id="logo">CompanyLogo</a> <div id="navbar-right"> <a class="active" href="#home">Home</a> <a href="#contact">Contact</a> <a href="#about">About</a> </div> </div> <div style="margin-top:210px;padding:15px 15px 2500px;font-size:30px"> <p><b>This example demonstrates how to shrink a navigation bar when the user starts to scroll the page.</b></p> <p>Scroll down this frame to see the effect!</p> <p>Scroll to the top to remove the effect.</p> <p><b>Note:</b> We have also made the navbar responsive, resize the browser window to see the effect.</p> <p>Lorem ipsum dolor dummy text to enable scrolling, sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.</p> </div> |
letakkan pada tag body, kemudian tambahkan dengan css, seperti berikut:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 |
* {box-sizing: border-box;} body { margin: 0; font-family: Arial, Helvetica, sans-serif; } #navbar { overflow: hidden; background-color: #f1f1f1; padding: 90px 10px; transition: 0.4s; position: fixed; width: 100%; top: 0; z-index: 99; } #navbar a { float: left; color: black; text-align: center; padding: 12px; text-decoration: none; font-size: 18px; line-height: 25px; border-radius: 4px; } #navbar #logo { font-size: 35px; font-weight: bold; transition: 0.4s; } #navbar a:hover { background-color: #ddd; color: black; } #navbar a.active { background-color: dodgerblue; color: white; } #navbar-right { float: right; } @media screen and (max-width: 580px) { #navbar { padding: 20px 10px !important; } #navbar a { float: none; display: block; text-align: left; } #navbar-right { float: none; } } |
jangan lupa teman-teman harus mengaktifkan JavaScriptnya, dengan menambahkan kode seperti berikut:
1 2 3 4 5 6 7 8 9 10 11 12 |
// When the user scrolls down 80px from the top of the document, resize the navbar's padding and the logo's font size window.onscroll = function() {scrollFunction()}; function scrollFunction() { if (document.body.scrollTop > 80 || document.documentElement.scrollTop > 80) { document.getElementById("navbar").style.padding = "30px 10px"; document.getElementById("logo").style.fontSize = "25px"; } else { document.getElementById("navbar").style.padding = "80px 10px"; document.getElementById("logo").style.fontSize = "35px"; } } |
Untuk hasilnya kalian bisa lihat disini: