body
tag adalah tag terluar dari sebuah struktur HTML sebuah halaman web, dan HTML
tag adalah tag terluar dari sebuah halaman web. Untuk itu, menambahkan class
pada body
maupun html
dapat mempermudah melakukan tindakan pada elemen-elemen yang ada di dalamnya.Menambahkan
class
pada body
maupun html
tag lazimnya dapat dilakukan dengan 2 situasi, yaitu dengan onscroll
dan onclick
event. Masing-masing digunakan sesuai situasi yang diinginkan.class
pada body
maupun html
tag dengan onscroll
dapat berguna misalnya untuk membuat sticky header, show hide tombol scroll to top, atau show hide elemen lain berdasarkan scroll halaman.Menambahkan
class
pada body
maupun html
tag dengan onclick
dapat berguna misalnya untuk menyembunyikan atau menampilkan sebuah elemen dengan mengklik sebuah tombol, atau juga bisa untuk membuat dark mode halaman, atau lainnya sesuai kreasi Anda.Untuk mengenali
body
tag dengan Javascript dapat menggunakan document.body
dan untuk html
tag dapat menggunakan document.documentElement
Add Remove Class on body or html Tag Onscroll
Untuk menambahkanclass
pada body
maupun html
tag dengan onscroll
dapat menggunakan Javascript berikut. Ini adalah plain Javascript jadi tidak memerlukan Jquery Library.
window.onscroll = function() {scrollFunction()};
function scrollFunction() {
if (document.body.scrollTop != 0 || document.documentElement.scrollTop != 0) {
var element, name, arr;
element = document.body;
name = "flow";
arr = element.className.split(" ");
if (arr.indexOf(name) == -1) {
element.className += " " + name;
}
} else {
var element = document.body;
element.className = element.className.replace(" flow","")
}
}
Jika Anda ingin berdasarkan jarak scroll dari tepi atas, ganti kode != 0
dengan > 200
. Angka 200 silahkan ganti sesuaikan dengan keinginan Anda.Kode nama class
flow
silahkan sesuaikan dengan keinginan Anda.Javascript di atas akan menambakan
class
pada body
tag ketika discroll ke bawah, jika ingin menambahkan class
pada html
tag silahkan ganti document.body
yang ditandai dengan document.documentElement
Dan ketika halaman discroll ke atas dan kembali ke posisi semula, maka
class
yang ditambahkan tadi akan otomatis dihapus.Add Remove Class on body or html Tag Onclick
Untuk menambahkanclass
pada body
maupun html
tag dengan onclick
dapat menggunakan Javascript berikut. Ini adalah plain Javascript jadi tidak memerlukan Jquery Library.
function onclickAddclass() {
var element, name, arr;
element = document.body;
name = "flow";
arr = element.className.split(" ");
if (arr.indexOf(name) == -1) {
element.className += " " + name;
}
}
function onclickRemoveclass() {
var element = document.body;
element.className = element.className.replace(" flow","")
}
Kode nama class flow
silahkan sesuaikan dengan keinginan Anda.Javascript di atas akan menambakan
class
pada body
tag, jika ingin menambahkan class
pada html
tag silahkan ganti document.body
yang ditandai dengan document.documentElement
Selanjutnya buat tombol untuk Add Remove class seperti berikut:
<div aria-label="Add Class" onClick="onclickAddclass()" role="button" tabindex="0">Add class to body</div>
<div aria-label="Remove Class" onClick="onclickRemoveclass()" role="button" tabindex="0">Remove class from body</div>
Melakukan Tindakan Setelah Menambahkan Class
Setelahclass
ditambahkan pada body
atau html
tag, maka selanjutnya kita bisa melakukan tindakan pada elemen yang dimaksud dengan CSS Style.Sebagai contoh show hide tombol scroll to top onscroll sebagai berikut:
.scrolltotop {
display: none;
}
.flow .scrolltotop {
display: block;
}
Sebagai contoh lain misalnya menghilangkan sidebar dengan onclick sebagai berikut:
.sidebar {
display: block;
}
.flow .sidebar {
display: none;
}
Class .flow
adalah class yang ditambahkan pada body
maupun html
tag. Style di atas berlaku untuk onscroll dan onclick.Selamat mencoba dan selamat berkreasi.