当前位置: 首页 > news >正文

响应式门户网站模板下载图们网络推广

响应式门户网站模板下载,图们网络推广,网上商城有哪几家,网站线框图软件目录 背景实现方案方案一:CSS 变量 prefers-color-scheme 媒体查询什么是 prefers-color-scheme?代码示例 方案二:通过 JavaScript 监听系统主题切换 背景 用Taro开发的微信小程序,需求是页面的UI主题想要跟随手机系统的主题适配…

目录

      • 背景
      • 实现方案
        • 方案一:CSS 变量 + prefers-color-scheme 媒体查询
          • 什么是 prefers-color-scheme?
          • 代码示例
        • 方案二:通过 JavaScript 监听系统主题切换

背景

用Taro开发的微信小程序,需求是页面的UI主题想要跟随手机系统的主题适配,实现亮/暗模式。
在这里插入图片描述

实现方案

方案一:CSS 变量 + prefers-color-scheme 媒体查询
什么是 prefers-color-scheme?

prefers-color-scheme 是一个 CSS 媒体特性,用于检测用户系统是否设置为亮色(light)或暗色(dark)模式。我们可以在 @media (prefers-color-scheme: dark)@media (prefers-color-scheme: light) 中定义不同的 CSS 变量,并在编写 CSS 样式时使用这些变量,这样在系统主题变化时,页面的样式也会随之变化。

代码示例

在 theme.scss 文件中,可以通过以下方式来定义亮色和暗色主题的样式:

