uniapp全网最简单实现夜间模式

uniapp的夜间模式,估计是做项目到后期比较常遇到的需求,因为现在的主流就是页面模式的应用了,所以在之前做某个项目的时候,我也是费了一些时间才实现了夜间模式,目前的效果还不算太好,虽然支持夜间和日间模式的手动切换

 首先在你最大的view里面添加

:class="isDark?'dark':''"

初始字段data中定义如下:

isDark: false,

我用的是uview2组件中的Switch 开关选择器 来进行切换

<u-switch v-model="value" @change="change"></u-switch>
<!-- methods -->
change(e) {
	console.log('change', e);
},

这在需要用的地方执行

	var that = this;
				if (that.value == false) {
					that.isDark = false;
					uni.setTabBarStyle({
						color: '#7e858f',
						selectedColor: '#76C8F9',
						backgroundColor: '#ffffff',
						borderStyle: 'black'
					})
					// plus.setStatusBarStyle("dark");
				} else if (that.value == true) {
					that.isDark = true;
					// 关于tabBar的深色模式修改
					uni.setNavigationBarColor({
						frontColor: '#312736',
						backgroundColor: '#312736',
						animation: {
							duration: 0,
							timingFunc: 'easeIn'
						}
					})
					// // 关于导航栏的深色模式修改
					uni.setTabBarStyle({
						color: '#7e858f',
						selectedColor: '#76C8F9',
						backgroundColor: '#312736',
						borderStyle: 'black'
					})
				}

切换页面保持其他页面也是夜间模式可以把change的值存起来就如这样

uni.setStorageSync("key", e)

在别的地方进行取出了进行判断在onshow生命周期中加入如下代码

onShow(){


			let value = uni.getStorageSync('key');
			if (value == false) {
				// console.log(that.aas)
				that.isDark = false;
				uni.setTabBarStyle({
					color: '#7e858f',
					selectedColor: '#76C8F9',
					backgroundColor: '#ffffff',
					borderStyle: 'black'
				})
				// plus.setStatusBarStyle("dark");
			} else if (value == true) {
				that.isDark = true;
				// 关于tabBar的深色模式修改
				uni.setNavigationBarColor({
					frontColor: '#312736',
					backgroundColor: '#312736',
					animation: {
						duration: 0,
						timingFunc: 'easeIn'
					}
				})
				// // 关于导航栏的深色模式修改
				uni.setTabBarStyle({
					color: '#7e858f',
					selectedColor: '#76C8F9',
					backgroundColor: '#312736',
					borderStyle: 'black'
				})
			}
}

css样式

.dark {
		min-height: 100vh;
		background-color: #312736 !important;
		/* overflow: hidden; */
	}

	.dark input {
		color: #c7cddb;
	}

3

  • 0
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值