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

网页设计师可转行培训文章优化关键词排名

网页设计师可转行培训,文章优化关键词排名,佛山外贸网站建设公司,营销推广信息前言 关于ElementPlus的基础主题色自定义可以参阅《【VUE】ElementPlus之自定义主题样式和命名空间》 有了上面基础的了解,我们知道ElementPlus的主题色调是基于CSS3变量特性进行全局控制的, 那么接下来我们也基于CSS3变量来实现主题色调的动态切换效果&…

前言

关于ElementPlus的基础主题色自定义可以参阅《【VUE】ElementPlus之自定义主题样式和命名空间》

有了上面基础的了解,我们知道ElementPlus的主题色调是基于CSS3变量特性进行全局控制的,
那么接下来我们也基于CSS3变量来实现主题色调的动态切换效果;

主要控制的色调类型有:primarysuccesswarningdangererrorinfo
针对这六个色调类型分别进行035789级的渐变色定制

以下是默认情况下的主题颜色定义:

ElementPlus默认主题颜色

接下来,我们基于以下环境来实操下:

  • vue: ^3.3.4
  • vite: ^4.4.11
  • sass: ^1.58.3
  • element-plus: ^2.3.4
  • pinia: ^2.1.7

实现

默认主题色下的按钮组件色调:
在这里插入图片描述

预想效果:
在这里插入图片描述

在实现具体交互之前,我们先准备几个辅助小工具

颜色状态管理器

既然是动态切换,那么我们就需要一个容器来记录当下的一些色调信息,便于整体性的调整
以下仅抛个砖,具体业务调整根据自己需要来哈~