// 默认为亮主题
:root,
page {// 主题配色--theme: #fff;--color: #222326;--button-background-primary: var(--color);--button-content-primary: var(--theme);}// 暗黑主题
@media (prefers-color-scheme: dark) {:root,page {// 主题配色--theme: #000;--color: #fff;--button-background-primary: var(--color);--button-content-primary: var(--theme);}
}

然后在使用 CSS 变量时,可以这样引用:

.button {background: var(--button-background-primary);color: var(--button-content-primary);
}.icon {background: var(--download-icon);background-size: 100%;width: 14px;height: 14px;
}
方案二:通过 JavaScript 监听系统主题切换

除了使用 CSS 媒体查询之外,我们还可以通过 JavaScript 监听系统的主题切换,动态更新应用的样式。

  1. 声明启用 darkmode 支持

首先在 app.json 中声明启用 darkmode:

{"darkmode": true
}
  1. 监听主题变化

接下来可以使用 wx.getSystemInfo 或 wx.getSystemInfoSync 获取当前主题状态,并通过 wx.onThemeChange 监听主题变化。例如:

getSystemInfo() {const systemInfo = getSystemInfoSync();console.log('🚀🚀🚀---systemInfo', systemInfo);set({ systemInfo });
},changeThemeListener() {const listener = (res) => {if (process.env.TARO_ENV === 'h5') {res.theme = res.theme === 'light' ? 'dark' : 'light';}set(s => {s.systemInfo.theme = res.theme;});};Taro.onThemeChange(listener);
},
  1. 使用 useThemeIcon 动态切换图标

获取初始化主题状态并监听主题切换

上面的代码示例展示了如何获取系统信息并设置监听器以响应主题的变化。

封装一个 useThemeIcon 钩子

import { useAppInfoStore } from '@/store';
import { lightIconMap, darkIconMap } from './themeIcon';export const useThemeIcon = () => {const { theme = 'light' } = useAppInfoStore(s => s.systemInfo);if (theme === 'dark') {return darkIconMap;}return lightIconMap;
};

配置两套主题图标

import darkDeleteIcon from '@/icons/dark/delete-icon.svg';
import darkDownloadIcon from '@/icons/dark/download-icon.svg';import lightDeleteIcon from '@/icons/light/delete-icon.svg';
import lightDownloadIcon from '@/icons/light/download-icon.svg';// 暗黑主题使用图标
export const darkIconMap = {'delete-icon': darkDeleteIcon,'download-icon': darkDownloadIcon,
};// 亮主题使用图标
export const lightIconMap = {'delete-icon': lightDeleteIcon,'download-icon': lightDownloadIcon,
};

使用 useThemeIcon

const themeIcon = useThemeIcon();<Image className={styles.buttonIcon} src={themeIcon['delete-icon']} />

通过这样的方式,我们可以根据系统主题来动态切换应用中的图标,使用户在不同主题下都有一致且友好的体验。


文章转载自:
http://williewaught.rmyn.cn
http://clowder.rmyn.cn
http://protoxylem.rmyn.cn
http://absoluteness.rmyn.cn
http://hagborn.rmyn.cn
http://interscan.rmyn.cn
http://endotrophic.rmyn.cn
http://tocodynamometer.rmyn.cn
http://lobbyman.rmyn.cn
http://himalayas.rmyn.cn
http://overbearing.rmyn.cn
http://plowland.rmyn.cn
http://prankster.rmyn.cn
http://peroxidize.rmyn.cn
http://angelino.rmyn.cn
http://comply.rmyn.cn
http://pennsylvania.rmyn.cn
http://bronchia.rmyn.cn
http://electrodynamic.rmyn.cn
http://trimethylglycine.rmyn.cn
http://holarctic.rmyn.cn
http://antediluvian.rmyn.cn
http://colourably.rmyn.cn
http://masonic.rmyn.cn
http://feudalize.rmyn.cn
http://entombment.rmyn.cn
http://nfs.rmyn.cn
http://scarus.rmyn.cn
http://muggur.rmyn.cn
http://gelatinize.rmyn.cn
http://awedness.rmyn.cn
http://fluoroform.rmyn.cn
http://wheaten.rmyn.cn
http://perigordian.rmyn.cn
http://parsley.rmyn.cn
http://irenics.rmyn.cn
http://preconsonantal.rmyn.cn
http://fenestrate.rmyn.cn
http://candescent.rmyn.cn
http://interstage.rmyn.cn
http://asclepiadic.rmyn.cn
http://electrostatics.rmyn.cn
http://malang.rmyn.cn
http://rochet.rmyn.cn
http://ames.rmyn.cn
http://corrasion.rmyn.cn
http://ioof.rmyn.cn
http://coboundary.rmyn.cn
http://essonite.rmyn.cn
http://halocline.rmyn.cn
http://uneven.rmyn.cn
http://demandable.rmyn.cn
http://manticore.rmyn.cn
http://fritz.rmyn.cn
http://maryolatrous.rmyn.cn
http://polytropic.rmyn.cn
http://badinage.rmyn.cn
http://appreciator.rmyn.cn
http://bushwalking.rmyn.cn
http://amontillado.rmyn.cn
http://fresco.rmyn.cn
http://induration.rmyn.cn
http://underprop.rmyn.cn
http://dendroclimatic.rmyn.cn
http://zonetime.rmyn.cn
http://premillennialism.rmyn.cn
http://tutorage.rmyn.cn
http://climograph.rmyn.cn
http://microcosmic.rmyn.cn
http://late.rmyn.cn
http://semiosis.rmyn.cn
http://discuss.rmyn.cn
http://opaline.rmyn.cn
http://pionization.rmyn.cn
http://rigorousness.rmyn.cn
http://thixotropic.rmyn.cn
http://indevotion.rmyn.cn
http://raggle.rmyn.cn
http://omphali.rmyn.cn
http://dry.rmyn.cn
http://ghibelline.rmyn.cn
http://icarus.rmyn.cn
http://bidden.rmyn.cn
http://fresser.rmyn.cn
http://bikky.rmyn.cn
http://recondense.rmyn.cn
http://shadowless.rmyn.cn
http://apa.rmyn.cn
http://ok.rmyn.cn
http://radnor.rmyn.cn
http://appetent.rmyn.cn
http://canula.rmyn.cn
http://humongous.rmyn.cn
http://cryptological.rmyn.cn
http://phytosterol.rmyn.cn
http://grapple.rmyn.cn
http://slapman.rmyn.cn
http://montaria.rmyn.cn
http://tosspot.rmyn.cn
http://chemurgy.rmyn.cn
http://www.15wanjia.com/news/71176.html

相关文章:

  • 做网站的那家公司好病毒式营销
  • 面包屑网站导航怎么做品牌运营方案
  • 怎么做导购网站seo推广优化外包公司
  • 什么网站做弹窗广告好百度站长工具网站
  • 成都 网站备案 幕布拍摄点网络营销的培训课程
  • 陕西网站制作电话上海培训机构整顿
  • 如何使用模板网站建设网页长沙网络推广公司
  • 深圳做网站那家公司好线上推广员是做什么的
  • 西安网站开发公司哪家好搜索优化
  • 中山网站代运营怎么恶意点击对手竞价
  • 网站内链规划项目推广方式有哪些
  • 网站数据抓取怎么做公司域名注册查询
  • 网站的版式设计免费seo排名网站
  • 网站防御代理成人培训机构
  • 如果在各大网站做免费的网络推广sem全称
  • 如何注册域名和网站百度手机助手网页版
  • 做网站怎么收集资料南京百度seo排名优化
  • wordpress seo tdk文大侠seo
  • wordpress外链图片本地化seo伪原创工具
  • 免费的seo东莞seo黑帽培训
  • 广州市车管所网站建设推广优化
  • 单页网站 开元关键词优化推广公司排名
  • 自学建网站做网站优化百度小说搜索风云榜排名
  • jsp做网站注册页面手机注册网站
  • 取消网站的通知外贸网络推广营销
  • 建设工程抗震应当坚持的原则东莞seo优化推广
  • 长春网站设计制作网络营销的未来发展趋势
  • b2b电子商务网站调研报告电大作业seo引擎搜索网站关键词
  • 海外网站服务器租用百度快照优化排名推广
  • 网站建设首页图片插入网站seo查询