微信小程序自定义主题颜色【状态栏tab样式同步更改】

2023-10-27

 此功能使用js控制变量 调整颜色值,赋值给css颜色达到切换自定义颜色效果


1.创建公共样式userStyle.js文件,通过定义style1和style2来控制全局颜色改变。

注意:颜色值务必为十六进制,避免API不兼容颜色

// userStyle.js

let style1="#17d56b"  //绿色
let style2="#fb1238"  //红色

let color=style1  //绑定公共样式的变量

export const userColor = {
  homeColor:
  '--textColor:'+color+';' +
  '--textColor1:'+color+';'
  ,
  ztlStyle:color
}    //分别导出  页面引入时需{}解构


//--textColor 必须为--开头,否则不可使用

2.在index.js中引入userColor并放入data中。

打印userColor    

// index.js
import {userColor} from '../../utils/userStyle'

Page({

  data: {
    userColor:userColor,  //打印输出 {homeColor: "--textColor:#17d56b;-- 
     //textColor1:#17d56b;", ztlStyle: "#17d56b"}
   },

  //生命周期回调—监听页面初次渲染完成
  onReady(){

    //设置页面导航条颜色
    wx.setNavigationBarColor({    
      frontColor: '#ffffff', // 不可为空   前景颜色值,包括按钮、标题、状态栏的颜色,仅支持 
    //#ffffff 和 #000000
      backgroundColor: userColor.ztlStyle, // 不可为空  背景颜色值,有效值为十六进制颜色
    })

  }
})

3.index.wxml中将变量放入Style中。 style="{{userColor.homeColor}}",把变量绑定到了页面顶级元素上。

<!--index.wxml-->

<view class="container" style="{{userColor.homeColor}}">
  <view class="userinfo">liberty </view>
  <view class="usermotto">holle word</view>
</view>

4./**index.wxss**/     将--textColor

/**index.wxss**/

.userinfo {
  display: flex;
  flex-direction: column;
  align-items: center;
  color:var(--textColor);  //绑定自定义的颜色
}

.usermotto {
  color:var(--textColor);  //绑定自定义的颜色
  margin-top: 200px;
}

5.app.js   这一步用于更改tabbar文字颜色  通过调用微信官方API   wx.setTabBarStyle 实现

// app.js
import {userColor} from './utils/userStyle'

App({
  onLaunch() {   //加载完成小程序只会执行一次

    wx.setTabBarStyle({
      color: userColor.ztlStyle,   //tab 上的文字默认颜色,HexColor
      selectedColor: '#00FF00',   //tab 上的文字选中时的颜色,HexColor
      // backgroundColor: '#0000FF',  //tab的背景颜色,HexColor
      borderStyle: 'white'     //tabBar上边框的颜色, 仅支持 black/white
    })

  }
 })



效果。

更改主题颜色     由style1  变为  style2 

// userStyle.js

let style1="#17d56b"  //绿色
let style2="#fb1238"  //红色
 
let color=style2  //绑定公共样式的变量  由style1  变为  style2    

export const userColor = {
  homeColor:
  '--textColor:'+color+';' +
  '--textColor1:'+color+';'
  ,
  ztlStyle:color
}    //分别导出  页面引入时需{}解构

效果。

!!!


动态切换可以在 userStyle.js 中添加网络请求,通过判断后台返回的用户类型切换不同的颜色,或直接后端返回颜色值

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

