找回密码
 注册免广告
搜索
长桥证券羊毛 📈熊猫速汇 50 元券 🔥ByBit 交易所羊毛🐑MyFin 5 欧元羊毛 🔥
人人必备的 Wise 💳英、德、香港转运 📦,送 $25币安手续费 9 折Ledger 硬件钱包送比特币
最便宜的 eSIM 流量手机号 📱数字货币银行卡,注册送 7 美元💲IBKR开户送 $1000 股票 
查看: 121|回复: 1

[其它] 网页增加亮暗主题切换按钮的方式

[复制链接]

1031

主题

8642

回帖

2万

积分

版主

积分
20751
HelloWorld 发表于 昨天 19:08 | 显示全部楼层 |阅读模式

注册免广告

您需要 登录 才可以下载或查看,没有账号?注册免广告

×
以 discuz 论坛为例:

1. 后台 -> 界面 -> 导航设置 -> 顶部导航,添加新导航,名称:暗色主题,链接:#switch-theme

2. 后台 -> 全局 -> SEO设置 -> 其它 -> 其他头部信息,添加如下代码:
  1. <!-- Dark mode switcher -->
  2. <script>
  3.   if (localStorage.getItem('darkEnabled') === 'true') {
  4.     document.documentElement.style.backgroundColor = '#121212';
  5.     document.documentElement.style.color = '#e0e0e0';
  6.   }
  7.   (function() {
  8.       var darkScript = document.createElement('script');
  9.       darkScript.src = 'https://cdnjs.cloudflare.com/ajax/libs/darkreader/4.9.58/darkreader.min.js';
  10.       darkScript.onload = function() {
  11.           var darkEnabled = localStorage.getItem('darkEnabled') === 'true';
  12.           if(darkEnabled) {
  13.               DarkReader.enable({
  14.                   brightness: 100,
  15.                   contrast: 90,
  16.                   sepia: 10
  17.               });
  18.           }
  19.           function setupSwitchTheme() {
  20.               var switchThemeLink = document.querySelector('a[href="#switch-theme"]');
  21.               if (switchThemeLink) {
  22.                   switchThemeLink.textContent = darkEnabled ? '亮色主题' : '暗色主题';
  23.                   switchThemeLink.addEventListener('click', function(e) {
  24.                       e.preventDefault();
  25.                       if(darkEnabled) {
  26.                           DarkReader.disable();
  27.                           switchThemeLink.textContent = '暗色主题';
  28.                           darkEnabled = false;
  29.                           localStorage.setItem('darkEnabled', 'false');
  30.                       } else {
  31.                           DarkReader.enable({
  32.                               brightness: 100,
  33.                               contrast: 90,
  34.                               sepia: 10
  35.                           });
  36.                           switchThemeLink.textContent = '亮色主题';
  37.                           darkEnabled = true;
  38.                           localStorage.setItem('darkEnabled', 'true');
  39.                       }
  40.                   });
  41.               }
  42.           }
  43.           if(document.readyState === 'loading'){
  44.               document.addEventListener('DOMContentLoaded', setupSwitchTheme);
  45.           } else {
  46.               setupSwitchTheme();
  47.           }
  48.       };
  49.       document.head.appendChild(darkScript);
  50.   })();
  51. </script>
复制代码
这个方法适用于任何不支持暗色主题的亮色网站,只需在自己网页增加 href 为 #switch-theme 的 a 标签,然后将上述代码放到网页的 head 标签内即可

6

主题

779

回帖

2054

积分

金牌会员

积分
2054
lilee 发表于 昨天 20:19 | 显示全部楼层
不错
总算有暗黑模式了
如果帖子/回帖帮助到你,请给作者评分/点赞
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册免广告

本版积分规则

排行榜|意见建议|数字居民论坛

GMT+8, 2025-3-15 09:53

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

快速回复 返回顶部 返回列表