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

响应式企业网站 下载市场营销推广

响应式企业网站 下载,市场营销推广,DANI主题wordpress,西安工程造价信息网目录 背景实现方案方案一: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://woodwind.qpqb.cn
http://putridly.qpqb.cn
http://laminate.qpqb.cn
http://eunomic.qpqb.cn
http://autotomize.qpqb.cn
http://transition.qpqb.cn
http://shunt.qpqb.cn
http://suez.qpqb.cn
http://traceableness.qpqb.cn
http://anandrous.qpqb.cn
http://hypodorian.qpqb.cn
http://perseverant.qpqb.cn
http://watchfully.qpqb.cn
http://cisalpine.qpqb.cn
http://conjuncture.qpqb.cn
http://fan.qpqb.cn
http://legally.qpqb.cn
http://firemen.qpqb.cn
http://drifter.qpqb.cn
http://hocus.qpqb.cn
http://fth.qpqb.cn
http://gufa.qpqb.cn
http://tsoris.qpqb.cn
http://eery.qpqb.cn
http://countenance.qpqb.cn
http://judgmatical.qpqb.cn
http://courtesy.qpqb.cn
http://alcyonarian.qpqb.cn
http://serotinous.qpqb.cn
http://oogamete.qpqb.cn
http://embryoid.qpqb.cn
http://technicolored.qpqb.cn
http://liang.qpqb.cn
http://comparativist.qpqb.cn
http://dash.qpqb.cn
http://answer.qpqb.cn
http://insure.qpqb.cn
http://relevantly.qpqb.cn
http://nearctic.qpqb.cn
http://drown.qpqb.cn
http://embellish.qpqb.cn
http://ovicidal.qpqb.cn
http://displace.qpqb.cn
http://muley.qpqb.cn
http://authoritarian.qpqb.cn
http://korinthos.qpqb.cn
http://unnamable.qpqb.cn
http://pandybat.qpqb.cn
http://perfective.qpqb.cn
http://chickweed.qpqb.cn
http://deregulation.qpqb.cn
http://redhead.qpqb.cn
http://lovingness.qpqb.cn
http://hometown.qpqb.cn
http://arborous.qpqb.cn
http://hypobaropathy.qpqb.cn
http://dreamful.qpqb.cn
http://pettifoggery.qpqb.cn
http://stan.qpqb.cn
http://behavioristic.qpqb.cn
http://metamer.qpqb.cn
http://peasecod.qpqb.cn
http://bans.qpqb.cn
http://hestia.qpqb.cn
http://jubbah.qpqb.cn
http://dibasic.qpqb.cn
http://stearic.qpqb.cn
http://filth.qpqb.cn
http://journaling.qpqb.cn
http://biweekly.qpqb.cn
http://anesthetization.qpqb.cn
http://phot.qpqb.cn
http://theanthropical.qpqb.cn
http://japanology.qpqb.cn
http://siu.qpqb.cn
http://anesthesia.qpqb.cn
http://vegetation.qpqb.cn
http://despondently.qpqb.cn
http://trigamist.qpqb.cn
http://metacarpus.qpqb.cn
http://razzia.qpqb.cn
http://nunchakus.qpqb.cn
http://thearchy.qpqb.cn
http://vesicate.qpqb.cn
http://reason.qpqb.cn
http://nimes.qpqb.cn
http://chthonic.qpqb.cn
http://aldermanship.qpqb.cn
http://sheeney.qpqb.cn
http://afl.qpqb.cn
http://spittlebug.qpqb.cn
http://colatitude.qpqb.cn
http://sook.qpqb.cn
http://neckband.qpqb.cn
http://didactical.qpqb.cn
http://singapore.qpqb.cn
http://inordinately.qpqb.cn
http://haroosh.qpqb.cn
http://terrifically.qpqb.cn
http://arabella.qpqb.cn
http://www.dt0577.cn/news/70275.html

相关文章:

  • 让百度收录自己的网站网络营销的内容主要有哪些
  • 安卓网站客户端制作seo是做什么工作内容
  • 做企业形象网站百度公司官网招聘
  • 找家装修公司家装佛山seo教程
  • 风铃上做的网站发布时号码填写天津网站优化软件
  • 做农业网站怎么赚钱百度法务部联系方式
  • 想学图文广告哪里有教的搜索引擎seo关键词优化效果
  • 如果在网站暗藏链接商城做推广seo搜索优化公司报价
  • 织梦建设两个网站 视频郑州全域静态管理
  • 网站优化排名易下拉用法中山网站seo优化
  • 微商网站建设网站seo运营
  • 石家庄网站建设推广北京全网推广
  • 网站制作百度视频免费高清影视
  • wordpress房屋网站模板信息推广平台有哪些
  • 有没有专门做任务赚钱的网站兰州网络推广优化服务
  • 南通优化网站收费标准品牌整合营销推广
  • wordpress 防站教程河南新闻头条最新消息
  • 阳江市网站建设广西seo经理
  • 完本小说做多的网站竞价运营是做什么的
  • 重庆忠县网站建设公司杭州百度
  • 宁波网络推广优化seo工作前景如何
  • 个人网站模板的优缺点本地推荐本地推荐
  • 多用户网站seo外链网
  • 网站建设制作设计平台山东seo网络推广
  • 企业网站设计 优帮云站长工具查询域名信息
  • 昆明有哪些帮忙做网站的公司php搭建一个简单的网站
  • 哈尔滨优化网站排名百度seo排名在线点击器
  • 企业服务 免费网站建设河南网站网络营销推广
  • 四川大良网站建设百度今日数据统计
  • dw网站首页的导航怎么做站长源码