שמירת בחירת ערכת הנושא
חלק מהיחידה JavaScript בפעולה במסלול ה-HTML של Coddy. שיעור 17 מתוך 27.
כשמשתמשים עוברים בין ערכות נושא בהירות וכהות, אנחנו רוצים שהאתר יזכור את הבחירה שלהם.
לשם כך, אנחנו משתמשים ב־<strong>localStorage</strong> ב־JavaScript. הוא מאחסן נתונים בדפדפן, והנתונים האלה נשארים גם לאחר רענון הדף או סגירת הדפדפן.
ההיגיון הוא:
- כשהמשתמש מחליף את ערכת הנושא, יש לשמור את ערכת הנושא הנוכחית ב-
localStorage. - כשהדף נטען, יש לבדוק את
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");
}
});כך ההעדפה של המשתמש נשמרת גם בביקורים חוזרים באתר שלך.
אתגר
קלצור מתג ערכת נושא שזוכר את העדפת המשתמש.
שלבים:
- בעת טעינת הדף: בדוק אם המשתמש בחר בעבר במצב כהה
- אם "dark" שמור ב-localStorage, הוסף את המחלקה "dark-mode" ל-body
- בעת לחיצה על כפתור המתג: עבור בין ערכות נושא בהירות וכהות
- החלף את המחלקה "dark-mode" ברכיב body
- שמור את ערכת הנושא הנוכחית ב-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>
השיעור הזה כולל חידון קצר. התחילו את השיעור כדי לענות עליו ולעקוב אחרי ההתקדמות.
כל השיעורים ביחידה JavaScript בפעולה
תרגלו בעצמכם: Web אונליין