Menu
CoddyTech

שמירת בחירת ערכת הנושא

חלק מהיחידה JavaScript בפעולה במסלול ה-HTML של Coddy. שיעור 17 מתוך 27.

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

ההיגיון הוא:

  1. כשהמשתמש מחליף את ערכת העיצוב, יש לשמור את ערכת העיצוב הנוכחית ב-localStorage.
  2. כשהדף נטען, יש לבדוק את localStorage ולהחיל אוטומטית את ערכת העיצוב שנשמרה.

HTML:

<button id="themeToggle">Toggle Theme</button>

CSS:

body.dark-mode {
  background-color: #222;
  color: #fff;
}

הקוד הזה בודק אם המשתמש שמר בעבר ערכת נושא כהה ב־localStorage ומחיל אותה כשהדף נטען.

כאשר לוחצים על הכפתור, הוא מפעיל או מכבה את המצב הכהה בדף ואז מעדכן את localStorage כדי שההעדפה תישמר לביקור הבא

const button = document.getElementById("themeToggle");

// החל את ערכת הנושא השמורה בעת טעינת הדף
if (localStorage.getItem("theme") === "dark") {
  document.body.classList.add("dark-mode");
}

button.addEventListener("click", function () {
  document.body.classList.toggle("dark-mode");

  // שמור את ההעדפה
  if (document.body.classList.contains("dark-mode")) {
    localStorage.setItem("theme", "dark");
  } else {
    localStorage.setItem("theme", "light");
  }
});

כך ההעדפה של המשתמש נשמרת בין ביקורים באתר שלך.

challenge icon

אתגר

קל

צרו מתג ערכת נושא שזוכר את העדפת המשתמש.

שלבים:

  1. בעת טעינת הדף: בדקו אם המשתמש בחר בעבר במצב כהה
    1. אם "dark" שמור ב-localStorage, הוסיפו לגוף הדף את המחלקה "dark-mode"
  2. בעת לחיצה על כפתור המתג: עברו בין ערכות נושא בהירות וכהות
    1. החליפו את המחלקה "dark-mode" ברכיב body
    2. שמרו את ערכת הנושא הנוכחית ב-localStorage

נסו בעצמכם

<!DOCTYPE html>
<html>
<head>
  <title>Theme Preference Example</title>
  <link rel="stylesheet" href="style.css">
</head>
<body>
  <button id="themeToggle">Toggle Theme</button>

  <h1>Saving Theme Preference</h1>
  <p>
    Try switching between light and dark mode using the button above.  
    Refresh the page — your choice is remembered thanks to <strong>localStorage</strong>.
  </p>
  <script src="script.js"></script>
</body>
</html>
quiz iconבחנו את עצמכם

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

כל השיעורים ביחידה JavaScript בפעולה

תרגלו בעצמכם: Web אונליין