Menu
Coddy logo textTech

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

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

כשמשתמשים עוברים בין ערכות נושא בהירות וכהות, אנחנו רוצים שהאתר יזכור את הבחירה שלהם.
לשם כך, אנחנו משתמשים ב־<strong>localStorage</strong> ב־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" ל-body
  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 אונליין