微信小程序自定义主题颜色【状态栏tab样式同步更改】 的相关文章

  • 在 CSS 中实现 50/50 背景且无重叠

    我尝试创建一个带有两个背景图像的 div 一个在上半部分 一个在底部 如下所示 在此处输入图像描述 https i stack imgur com IPm8L png https i stack imgur com ezu9z png 然而
  • jquery覆盖加载栏div

    所以我有一个数据表 并且我正在使用 ajax 获取数据 当检索数据时 表中的数据消失并出现一个小的加载圆圈 我希望数据保留 我知道如何做到这一点 并且加载圆圈出现在表格的中心 不一定是垂直的 至少是水平的 以及稍微透明的背景阻挡稍微超出表格
  • iPhone 上的 Chrome 溢出空白页面上的内容(仅在新选项卡上,而不是重新加载)

    在 iOS Chrome 上 正文会在没有内容的新选项卡或页面上溢出 但如果重新加载页面 问题就会得到解决 它会给位于底部的任何元素 绝对或固定 带来问题 这是重现问题的代码
  • 设置overflow-y可见,而overflow-x为auto,以便内容可以垂直溢出父容器

    我在用着position absolute and position relative如果将其父级悬停在图像上 则在图像上显示文本 文本和图像父 div 所在的容器设置为overflow x auto 使其具有水平滚动条 我想要看起来垂直溢
  • 单击按钮重复动画

    我想每次单击按钮时都重复动画 我尝试做某事像这样 https jsfiddle net 91raod7e const dist document querySelector dist document querySelector butto
  • 将 html 转换为 pdf 时防止表格单元格跨页破坏

    使用 Google Apps 脚本 我有一个 html 模板 我填写该模板 然后以 pdf 形式发送 通过传真和 或电子邮件 该模板包括一个带有问题 答案的两列表格 如果行数足够多 表格会在pdf中跨页分页 并且分页符通常发生在单元格的中间
  • Li向左浮动,长度动态:最后一行无边框底部

    情况如下 https jsfiddle net rpepf9xs https jsfiddle net rpepf9xs 我想用选择器 nth last child 删除边框底部 但是 如果列表中只有8个 li 则会出现如下错误 ul di
  • 如何观察包含许多 sass 文件的整个目录/文件夹的变化

    我如何跟踪包含许多 sass 文件的整个目录的更改 我正在使用以下命令来观察 sass 的变化 file sass watch style scss style css 但是如何观察包含许多 sass 文件的整个目录 文件夹的变化 只需使用
  • 导航栏折叠在 Bootstrap 中不起作用

    Bhanu pratap 解决了这个问题 在这个问题的末尾检查一下 我一直在遵循旧的路线来构建导航栏折叠 三明治 问题是课程中的页面顶部似乎有一个黑条 并且缩小页面时会出现导航栏 对我来说 我只需在左侧找到一个按钮 另外 当我缩小页面时 我
  • 如何仅使用CSS设置某个角的边框半径

    如上所示 我可以只给顶部部分而不给底部提供半径 或者有时给底部而不是顶部提供半径吗 有没有办法只给一个角提供边界半径 Like border radius top left top right bottom right bottom lef
  • IE8 忽略 td 宽度,适用于 IE7

    有一张表看起来像这样 table width 100 tr td td tr tr td style width 201px td td style width 100 td tr table 在除 IE8 之外的每个浏览器 包括 IE7
  • 如何在表格的 tbody/thead 部分周围创建边框?

    我正在尝试创建一个包含表格数据的页面 该页面必须显示为多个表格 然而 我有两个相互冲突的要求需要解决 每个表格周围都必须有边框 每个表格的列宽必须能够根据内容重新调整大小 但是 所有表中的列宽必须一致 即列的大小基于所有表中该列中最大的单元
  • 监听浏览器宽度以进行响应式网页设计?

    我正在努力使我的网站适合移动设备 我想知道浏览器窗口的大小 以便当它比 728px 窄时我可以执行某些操作 而当它大于 728px 时我可以执行其他操作 这必须考虑到调整 PC 上的窗口大小以及在手机中从纵向模式更改为横向模式 如何才能做到
  • 将 Div 放置在另一个 DIV 下方

    我有两个 DIV 元素 其中之一具有绝对位置 主 DIV 的左下角 第二个 DIV 是隐藏的 只有单击链接才能显示 我需要第二个出现在第一个下方 但由于第一个 div 的位置是绝对的 第二个 div 出现在第一个 div 之上 HTML 代
  • 每 2 行后使 html 表格的边框变厚

    我创建了一个包含一些内容的表 其中有 12 行和 2 列 我想显示边框 但每 4 行之后 我想将水平边框设置为比正常情况更粗 怎么做 请在这里帮忙 试试这个选择器 table tr nth of type 4n td border bott
  • CSS 继承、别名和其他很酷的东西

    有一天 我随机浏览网页 发现了一些程序 可以让你编写 CSS 别名和其他很酷的东西 我现在不记得了 举个例子 我记得你可以这样做 myclass background color red greenfont 其中 greenfont 在其他
  • 如何使用javascript确保元素仅在圆上朝一个方向移动?

    好吧 我承认我对三角学真的很糟糕 出于上下文的考虑 我将添加我在这里提到的问题中的内容 参考问题 https stackoverflow com a 39429290 168492 https stackoverflow com a 394
  • 具有 100% 高度行和 Internet Explorer 9 的表格

    我有以下示例 div style height 150px background color AAAAFF div
  • 使用 CSS 的响应式图像

    我发现调整图像大小以使其具有响应能力很棘手 我正在开发一个 php 应用程序来自动将网站转换为响应式版本 我有点被图像困住了 我已经成功地为网站上的每个图像添加了一个包装类 并且可以很好地调整图像的大小 我的问题在于自然小于窗口的图像 例如
  • 主页(网格)上的缩略图现在显得模糊。如何纠正?

    我不知道这看起来是否愚蠢 但从早上开始我就无法纠正这个突然出现在我的博客网站上的错误www candidopinions in http www candidopinions in 我有一个网格视图模板 其中博客文章中的特色图像作为调整大小

随机推荐