בניית רכיב דומה ליומן של Google באמצעות JavaScript פשוט

לוחות שנה הפכו לחלק בלתי ניתן להימנע ממנו ביישומי האינטרנט המודרניים מאחר שהם מאפשרים למשתמשים לארגן, לתזמן ולעקוב אחר אירועים בצורה חלקה. בין אם אתה בונה כלי לניהול פרויקטים, אפליקציה לתזמון אירועים או חבילת יעילות אישית, רכיב לוח שנה מותאם אישית יכול לשפר מאוד את חוויית המשתמש. בעוד קיימות ספריות רבות לוח שנה מוכנות, יצירת רכיב משלך יכולה לספק את הגמישות לפגוש דרישות עיצוב ופונקציונליות ספציפיות.

במדריך זה, נבדוק כיצד לבנות רכיב דומה ללוח שנה של Google באמצעות JavaScript. עד סיום המדריך הזה, תהיה לך לוח שנה מאושר עם תכונות אינטראקטיביות והבנה עמוקה יותר של כיצד לבנות רכיבים שניתן להשתמש בהם שוב ליישומי האינטרנט שלך. בין אם אתה מפתח שמחפש להוסיף טאץ' ייחודי לפרויקט שלך או מישהו שמתרגש ללמוד את הפעולה הפנימית של פונקציות של לוח שנה, מדריך צעד אחר צעד זה יהיה יקר.

סקירה

ניצור רכיב לוח שנה עם התכונות הבאות:

  • ציר זמן: ציר אנכי מ-12 בלילה עד 11 בלילה.
  • בלוקי אירועים: אירועים שמוצגים דינמייתי עם מיקום וגובה תקין בהתאם לזמני ההתחלה והסיום שלהם.
  • טיפול בהתנגשויות: אירועים שנתקלים בהתנגשויות בזמן יופיעו ציד אחד לציד.

הנה איך ניתן ליצור את הרכיב הזה צעד אחר צעד.

מדריך צעד אחר צעד

1. להגדיר את ה-HTML ואת הסגנונות הבסיסיים

אנו מתחילים על ידי יצירת מבנה HTML מינימלי עבור לוח השנה. הפריסה כוללת ציר זמן ומיכל עבור אירועים.

HTML

 

הוספת CSS בסיסי עבור עיצוב הלוח:

CSS

 

2. צירוף מחלקת ה-JavaScript עבור הלוח

הגדרת מחלקת Calendar לאיחסון כל הפונקציות.

בונה

הבונה מאתחל את הלוח על ידי עיצוב הציר והאירועים:

JavaScript

 

3. טיפול בחפיפות באירועים ומיקומם

אנו זקוקים ללוגיקה לטיפול באירועים המתחפפים. מתוך כך אנו מקבצים ומחשבים מיקומים מתאימים.

קיבוץ אירועים לפי שעת ההתחלה

JavaScript

 

חישוב סגנונות האירוע

עבור כל קבוצה, נחשב את הסגנונות של האירוע עבור top, height, width, ו־left בהתאם לזמן ולהתקנטות.

JavaScript

 

4. דוגמה לנתונים ואתחול

הגדרת נתוני האירוע ואתחול של Calendar:

JavaScript

 

5. דוגמה מלאה לקוד

HTML

 

מסקנה

הגישה הזו משתמשת ב-JavaScript רגיל כדי ליצור באופן דינמי רכיב דומה ליומן של Google. על ידי פיצול הבעיה לזמן הצגה, קיבוץ אירועים, וחישוב סגנונות, ניתן לבנות רכיבים אינטראקטיביים ונפחיתים. ניתן לנסח את הקוד ולהוסיף תכונות כגון אירועים שניתנים לגרירה או עיצוב נוסף!

Source:
https://dzone.com/articles/building-a-google-calendar-like-component-using-javascript