uniapp 使用svg

一、common/function.js 方法封装

  // svg 转成urlsvgToUrl(url) {var encoded = url.replace(/<!--(.*)-->/g, "").replace(/[\r\n]/g, " ").replace(/"/g, `'`).replace(/%/g, "%25").replace(/&/g, "%26").replace(/#/g, "%23").replace(/{/g, "%7B").replace(/}/g, "%7D").replace(/</g, "%3C").replace(/>/g, "%3E");let res = '"' + `data:image/svg+xml,${encoded}` + '"'; //需要在字符串前后加上一对引号(非常关键!)return res;},// svg 修改图片颜色svgChangeColor(url, color, type, index) {let modifiedStr;// 修改里层颜色if (type == 'two-tone') {let color2 = color;let newColor = color2.replace("#", "%23");let str = url; // 原始字符串let pattern = /%23[a-zA-Z0-9]{6}/g; // 正则表达式,匹配最后一个数字及之前的任何字符// 使用 match() 函数获取所有符合条件的子字符串let matches = str.match(pattern);// console.log('matchesmatchesmatches', matches)// if (matches && matches.length > 0) {//   let lastMatch = matches[matches.length - 1]; // 获取最后一个符合条件的子字符串//   console.log('lastMatchlastMatchlastMatch', lastMatch)//   // 使用 replace() 函数进行修改//   modifiedStr = str.replace(lastMatch, newColor);// }if (matches && matches.length > 0) {// 使用 replace() 函数进行修改 指定下标的modifiedStr = str.replace(matches[index], newColor);}return modifiedStr;} else {// 全颜色修改modifiedStr = url.replace(/%23[a-zA-Z0-9]{6}/g, color.replace("#","%23")); //转义后的#等于%23,利用正则表达式,替换所有%23后6位为新的十六进制六位数。return modifiedStr;}},

二、utils 下新建 svg.js 用来存放svg图

const svgObj = {ztSvg: '<svg width="64px" height="64px" viewBox="0 0 64 64" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"><title>学习专题</title><g id="pc学习端" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd"><g id="学习专题"><rect id="矩形备份-28" x="0" y="0" width="64" height="64"></rect><g transform="translate(12.000000, 10.000000)" stroke="#D70C19" stroke-linecap="round" stroke-width="3"><path d="M40,34.7741025 L40,35 C40,39.6023729 36.2690396,43.3333333 31.6666667,43.3333333 L8.33333333,43.3333333 C3.73096042,43.3333333 0,39.6023729 0,35 L0,8.33333333 C0,3.73096042 3.73096042,0 8.33333333,0 L31.6666667,0 C36.2690396,0 40,3.73096042 40,8.33333333 L40,24.9512748 L40,24.9512748" id="路径"></path><path d="M11.5,0 L21.5,0 C22.0522847,8.7960173e-16 22.5,0.44771525 22.5,1 L22.5,17.0714286 C22.5,17.6237133 22.0522847,18.0714286 21.5,18.0714286 C21.2196363,18.0714286 20.9521492,17.9537343 20.7627346,17.7470318 L15.7372654,12.2628888 C15.3641401,11.8557084 14.7315772,11.8281013 14.3243968,12.2012266 C14.3029559,12.2208743 14.2823823,12.2414479 14.2627346,12.2628888 L9.23726542,17.7470318 C8.86414006,18.1542122 8.23157723,18.1818193 7.82439678,17.808694 C7.61769432,17.6192794 7.5,17.3517923 7.5,17.0714286 L7.5,4 C7.5,1.790861 9.290861,4.05812251e-16 11.5,0 Z" id="矩形"></path></g></g></g></svg>'
}
export default svgObj

三、 页面使用