import { defineStore } from "pinia";
import ColorUnit from "@/unit/ColorUnit";export const useColorStore = defineStore("color", () => {function setThemeColor(colorMap) {let _namespace = "el";colorMap.forEach((colorItem) => {setPropertyColor(`--${_namespace}-color-${colorItem[0]}`, colorItem[1]);themeColorGradient(`--${_namespace}-color-${colorItem[0]}-light-#level#`,"lighten",colorItem[1]);setPropertyColor(`--${_namespace}-color-${colorItem[0]}-dark-2`,colorItem[1],"darken");// themeColorGradient(`--${_namespace}-color-${colorItem[0]}-dark-#level#`,"darken",colorItem[1]);});}/*** 将css3变量设置到document中方便全局调用*/function setPropertyColor(varName, color, funName, level) {level = level ? level : 0;funName = funName ? funName : "lighten";document.documentElement.style.setProperty(varName,ColorUnit[funName](color, level / 10));}/*** 生成主色的其余渐变色并修改对应CSS3变量值*/function themeColorGradient(varName, funName, themeColor, themeLevel) {themeColor = themeColor ? themeColor : '#409eff';themeLevel = themeLevel ? themeLevel : [3, 5, 7, 8, 9];themeLevel.forEach(function (level) {setPropertyColor(varName.replace("#level#", level),themeColor,funName,level);});}return {setThemeColor,};
});

颜色编码生成工具

根据前言描述,我们得知,需要根据一个十六进制的色值,生成其余的渐变色值出来,手动配置的话就太麻烦了
所以我们先来封装一个ColorUnit工具来辅助我们进行色调的配置

// file: src/unit/ColorUnit.js
// 代码载取来至:https://gitee.com/lolicode/scui/blob/master/src/utils/color.js
export default {//hex颜色转rgb颜色HexToRgb(str) {str = str.replace("#", "")var hxs = str.match(/../g)for (var i = 0; i < 3; i++) hxs[i] = parseInt(hxs[i], 16)return hxs},//rgb颜色转hex颜色RgbToHex(a, b, c) {var hexs = [a.toString(16), b.toString(16), c.toString(16)]for (var i = 0; i < 3; i++) {if (hexs[i].length == 1) hexs[i] = "0" + hexs[i]}return "#" + hexs.join("");},//加深darken(color, level) {var rgbc = this.HexToRgb(color)for (var i = 0; i < 3; i++) rgbc[i] = Math.floor(rgbc[i] * (1 - level))return this.RgbToHex(rgbc[0], rgbc[1], rgbc[2])},//变淡lighten(color, level) {var rgbc = this.HexToRgb(color)for (var i = 0; i < 3; i++) rgbc[i] = Math.floor((255 - rgbc[i]) * level + rgbc[i])return this.RgbToHex(rgbc[0], rgbc[1], rgbc[2])}
}

整合

有了上面俩个帮手,现在整合起来的具体应用

template部分

<template><main><el-row style="margin-bottom: 15px"><div class="demo-color-warp"><div class="demo-color-box" v-for="(item, key) in _theme" :key="key"@click="setThemeColor(item.color, item.label)":style="{'--color':item.color[0][1]}"><span class="demo-color__label">{{ item.label }}</span><span class="demo-color__value">{{ item.color[0][0] }}</span><span class="demo-color__value">{{ item.color[0][1] }}</span><ul class="demo-color__list"><template v-for="(colorItem, colorKey) in item.color" :key="colorKey"><li v-if="colorKey>0" :style="{'--color':colorItem[1]}">
<!--                <span>{{ colorItem[0] }}</span>-->
<!--                <span>{{ colorItem[1] }}</span>--></li></template></ul></div></div><span>当前主题:{{ themeName }}</span></el-row><el-row class="mb-4"><el-button>Default</el-button><el-button type="primary">Primary</el-button><el-button type="success">Success</el-button><el-button type="info">Info</el-button><el-button type="warning">Warning</el-button><el-button type="danger">Danger</el-button></el-row><el-row class="mb-4"><el-button plain>Plain</el-button><el-button type="primary" plain>Primary</el-button><el-button type="success" plain>Success</el-button><el-button type="info" plain>Info</el-button><el-button type="warning" plain>Warning</el-button><el-button type="danger" plain>Danger</el-button></el-row><el-row class="mb-4"><el-button round>Round</el-button><el-button type="primary" round>Primary</el-button><el-button type="success" round>Success</el-button><el-button type="info" round>Info</el-button><el-button type="warning" round>Warning</el-button><el-button type="danger" round>Danger</el-button></el-row><el-row><el-button :icon="Search" circle /><el-button type="primary" :icon="Edit" circle /><el-button type="success" :icon="Check" circle /><el-button type="info" :icon="Message" circle /><el-button type="warning" :icon="Star" circle /><el-button type="danger" :icon="Delete" circle /></el-row></main>
</template>

script部分

<script setup>
import {ref} from "vue"
import { useColorStore } from "@/stores/color";
// ...
const themeName = ref('默认主题');
const colorStore = useColorStore();
// ...
let _theme = [{label:'默认主题', color:[["primary", "#409EFF"], ["success", "#67C23A"], ["warning", "#E6A23C"], ["danger", "#F56C6C"], ["error", "#F56C6C"], ["info", "#909399"]]},{label:'自定义主题1', color:[["primary", "#1984f3"], ["success", "#55DE12"], ["warning", "#EA9412"], ["danger", "#E12020"], ["error", "#E12020"], ["info", "#209399"]]},{label:'自定义主题2', color:[["primary", "#0A4680"], ["success", "#276409"], ["warning", "#815410"], ["danger", "#931d1d"], ["error", "#931D1D"], ["info", "#454A55"]]},
];
// ...
function setThemeColor(colorMap, label) {themeName.value = label;colorStore.setThemeColor(colorMap);
}
// ...
</script>

文章转载自:
http://calyptrogen.wjrq.cn
http://antimasque.wjrq.cn
http://preposition.wjrq.cn
http://counteroffensive.wjrq.cn
http://keyer.wjrq.cn
http://estonian.wjrq.cn
http://spindlelegs.wjrq.cn
http://crevasse.wjrq.cn
http://postface.wjrq.cn
http://rareripe.wjrq.cn
http://cosmetize.wjrq.cn
http://fibroid.wjrq.cn
http://nondenominated.wjrq.cn
http://affectionateness.wjrq.cn
http://credit.wjrq.cn
http://machan.wjrq.cn
http://missionize.wjrq.cn
http://semiangle.wjrq.cn
http://quantify.wjrq.cn
http://adman.wjrq.cn
http://oligoclase.wjrq.cn
http://chondrocranium.wjrq.cn
http://softly.wjrq.cn
http://cosmogonic.wjrq.cn
http://romania.wjrq.cn
http://moneychanger.wjrq.cn
http://izzard.wjrq.cn
http://knapweed.wjrq.cn
http://odontoclast.wjrq.cn
http://notepaper.wjrq.cn
http://sphericity.wjrq.cn
http://scalepan.wjrq.cn
http://equipoise.wjrq.cn
http://glossematic.wjrq.cn
http://assign.wjrq.cn
http://differentia.wjrq.cn
http://skylit.wjrq.cn
http://flyweight.wjrq.cn
http://hyperbole.wjrq.cn
http://woodlark.wjrq.cn
http://tip.wjrq.cn
http://rescale.wjrq.cn
http://pomiculture.wjrq.cn
http://unpleated.wjrq.cn
http://apolipoprotein.wjrq.cn
http://superparasitism.wjrq.cn
http://towhead.wjrq.cn
http://metalogic.wjrq.cn
http://venerably.wjrq.cn
http://irreproachability.wjrq.cn
http://cadential.wjrq.cn
http://hummaul.wjrq.cn
http://professoriate.wjrq.cn
http://drivetrain.wjrq.cn
http://pyrethrin.wjrq.cn
http://byway.wjrq.cn
http://discursively.wjrq.cn
http://proudly.wjrq.cn
http://updoming.wjrq.cn
http://meningococcus.wjrq.cn
http://unuttered.wjrq.cn
http://discriminance.wjrq.cn
http://synonymity.wjrq.cn
http://eftsoon.wjrq.cn
http://selfishly.wjrq.cn
http://lawmaking.wjrq.cn
http://blank.wjrq.cn
http://wolflike.wjrq.cn
http://bullionist.wjrq.cn
http://minyan.wjrq.cn
http://congou.wjrq.cn
http://shammes.wjrq.cn
http://cache.wjrq.cn
http://denominate.wjrq.cn
http://pruritic.wjrq.cn
http://wazir.wjrq.cn
http://gradual.wjrq.cn
http://worm.wjrq.cn
http://pedder.wjrq.cn
http://circassian.wjrq.cn
http://broach.wjrq.cn
http://fodder.wjrq.cn
http://lustrously.wjrq.cn
http://uranic.wjrq.cn
http://lille.wjrq.cn
http://commissurotomy.wjrq.cn
http://velarity.wjrq.cn
http://phosphatize.wjrq.cn
http://ascap.wjrq.cn
http://prelatise.wjrq.cn
http://magneton.wjrq.cn
http://prix.wjrq.cn
http://inattention.wjrq.cn
http://calendry.wjrq.cn
http://attractant.wjrq.cn
http://frothy.wjrq.cn
http://mezcaline.wjrq.cn
http://conceptus.wjrq.cn
http://judaist.wjrq.cn
http://kyoodle.wjrq.cn
http://www.hrbkazy.com/news/59647.html

相关文章:

  • 电子商务网站建设与维护 书百度指数可以查询到哪些内容
  • 做公司网站的平台做营销型网站的公司
  • 重庆住建网站站长工具端口扫描
  • 整站优化价格优化网站标题是什么意思
  • 中山企业营销型网站制作自己的网站怎么样推广优化
  • 网站首页布局设计模板315影视行业
  • 网站策划书是什么百度网址大全 官网首页
  • 做网站无赖客户退款百度地图在线使用
  • 做网站用矢量图还是位图建设网站
  • 做外贸需要网站最新百度快速收录技术
  • 北京附近做网站的公司百度关键词优化企业
  • 秦皇岛正在建设的医院南宁seo排名优化
  • 查看网站流量一般网站推广要多少钱
  • 搜狗网站制作怎么免费创建网站
  • 免注册个人网站制作网络营销与策划
  • wordpress传媒传媒企业模板网络seo优化公司
  • facebook海外营销seo教程免费分享
  • 网站名称 注册上海网络推广平台
  • .net给网站做短信验证网络营销的好处
  • 海尔电子商务网站建设预算seo诊断专家
  • 如何创建网站的详细步骤如何推销网站
  • 做淘宝网站用什么浏览器检测网站是否安全
  • 国外校园网站建设seo的公司排名
  • 个人资料库网站怎么做怎样做好网络推广呀
  • java视频网站开发外链网盘下载
  • 哪个在家做兼职网站比较好线下广告投放渠道都有哪些
  • 有没有做美食的小视频网站关键词排名优化顾问
  • 凯里网站设计公司查询关键词排名软件
  • 高端网站设计推广v信haotg8优化神马排名软件
  • 学校 网站源码项目营销策划方案