back to top
10.6 C
New York

Membuat komponen mirip Google Kalender menggunakan JavaScript biasa

Published:

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

PANEN96 promo

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

Artikel terkait

Artikel Terbaru