美文网首页
pc页面切换皮肤

pc页面切换皮肤

作者: Aklan | 来源:发表于2020-01-14 15:59 被阅读0次

    js代码 设置data-theme属性

    <script>
          window.setTheme = function(theme) {
            document.documentElement.setAttribute('data-theme', theme)
          }
          let theme = localStorage.getItem('theme') || 'theme-blue'
          window.setTheme(theme)
    </script>
    

    切换时

    // 切换主题
    changeTheme(value) {
          window.setTheme(value)
          localStorage.setItem('theme', value)
    }
    

    css 代码

    /*
    * theme.scss
    */
    // 经典蓝
    $theme-blue: (
            primary-color: #3AAAFB,
            primary-color-s: #0D89E2,
            primary-color-l: #0d89e280
    );
    // 蓝莓黑
    $theme-black: (
            primary-color: #2c3d61,
            primary-color-s: #273554,
            primary-color-l: #27355480
    );
    $theme-green: (
            primary-color: #00b791,
            primary-color-s: #5adf96,
            primary-color-l: #30ba85
    );
    // 定义映射集合
    $themes: (
            theme-blue: $theme-blue,
            theme-black: $theme-black,
            theme-green: $theme-green
    );
    
    /*
      $type(String): 颜色类型,可选值 primary-color, primary-color-s, primary-color-l
      $bg-color(Boolean): 背景色使用主题色
      $font-color(Boolean): 文字颜色使用主题色
      $border-color(Boolean): 边框颜色使用主题色
    */
    @mixin theme-color($type, $bg-color: false, $font-color: false, $border-color: false) {
      @each $themename , $theme in $themes {
        [data-theme = '#{$themename}'] & {
          @if $bg-color == true {
            background: map-get($theme, $type);
          }
          @if $font-color == true {
            color: map-get($theme, $type)
          }
          @if $border-color == true {
            border-color: map-get($theme, $type);
          }
        }
      }
    }
    
    

    相关文章

      网友评论

          本文标题:pc页面切换皮肤

          本文链接:https://www.haomeiwen.com/subject/vnraactx.html