שמירת בחירת ערכת הנושא
חלק מהיחידה JavaScript בפעולה במסלול ה-HTML של Coddy. שיעור 17 מתוך 27.
כשמשתמשים עוברים בין ערכות נושא בהירות וכהות, אנחנו רוצים שהאתר יזכור את הבחירה שלהם.
לשם כך, אנחנו משתמשים ב־localStorage ב־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"
- בעת לחיצה על כפתור המתג: עברו בין ערכות נושא בהירות וכהות
- החליפו את המחלקה "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 אונליין