前端实现界面切换主题代码示例

 更新时间:2025年02月26日 10:39:43   作者:江户川亮仔  
这篇文章主要介绍了前端实现界面切换主题的相关资料,文中介绍了两种方法,通过link标签的rel属性和通过变量设置,前者适用于确定的主题样式切换,后者则适用于在拾色器中任意选择颜色更换主题的情况,需要的朋友可以参考下

 样式切换主题

  • 常用的主题切换实现方式之一,就是通过 link 标签的 rel 属性来实现的
  • 当 rel 标签的值是 alternate,就代表该样式是可以替换的
  • title 属性要加就全加上或者全不加,因为 title 会导致系统直接识别成样式文件,意思就是如果两个样式文件,第一个没有加该属性,第二个加了该属性,系统会直接使用有该属性的样式进行载入
  • 假如此时页面有三个样式文件,分别是:default.cssdark.csslight.css
  • 可以通过激活可替换样式即可实现主题的切换,适合确定的主题样式之间切换
/* default.css */
body {
    background-color: white;
}

/* dark.css */
body {
    background-color: black;
}

/* light.css */
body {
    background-color: lightcyan;
}
<!DOCTYPE html>
<html lang="en" class="dark">

<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>主题切换方案一</title>
    <link type="text/css" href="css/default.css" rel="external nofollow"  rel="stylesheet" title="default">
    <link type="text/css" href="css/dark.css" rel="external nofollow"  rel="stylesheet alternate" title="dark">
    <link type="text/css" href="css/light.css" rel="external nofollow"  rel="stylesheet alternate" title="light">
</head>

<body>
    <select name="主题" onchange="changeTheme(this.value)">
        <option value="default">默认</option>
        <option value="dark">夜晚</option>
        <option value="light">白天</option>
    </select>
</body>

<script src="static/js/jquery.min.js"></script>
<script>
    function changeTheme(theme) {
        $('link').attr('disabled', true)
        $(`link[title=${theme}]`).attr('disabled', false)
    }
</script>

</html>

变量设置主题

  • 上面是主题样式文件之间的切换,对于那些在拾色器中任意选择颜色更换主题的就不大适用了
  • 这时候切换主题更适合通过变量去设置系统的主题
  • 现在 :root 中定义全局变量,然后通过 var() 在样式中去使用变量,然后通过去 setProperty 修改该变量值即可更换主题样式了
<!DOCTYPE html>
<html lang="en" class="dark">

<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>主题切换方案二</title>
    <style>
        :root {
            --theme-color: #333333;
        }

        html {
            background-color: var(--theme-color, "#E65A65");
        }
    </style>
</head>

<body>
    <select name="主题" onchange="changeTheme(this.value)">
        <option value="#333333">默认</option>
        <option value="#1a7efc">蓝色</option>
        <option value="#16d46b">绿色</option>
        <option value="#f1ce6b">黄色</option>
    </select>
</body>

<script>
    function changeTheme(theme) {
        document.documentElement.style.setProperty('--theme-color', theme)
    }
</script>

</html>

总结 

到此这篇关于前端实现界面切换主题的文章就介绍到这了,更多相关前端界面切换主题内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • 微信小程序进入广告实现代码实例

    微信小程序进入广告实现代码实例

    这篇文章主要介绍了微信小程序进入广告实现代码实例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2019-09-09
  • JS完整获取IE浏览器信息包括类型、版本、语言等等

    JS完整获取IE浏览器信息包括类型、版本、语言等等

    这篇文章主要介绍了JS如何完整获取IE浏览器信息包括类型、版本、语言等等,需要的朋友可以参考下
    2014-05-05
  • NestJs 静态目录配置详解

    NestJs 静态目录配置详解

    这篇文章主要介绍了NestJs 静态目录配置,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2019-03-03
  • js操作CheckBoxList实现全选/反选(在客服端完成)

    js操作CheckBoxList实现全选/反选(在客服端完成)

    对于CheckBoxList控件来说,一方面要实现大量数据在服务器端的绑定工作,另一方面往往要求实现全选、反选等功能,接下来将介绍js操作CheckBoxList实现全选/反选,感兴趣的朋友可以了解下,或许对你有所帮助
    2013-02-02
  • js对url进行编码解码的三种方式总结

    js对url进行编码解码的三种方式总结

    为一个字符串进行URL编码很容易,只需要调用encodeURI,传入要编码的字符串即可,而且实现的方法不止这一个,下面这篇文章主要给大家介绍了关于js对url进行编码解码的三种方式,需要的朋友可以参考下
    2023-02-02
  • JS实现的文字与图片定时切换效果代码

    JS实现的文字与图片定时切换效果代码

    这篇文章主要介绍了JS实现的文字与图片定时切换效果代码,可实现定时切换及鼠标点击切换两种效果,涉及JavaScript鼠标事件控制页面样式的相关技巧,需要的朋友可以参考下
    2015-10-10
  • 兼容IE和Firefox火狐的上下、左右循环无间断滚动JS代码

    兼容IE和Firefox火狐的上下、左右循环无间断滚动JS代码

    html里的marqueen也能实现内容的滚动,但滚动是间断的,运用JavaScript可以使这一问题得到改观,实现无间断的滚动,让页面看起来更美观
    2013-04-04
  • 在js代码拼接dom对象到页面上去的模板总结(必看)

    在js代码拼接dom对象到页面上去的模板总结(必看)

    下面小编就为大家带来一篇在js代码拼接dom对象到页面上去的模板总结(必看)。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-02-02
  • JavaScript通过改变文字透明度实现的文字闪烁效果实例

    JavaScript通过改变文字透明度实现的文字闪烁效果实例

    这篇文章主要介绍了JavaScript通过改变文字透明度实现的文字闪烁效果,结合完整实例形式分析了javascript基于定时器周期性动态修改页面元素属性的相关操作技巧,需要的朋友可以参考下
    2017-04-04
  • 分享10个常见的JavaScript前端手写功能

    分享10个常见的JavaScript前端手写功能

    这篇文章主要分享10个常见的前端手写功能,防抖、节流、深拷贝、异步控制并发数、继承等功能技巧,具有一定的参考价值,需要的小伙伴可以参考一下
    2022-02-02

最新评论