Kalender telah menjadi bagian tak terpisahkan dari aplikasi web modern karena memungkinkan pengguna mengatur, menjadwalkan, dan melacak acara dengan mudah. Baik Anda sedang membuat alat manajemen proyek, aplikasi penjadwalan acara, atau rangkaian produktivitas pribadi, komponen kalender khusus dapat meningkatkan pengalaman pengguna secara signifikan. Meskipun terdapat banyak pustaka kalender bawaan, membuat komponen Anda sendiri dapat memberikan fleksibilitas untuk memenuhi persyaratan desain dan fungsionalitas tertentu.
Dalam tutorial ini, kita akan mempelajari cara membuat komponen mirip Google Kalender menggunakan JavaScript. Di akhir tutorial ini, Anda akan memiliki kalender yang berfungsi penuh dengan fitur interaktif dan pemahaman lebih mendalam tentang cara membuat komponen yang dapat digunakan kembali untuk aplikasi web Anda. Baik Anda seorang pengembang yang ingin menambahkan sentuhan unik pada proyek Anda atau seseorang yang ingin mempelajari cara kerja fungsi kalender, panduan langkah demi langkah ini akan sangat berharga. Mari kita mulai!
Ringkasan
Kami akan membuat komponen kalender dengan fitur berikut:
Timeline: garis waktu vertikal dari pukul 12:00 hingga 23:00. Blok Acara: Acara yang ditampilkan secara dinamis dengan posisi dan ketinggian yang tepat berdasarkan waktu mulai dan berakhir. Penanganan yang tumpang tindih: Peristiwa yang tumpang tindih dalam waktu akan muncul bersebelahan.
Inilah cara Anda membuat komponen ini langkah demi langkah.
Panduan Langkah demi Langkah 1. Siapkan HTML dan gaya dasar
Kita mulai dengan membuat struktur HTML minimal untuk kalender. Tata letaknya mencakup garis waktu dan wadah acara.
Tambahkan CSS dasar untuk menata kalender:
.kalender { tampilan: fleksibel; lebar: 500pk; margin: 20 pk otomatis; posisi: relatif; } .event { latar belakang: #039be5; batas: 1pk putih solid; radius perbatasan: 5pk; posisi: mutlak; ukuran kotak: kotak perbatasan; warna: putih; meluap: tersembunyi; bantalan: 3pk; } .calendar-time { perbatasan-kanan: 1pk solid #ccc; lebar: 100pk; } .calendar-timelist { gaya daftar: tidak ada; bantalan: 0; margin: 0; perataan teks: kanan; padding-kanan: 20pk; } .daftar waktu kalender li { tinggi: 60pk; ukuran kotak: kotak perbatasan; lebar: 100%; } .calendar-events { flex-grove: 1; posisi: relatif; } 2. Buat kelas JavaScript untuk kalender
Tentukan kelas Kalender untuk merangkum semua fungsi.
Konstruktor
Konstruktor menginisialisasi kalender dengan menampilkan garis waktu dan acara:
class Calendar { konstruktor(data) {// Merender garis waktu pada sumbu I this.renderTime(); // Peristiwa render memblokir this.renderEvents(data); } renderTime() { biarkan timeHTML = Arrai.from({ panjang: 24 }, (_, i) => `${this.to12HourFormat(i)}`).join(“”); document.getElementBiId(“timelist”).innerHTML = timeHTML; } renderEvents(data) { biarkan groupedEvents = this.groupEvents(data); biarkan eventData = ini.calculateEventStiles(groupedEvents); biarkan eventHTML = eventData .map( (e) => `
${e.title}${e.time}
` ) .join(“”); document.getElementBiId(“acara”).innerHTML = acaraHTML; } to12HourFormat(jam) { if (jam === 0) kembalikan “12 pagi”; if (jam < 12) mengembalikan `${jam} AM`; if (jam === 12) kembalikan "12 siang"; kembalikan `${jam - 12} di sore hari`; } } 3. Menangani peristiwa yang tumpang tindih dan pemosisian
Kita membutuhkan logika untuk menangani kejadian yang tumpang tindih. Hal ini dicapai dengan mengelompokkan dan menghitung posisi masing-masing.
Kelompokkan acara berdasarkan waktu mulai groupEvents(data) { let groups = (); data.forEach((event) => { biarkan jam = parseInt(event.start.split(“:”)(0), 10); if (!groups(hour)) groups(hour) = (); groups( sat).push(event); return groups; } Hitung gaya acara
Untuk setiap grup, hitung bagian atas, tinggi, lebar, dan sisi kiri acara berdasarkan waktu dan tumpang tindih.
HitungEventStiles(grup) { biarkan eventData = (); grup.forEach((grup) => { biarkan kolom = (); grup.forEach((acara) => { biarkan { mulai, akhir } = acara; biarkan (sh, sm) = mulai.split(“:”) .map(Nomor, em) = end.split(“:”).map(Nomor let top = sh * 60 + sm); Hitung durasi dalam menit cuti = kolom.findIndek((col) => col.end <= mulai if (kiri === -1) { kiri = kolom.panjang; kolom.push({ akhir }); else { kolom( kiri).end = akhir } eventData.push({ judul: acara.nama, waktu:); `${this.to12HourFormat(sh)} - ${this.to12HourFormat(eh)}`, atas, tinggi, kiri: (kiri * 100) / kolom.panjang, lebar: 100 / kolom.panjang, zIndex: kiri, }); kembalikan data peristiwa; } 4. Contoh data dan inisialisasi
Tentukan data acara Anda dan inisialisasi kalender:
const events = ( { nama: “Pertemuan dengan Don”, mulai: “09:00”, akhir: “10:30” }, { nama: “Sinkronisasi Proyek”, mulai: “10:00”, akhir: “11 :00” }, { nama: “Istirahat Makan Siang”, mulai: “12:00”, berakhir: “13:00” }, { nama: “Panggilan Klien”, mulai: “11:30”, berakhir: “12:30” }, ); kalender baru (acara); 5. Contoh kode lengkap
unity software
unity software information
software information
Informasi mengenai king slot
king selot
king slot
king slot
kingselot
pg king slot
merek 88
merek 88
mantan99
mantan88
maksimal88
maksimal88
liburan88
indodax88
indah99
indah88
ikn88
ibukota88
huawei88
hot888
hot88
dingin88
citra88
binance88
best99
best88
tradisional 88
tradisional 88
tombol88
tombol88
survey88
survey88
start88
start88
obatkuat88
obatkuat88
mcb88
mcb88
master99
master888
master88
live88
live88
libra88
kompresor88
kompresor88
kesimpulan88
kesimpulan88
kapasitor88
kapasitor88
kacamata88
kacamata88
jamu88
jamu88
jam88
jam88
follow88
follow88
dinamo88
dinamo88
baterai88
baterai88
miegacoan
miegacoan
gacoan
gacoan
website88
waweb88
waweb88
translate88
translate88
tempur888
tempur888
tambang99
tambang99
support88
support88
support88
sogoslot88
siap88
siap88
rog88
rog77
pt88
pt88
pln88
pln88
oke99
oke88
mining88
livechat88
livechat88
listrik88
listrik88
listrik88
freeport88
freeport88
free88
free88
domain88
domain88
dokter888
dokter888
bmkg88
bmkg88
asn88
merek 88 permainan paling top dan garansi imbal balik hasil besar bersama https://merek88.net/
merek 88 permainan paling top dan garansi imbal balik hasil besar bersama https://merek88.com/
mantan99 permainan paling top dan garansi imbal balik hasil besar bersama https://mantan99.asia/
mantan88 permainan paling top dan garansi imbal balik hasil besar bersama https://mantan88.asia/
maksimal88 permainan paling top dan garansi imbal balik hasil besar bersama https://maksimal88.biz/
maksimal88 permainan paling top dan garansi imbal balik hasil besar bersama https://maksimal88.asia/
liburan88 permainan paling top dan garansi imbal balik hasil besar bersama https://liburan88.com/
indodax88 permainan paling top dan garansi imbal balik hasil besar bersama https://indodax88.org/
indah99 permainan paling top dan garansi imbal balik hasil besar bersama https://indah99.asia/
indah88 permainan paling top dan garansi imbal balik hasil besar bersama https://indah88.asia/
ikn88 permainan paling top dan garansi imbal balik hasil besar bersama https://ikn88.asia/
ibukota88 permainan paling top dan garansi imbal balik hasil besar bersama https://ibukota88.com/
huawei88 permainan paling top dan garansi imbal balik hasil besar bersama https://huawei88.asia/
hot888 permainan paling top dan garansi imbal balik hasil besar bersama https://hot888.asia/
hot88 permainan paling top dan garansi imbal balik hasil besar bersama https://hot88.sale/
dingin88 permainan paling top dan garansi imbal balik hasil besar bersama https://dingin88.net/
citra88 permainan paling top dan garansi imbal balik hasil besar bersama https://citra88.asia/
binance88 permainan paling top dan garansi imbal balik hasil besar bersama https://binance88.net/
best99 permainan paling top dan garansi imbal balik hasil besar bersama https://best99.info/
best88 permainan paling top dan garansi imbal balik hasil besar bersama https://best88.asia/
tradisional 88 permainan paling top dan garansi imbal balik hasil besar bersama https://tradisional88.net/
tradisional 88 permainan paling top dan garansi imbal balik hasil besar bersama https://tradisional88.com/
tombol88 permainan paling top dan garansi imbal balik hasil besar bersama https://tombol88.org/
tombol88 permainan paling top dan garansi imbal balik hasil besar bersama https://tombol88.net/
survey88 permainan paling top dan garansi imbal balik hasil besar bersama https://survey88.net/
survey88 permainan paling top dan garansi imbal balik hasil besar bersama https://survey88.com/
start88 permainan paling top dan garansi imbal balik hasil besar bersama https://start88.org/
start88 permainan paling top dan garansi imbal balik hasil besar bersama https://start88.asia/
obatkuat88 permainan paling top dan garansi imbal balik hasil besar bersama https://obatkuat88.net/
obatkuat88 permainan paling top dan garansi imbal balik hasil besar bersama https://obatkuat88.com/
mcb88 permainan paling top dan garansi imbal balik hasil besar bersama https://mcb88.info/
mcb88 permainan paling top dan garansi imbal balik hasil besar bersama https://mcb88.asia/
master99 permainan paling top dan garansi imbal balik hasil besar bersama https://master99.biz/
master888 permainan paling top dan garansi imbal balik hasil besar bersama https://master888.asia/
master88 permainan paling top dan garansi imbal balik hasil besar bersama https://master88.asia/
live88 permainan paling top dan garansi imbal balik hasil besar bersama https://live88.bio/
live88 permainan paling top dan garansi imbal balik hasil besar bersama https://live88.asia/
libra88 permainan paling top dan garansi imbal balik hasil besar bersama https://libra88.net/
kompresor88 permainan paling top dan garansi imbal balik hasil besar bersama https://kompresor88.net/
kompresor88 permainan paling top dan garansi imbal balik hasil besar bersama https://kompresor88.com/
kesimpulan88 permainan paling top dan garansi imbal balik hasil besar bersama https://kesimpulan88.net/
kesimpulan88 permainan paling top dan garansi imbal balik hasil besar bersama https://kesimpulan88.com/
kapasitor88 permainan paling top dan garansi imbal balik hasil besar bersama https://kapasitor88.net/
kapasitor88 permainan paling top dan garansi imbal balik hasil besar bersama https://kapasitor88.com/
kacamata88 permainan paling top dan garansi imbal balik hasil besar bersama https://kacamata88.net/
kacamata88 permainan paling top dan garansi imbal balik hasil besar bersama https://kacamata88.com/
jamu88 permainan paling top dan garansi imbal balik hasil besar bersama https://jamu88.info/
jamu88 permainan paling top dan garansi imbal balik hasil besar bersama https://jamu88.asia/
jam88 permainan paling top dan garansi imbal balik hasil besar bersama https://jam88.info/
jam88 permainan paling top dan garansi imbal balik hasil besar bersama https://jam88.asia/
follow88 permainan paling top dan garansi imbal balik hasil besar bersama https://follow88.org/
follow88 permainan paling top dan garansi imbal balik hasil besar bersama https://follow88.net/
dinamo88 permainan paling top dan garansi imbal balik hasil besar bersama https://dinamo88.net/
dinamo88 permainan paling top dan garansi imbal balik hasil besar bersama https://dinamo88.info/
baterai88 permainan paling top dan garansi imbal balik hasil besar bersama https://baterai88.net/
baterai88 permainan paling top dan garansi imbal balik hasil besar bersama https://baterai88.com/
miegacoan permainan paling top dan garansi imbal balik hasil besar bersama https://miegacoan.life/
miegacoan permainan paling top dan garansi imbal balik hasil besar bersama https://miegacoan.asia/
gacoan permainan paling top dan garansi imbal balik hasil besar bersama https://gacoan.org/
gacoan permainan paling top dan garansi imbal balik hasil besar bersama https://gacoan.asia/
website88 permainan paling top dan garansi imbal balik hasil besar bersama https://website88.org/
waweb88 permainan paling top dan garansi imbal balik hasil besar bersama https://waweb88.net/
waweb88 permainan paling top dan garansi imbal balik hasil besar bersama https://waweb88.com/
translate88 permainan paling top dan garansi imbal balik hasil besar bersama https://translate88.net/
translate88 permainan paling top dan garansi imbal balik hasil besar bersama https://translate88.com/
tempur888 permainan paling top dan garansi imbal balik hasil besar bersama https://tempur888.info/
tempur888 permainan paling top dan garansi imbal balik hasil besar bersama https://tempur888.asia/
tambang99 permainan paling top dan garansi imbal balik hasil besar bersama https://tambang99.news/
tambang99 permainan paling top dan garansi imbal balik hasil besar bersama https://tambang99.asia/
support88 permainan paling top dan garansi imbal balik hasil besar bersama https://support88.org/
support88 permainan paling top dan garansi imbal balik hasil besar bersama https://support88.net/
support88 permainan paling top dan garansi imbal balik hasil besar bersama https://support88.asia/
sogoslot88 permainan paling top dan garansi imbal balik hasil besar bersama https://sogoslot88.asia/
siap88 permainan paling top dan garansi imbal balik hasil besar bersama https://siap88.news/
siap88 permainan paling top dan garansi imbal balik hasil besar bersama https://siap88.asia/
rog88 permainan paling top dan garansi imbal balik hasil besar bersama https://rog88.asia/
rog77 permainan paling top dan garansi imbal balik hasil besar bersama https://rog77.info/
pt88 permainan paling top dan garansi imbal balik hasil besar bersama https://pt88.info/
pt88 permainan paling top dan garansi imbal balik hasil besar bersama https://pt88.asia/
pln88 permainan paling top dan garansi imbal balik hasil besar bersama https://pln88.biz/
pln88 permainan paling top dan garansi imbal balik hasil besar bersama https://pln88.asia/
oke99 permainan paling top dan garansi imbal balik hasil besar bersama https://oke99.asia/
oke88 permainan paling top dan garansi imbal balik hasil besar bersama https://oke88.asia/
mining88 permainan paling top dan garansi imbal balik hasil besar bersama https://mining88.org/
livechat88 permainan paling top dan garansi imbal balik hasil besar bersama https://livechat88.info/
livechat88 permainan paling top dan garansi imbal balik hasil besar bersama https://livechat88.asia/
listrik88 permainan paling top dan garansi imbal balik hasil besar bersama https://listrik88.org/
listrik88 permainan paling top dan garansi imbal balik hasil besar bersama https://listrik88.info/
listrik88 permainan paling top dan garansi imbal balik hasil besar bersama https://listrik88.asia/
freeport88 permainan paling top dan garansi imbal balik hasil besar bersama https://freeport88.net/
freeport88 permainan paling top dan garansi imbal balik hasil besar bersama https://freeport88.com/
free88 permainan paling top dan garansi imbal balik hasil besar bersama https://free88.org/
free88 permainan paling top dan garansi imbal balik hasil besar bersama https://free88.asia/
domain88 permainan paling top dan garansi imbal balik hasil besar bersama https://domain88.org/
domain88 permainan paling top dan garansi imbal balik hasil besar bersama https://domain88.asia/
dokter888 permainan paling top dan garansi imbal balik hasil besar bersama https://dokter888.net/
dokter888 permainan paling top dan garansi imbal balik hasil besar bersama https://dokter888.asia/
bmkg88 permainan paling top dan garansi imbal balik hasil besar bersama https://bmkg88.net/
bmkg88 permainan paling top dan garansi imbal balik hasil besar bersama https://bmkg88.com/
asn88 permainan paling top dan garansi imbal balik hasil besar bersama https://asn88.org/
Informasi mengenai KING SLOT, Segera Daftar Bersama king selot terbaik dan terpercaya no satu di Indonesia. Boleh mendaftar melalui sini king slot serta memberikan hasil kembali yang paling tinggi saat sekarang ini hanyalah king slot paling gacor, gilak dan gaco saat sekarang di Indonesia melalui program return tinggi di kingselot serta pg king slot
slot demo gacor permainan paling top dan garansi imbal balik hasil besar bersama https://kdwapp.com/
akun demo slot gacor permainan paling top dan garansi imbal balik hasil besar bersama https://kdwapp.com/
akun slot demo gacor permainan paling top dan garansi imbal balik hasil besar bersama https://kdwapp.com/
akun demo slot pragmatic permainan paling top dan garansi imbal balik hasil besar bersama https://kdwapp.com/
akun slot demo pragmatic permainan paling top dan garansi imbal balik hasil besar bersama https://kdwapp.com/
akun slot demo permainan paling top dan garansi imbal balik hasil besar bersama https://kdwapp.com/
akun demo slot permainan paling top dan garansi imbal balik hasil besar bersama https://kdwapp.com/
slot demo gacor
akun demo slot gacor
akun slot demo gacor
akun demo slot pragmatic
akun slot demo pragmatic
akun slot demo
akun demo slot
slot demo gacor permainan paling top dan garansi imbal balik hasil besar bersama https://jebswagstore.com
akun demo slot gacor permainan paling top dan garansi imbal balik hasil besar bersama https://jebswagstore.com
akun slot demo gacor permainan paling top dan garansi imbal balik hasil besar bersama https://jebswagstore.com
akun demo slot pragmatic permainan paling top dan garansi imbal balik hasil besar bersama https://jebswagstore.com
akun slot demo pragmatic permainan paling top dan garansi imbal balik hasil besar bersama https://jebswagstore.com
akun slot demo permainan paling top dan garansi imbal balik hasil besar bersama https://jebswagstore.com
akun demo slot permainan paling top dan garansi imbal balik hasil besar bersama https://jebswagstore.com
slot demo gacor
akun demo slot gacor
akun slot demo gacor
akun demo slot pragmatic
akun slot demo pragmatic
akun slot demo
akun demo slot
slot demo gacor permainan paling top dan garansi imbal balik hasil besar bersama https://demoslotgacor.pro
akun demo slot gacor permainan paling top dan garansi imbal balik hasil besar bersama https://demoslotgacor.pro
akun slot demo gacor permainan paling top dan garansi imbal balik hasil besar bersama https://demoslotgacor.pro
akun demo slot pragmatic permainan paling top dan garansi imbal balik hasil besar bersama https://demoslotgacor.pro
akun slot demo pragmatic permainan paling top dan garansi imbal balik hasil besar bersama https://demoslotgacor.pro
akun slot demo permainan paling top dan garansi imbal balik hasil besar bersama https://demoslotgacor.pro
akun demo slot permainan paling top dan garansi imbal balik hasil besar bersama https://demoslotgacor.pro
slot demo gacor
akun demo slot gacor
akun slot demo gacor
akun demo slot pragmatic
akun slot demo pragmatic
akun slot demo
akun demo slot
slot demo gacor permainan paling top dan garansi imbal balik hasil besar bersama https://situsslotterbaru.net
akun demo slot gacor permainan paling top dan garansi imbal balik hasil besar bersama https://situsslotterbaru.net
akun slot demo gacor permainan paling top dan garansi imbal balik hasil besar bersama https://situsslotterbaru.net
akun demo slot pragmatic permainan paling top dan garansi imbal balik hasil besar bersama https://situsslotterbaru.net
akun slot demo pragmatic permainan paling top dan garansi imbal balik hasil besar bersama https://situsslotterbaru.net
akun slot demo permainan paling top dan garansi imbal balik hasil besar bersama https://situsslotterbaru.net
akun demo slot permainan paling top dan garansi imbal balik hasil besar bersama https://situsslotterbaru.net
slot demo gacor
akun demo slot gacor
akun slot demo gacor
akun demo slot pragmatic
akun slot demo pragmatic
akun slot demo
akun demo slot
situs slot terbaru
slot terbaru