<template><view class="title-box"><view :style="{'background-image': 'url('+ztSvg+')'}" class="icon"></view><view>{{$t('task.homework')}}</view>
</view>
</template>
<script>import svgObj from '@/utils/svg.js'export default {data() {return {ztSvg: svgObj.ztSvg,}},onLoad() {this.ztSvg= svgObj.ztSvgthis.ztSvg = this.$f.svgChangeColor(this.$f.svgToUrl(this.ztSvg), '#333333')},}
</script>
<style scoped lang="scss">.title-box {font-size: 28rpx;font-family: PingFangSC, PingFang SC;font-weight: 600;color: #333333;display: flex;align-items: center;image {width: 32rpx;height: 28rpx;margin-right: 16rpx;}}.icon {background-size: 100% 100%;background-repeat: no-repeat;height: 50rpx;width: 40rpx;margin-right: 6rpx;}
</style>

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/699859.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Element table 实现表格行、列拖拽功能

安装包 npm install sortablejs --save <template><div class"draggable" style"padding: 20px"><el-table row-key"id" :data"tableData" style"width: 100%" border><el-table-columnv-for"(it…

VS中使用xcopy生成后命令报9009错误

错误现象: download下来的代码&#xff0c;在另一台电脑能使用生成后命令xcopy&#xff0c;换一台电脑后该命令不能使用&#xff0c;报如下错误&#xff1a; 2.错误原因&#xff1a; 这是因为xcopy /Y 为Windows程序命令&#xff0c;xcopy其实是Windows下的一个xcopy.exe,如果…

nginx 模块 常见内置变量 location

一、nginx 模块 ngx_http_core_module 核心模块 ngx_http_access_module 访问控制模块 deny allow ngx_http_auth_basic_module 身份验证 小红小名&#xff08;虚拟用户&#xff09; ftp也有虚拟用户 ngx_http_gzip_module 压缩模块 ngx_http_gzip_static_modul…

KeepAlived搭建高可用的HAproxy负载均衡集群系统

服务器规划: serverd(haproxy1,keepalived):192.168.233.141 serverb(haproxy2,keepalived):192.168.233.144 servera(web1):192.168.233.132 serverc(web2):192.168.233.140 域名映射:(…

Java 学习和实践笔记(19):this的使用方法

this用来指向当前对象的地址。 this的用法&#xff1a; 1&#xff09;在普通方法中&#xff0c;this总是指向调用该方法的对象。在普通方法中&#xff0c;它是作为一种隐式参数一直就存在着&#xff08;这句话的意思&#xff0c;就是其实在普通方法中&#xff0c;编译器一直就…

【前端素材】推荐优质后台管理系统Be admin平台模板(附源码)

一、需求分析 后台管理系统&#xff08;或称作管理后台、管理系统、后台管理平台&#xff09;是一种专门用于管理网站、应用程序或系统后台运营的软件系统。它通常由一系列功能模块组成&#xff0c;为管理员提供了管理、监控和控制网站或应用程序的各个方面的工具和界面。以下…

从零开始学逆向:理解ret2syscall

1.题目信息 链接&#xff1a;https://pan.baidu.com/s/19ymHlZZmVGsJHFmmlwww0w 提取码&#xff1a;r4el 首先checksec 看一下保护机制 2.原理 ret2syscall 即控制程序执行系统调用来获取 shell 什么是系统调用&#xff1f; 操作系统提供给用户的编程接口是提供访问操作系统…

【力扣hot100】刷题笔记Day12

前言 小涛啊小涛&#xff0c;你不能就这么荒废学习安逸享乐&#xff01;工作找不到啦&#xff01; 104. 二叉树的最大深度 - 力扣&#xff08;LeetCode&#xff09; 递归 class Solution:def maxDepth(self, root: Optional[TreeNode]) -> int:if not root:return 0l_len …

Flutter 中的照片管理器(photo_manager):简介与使用指南

当谈到在 Flutter 中处理图片和相册时&#xff0c;photo_manager 是一个强大且受欢迎的库。让我们深入了解一下这个库以及如何在你的应用程序中使用它。 Flutter photo_manager 简介 photo_manager 是一个用于管理设备上的照片和视频的库。它提供了以下功能&#xff1a; 访问…

redmine旧系统迁移到docker中

redmine旧系统迁移到docker中 起因新的改变安装尝试处理插件问题自己的镜像 起因 旧系统是Linux&#xff0c;迁移redmine可谓是非常麻烦&#xff0c;安装redmine可是一个非人的折磨。 新的改变 使用docker做好一个环境&#xff0c;以后有需要的时候直接使用即可&#xff0c;…

电路设计(28)——交通灯控制器的multisim仿真

1.功能设定 南北、东西两道的红灯时间、绿灯时间均为24S&#xff0c;数码管显示倒计时。在绿灯的最后5S内&#xff0c;黄灯闪烁。有夜间模式&#xff1a;按下按键进入夜间模式。在夜间模式下&#xff0c;数码管显示计数最大值&#xff0c;两个方向的黄灯不停闪烁。 2.电路设计 …

【k8s资源调度-StatefulSet】

1、部署对象StatefulSet资源&#xff08;无状态应用&#xff09; StatefulSet针对的是有状态应用&#xff0c;有状态应用会对我们的当前pod的网络、文件系统等有关联。 2、配置文件如下 StatefulSet资源的配置文件粗略如下&#xff0c;如下的配置信息包含了数据卷&#xff0c;…

uniapp_微信小程序自定义顶部导航栏和右侧胶囊对齐(不对齐来打我)

一、想要的效果 思路首先开启自定义导航栏&#xff0c;取消自带的导航栏&#xff0c;然后计算胶囊的高度和标题对齐 二、成品代码 1、首先再你需要居中的代码添加以下style <view class"header":style"{paddingTop:navBarTop px,height:navBarHeight px,…

freemarker语法和在java中应用

翻笔记翻出来的。 目录 基础简单示例标签assignincludeiflist内建函数空值问题运算符 在线测试 https://try.freemarker.apache.org/ 基础 freemarker是一个Java编写的模板引擎&#xff0c;它基于模板产生文本&#xff0c;输出可以是html、XML、JSP和Java等&#xff0c;只要给…

GitLab代码库提交量统计工具

1.说明 统计公司所有项目的提交情况&#xff0c;可指定分支和时间段&#xff0c;返回每个人的提交新增数、删除数和总数。 2.API 文档地址&#xff1a;http://公司gitlab域名/help/api/README.md 项目列表查询 返回示例&#xff1a; [{"id": 1, //项目ID"http…

271.【华为OD机试真题】查找一个有向网络的头节点和尾节点(有向无环图(DAG)-JavaPythonC++JS实现)

🚀点击这里可直接跳转到本专栏,可查阅顶置最新的华为OD机试宝典~ 本专栏所有题目均包含优质解题思路,高质量解题代码(Java&Python&C++&JS分别实现),详细代码讲解,助你深入学习,深度掌握! 文章目录 一. 题目二.解题思路三.题解代码Python题解代码JAVA题解…

机器学习——线性回归算法、代价函数、梯度下降算法基础

线性回归 还是以之前的预测房价为例&#xff0c;根据不同尺寸的房子对应不同的售价组成的数据集画图&#xff0c;图如下 监督学习算法工作流程 假设函数其实就是我们所说的函数&#xff0c;在房价这个例子中&#xff0c;我们可以从上图中看出房价和房子面积是一个一元的线性函…

【进程地址空间】

目录 上层用户看到的地址父进程创建子进程对代码区的同一变量修改 进程地址空间进程地址空间需要划分 页表 上层用户看到的地址 一个系统中的进程是与其他进程共享内存和CPU的。如果某个进程不小心写入另一个使用该内存的进程&#xff0c;进程就可能以某种完全和程序逻辑无关的…

Apache Commons开源的工具库介绍

Apache Commons 是 Apache 软件基金会主持的一个项目&#xff0c;旨在提供一系列可重用的 Java 组件。这些组件覆盖了从数据封装、文本处理到网络通信等各个方面&#xff0c;是 Java 开发中常用的一系列工具库。Apache Commons 项目下的各个库通常以 "commons-" 开头…

css3实现动画无限循环

要在CSS3中实现动画的无限循环&#xff0c;你可以使用animation 属性和 infinite 关键字。以下是一个示例&#xff1a; keyframes myAnimation {0% { /* 起始状态 */ }50% { /* 中间状态 */ }100% { /* 结束状态 */ }}.element {animation: myAnimation 2s infinite; /* 设置动…