JavaScript: Little Codes
Select Theme: Color
Code:
<div class="js-resultbox">
<label for="theme">Select theme: </label>
<select id="theme">
<option value="default">Default</option>
<option value="baby">Baby</option>
<option value="unicorn">Unicorn</option>
<option value="fox">Fox</option>
<option value="light">Light</option>
<option value="dark">Dark</option>
</select>
</div>
Script 2: Handler function written separately
<script>
// Function for capturing user's preference
function captureTheme () {
switch (document.querySelector("#theme").value) {
case "baby":
changeTheme ("cadetblue", "mistyrose");
break;
case "unicorn":
changeTheme ("purple", "lightyellow");
break;
case "fox":
changeTheme ("white", "orange");
break;
case "light":
changeTheme ("black", "whitesmoke");
break;
case "dark":
changeTheme ("white", "black");
break;
case "default":
changeTheme(null, null);
break;
}
}
// Function for changing theme
function changeTheme (textColor, backColor) {
document.querySelector("html").style.color = textColor;
document.querySelector("html").style.backgroundColor = backColor;
}
// Capture user input
theme.addEventListener("change", captureTheme);
</script>
SCRIPT 1: Handler function written inside addEvenListener statement
<script>
// Function for changing theme
function changeTheme (textColor, backColor) {
document.querySelector("html").style.color = textColor;
document.querySelector("html").style.backgroundColor = backColor;
}
// Capture user input
theme.addEventListener("change", () => {
switch (document.querySelector("#theme").value) {
case "baby":
changeTheme ("cadetblue", "mistyrose");
break;
case "unicorn":
changeTheme ("purple", "lightyellow");
break;
case "fox":
changeTheme ("white", "orange");
break;
case "light":
changeTheme ("black", "whitesmoke");
break;
case "dark":
changeTheme ("white", "black");
break;
case "default":
changeTheme(null, null);
break;
}
});
<script>