当前位置:首页 > JavaScript

用js实现换肤

2026-02-02 23:29:48JavaScript

使用CSS变量实现换肤

通过CSS变量(Custom Properties)可以轻松实现换肤功能。定义不同主题的颜色变量,通过JavaScript切换这些变量。

:root {
  --primary-color: #3498db;
  --secondary-color: #2ecc71;
  --text-color: #333;
}

.dark-theme {
  --primary-color: #2980b9;
  --secondary-color: #27ae60;
  --text-color: #fff;
}
function toggleTheme() {
  document.body.classList.toggle('dark-theme');
}

使用类名切换主题

为不同主题创建独立的CSS类,通过JavaScript动态添加或移除这些类来改变样式。

.light-theme {
  background-color: #fff;
  color: #333;
}

.dark-theme {
  background-color: #333;
  color: #fff;
}
function switchTheme(themeName) {
  document.body.className = themeName;
}

使用localStorage保存主题偏好

结合localStorage可以实现用户选择的主题持久化,下次访问时自动应用上次选择的主题。

function setTheme(themeName) {
  localStorage.setItem('theme', themeName);
  document.body.className = themeName;
}

function loadTheme() {
  const theme = localStorage.getItem('theme');
  if (theme) {
    setTheme(theme);
  }
}

// 页面加载时应用保存的主题
window.addEventListener('DOMContentLoaded', loadTheme);

动态加载CSS文件

对于复杂的主题系统,可以创建不同的CSS文件,通过JavaScript动态加载对应的样式表。

function loadThemeCSS(themeName) {
  const link = document.createElement('link');
  link.rel = 'stylesheet';
  link.href = `themes/${themeName}.css`;
  document.head.appendChild(link);
}

响应式主题切换

结合CSS媒体查询和JavaScript,可以实现根据系统偏好自动切换主题。

用js实现换肤

@media (prefers-color-scheme: dark) {
  :root {
    --primary-color: #2980b9;
    --secondary-color: #27ae60;
    --text-color: #fff;
  }
}
function detectSystemTheme() {
  const darkMode = window.matchMedia('(prefers-color-scheme: dark)').matches;
  return darkMode ? 'dark' : 'light';
}

function applySystemTheme() {
  const theme = detectSystemTheme();
  setTheme(theme);
}

window.matchMedia('(prefers-color-scheme: dark)').addListener(applySystemTheme);

标签: 换肤js
分享给朋友:

相关文章

js实现密码

js实现密码

密码强度验证 使用正则表达式验证密码强度是一种常见方法。以下代码检查密码是否包含大小写字母、数字和特殊字符,且长度至少为8位: function checkPasswordStrength(pass…

js实现文字滚动

js实现文字滚动

实现文字滚动的几种方法 使用CSS动画实现滚动 通过CSS的@keyframes和transform属性可以实现平滑的文字滚动效果。 <style> .scroll-text { w…

js验证码的实现

js验证码的实现

验证码的基本实现原理 验证码(CAPTCHA)的核心目标是区分人类用户和自动化程序。JavaScript可用于生成或验证客户端验证码,但需注意纯前端验证可能被绕过,通常需结合后端验证。 纯前端验证码…

js实现按钮点击

js实现按钮点击

实现按钮点击的JavaScript方法 HTML按钮元素 在HTML中创建按钮元素,为其添加id或class以便JavaScript选择: <button id="myButton">点…

js实现原理

js实现原理

JavaScript 实现原理 JavaScript 是一种解释型语言,其实现原理涉及多个核心组件和运行机制,包括引擎、运行时环境、事件循环等。 引擎与解释执行 现代 JavaScript 引擎(如…

js实现递归

js实现递归

递归的基本概念 递归是一种通过函数调用自身来解决问题的方法。在JavaScript中,递归通常用于处理具有重复子问题或分治结构的数据,例如树形结构、阶乘计算等。 递归的实现要点 基线条件(Base…