当前位置:首页 > 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动态添加或移除这些类来改变样式。

用js实现换肤

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

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

使用localStorage保存主题偏好

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

用js实现换肤

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,可以实现根据系统偏好自动切换主题。

@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实现列表

使用 JavaScript 实现列表 JavaScript 提供了多种方式来实现列表功能,包括数组操作、DOM 元素动态生成等。以下是几种常见的实现方法: 使用数组存储列表数据 数组是 JavaSc…

js实现游标

js实现游标

使用JavaScript实现游标 在JavaScript中,可以通过操作DOM元素的cursor样式属性来实现自定义游标效果。以下是几种常见的实现方法: 修改默认鼠标指针样式 通过CSS的curso…

js实现搜索

js实现搜索

实现搜索功能的方法 在JavaScript中实现搜索功能可以通过多种方式完成,以下是几种常见的实现方法。 使用数组的filter方法 通过数组的filter方法可以筛选出符合条件的数据项。假设有一个…

js进度条实现

js进度条实现

使用HTML和CSS创建基础结构 在HTML中创建一个容器元素用于显示进度条,通常使用<div>元素。CSS用于设置进度条的样式,包括宽度、高度、颜色和圆角等属性。 <div cl…

js实现复制功能实现

js实现复制功能实现

使用document.execCommand方法(传统方式,已逐渐被弃用) 传统方式通过document.execCommand('copy')实现复制功能,需先选中文本。以下是一个完整示例: fu…

实现图片旋转js

实现图片旋转js

使用CSS transform属性旋转图片 通过CSS的transform属性可以轻松实现图片旋转。以下是一个简单的示例代码: const image = document.getElement…