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

uniapp中封装一个svg转base64的组件

uniapp中由于不支持svg--》base64,同时无法使用h5中atob,这里我们采用js-base64插件实现这样一个组件,只要传人svg的代码即可在uniapp中转为base64,同时支持自定义参数,比如宽度,高度,等

1 安装

npm install --save js-base64

2 组件

<template><!-- <image class="img":style="[{width:transformPxToVw(width) + 'vw',height:transformPxToVw(height) + 'vw',transform:'rotate(' + lastDeg + 'deg)'}]" :src="base64String"></image> --></template>
<script>import { Base64 } from 'js-base64';export default {props:{svgTxt:{type:String,default:""},width:{type:Number,default:20},height:{type:Number,default:20},deg:{type:Number,default:0}},mounted(){this.transformSvgToBase64(this.svgTxt)},data() {return {base64String:"",toggle:false,lastDeg:0}},methods: {transformSvgToBase64(svgTxt){this.base64String = 'data:image/svg+xml;base64,' + Base64.encode(svgTxt);},transformPxToVw(num,designWidth=375){let vwVal=(100/designWidth)*num;return vwVal.toFixed(3)},handler(){this.toggle=!this.togglethis.lastDeg=this.toggle?this.deg:0console.log("this.lastDeg",this.lastDeg)},}}
</script><style>
.img{display: inline-block;
}</style>

3 引入组件

<Arrow2 :svgTxt="svgTxt" :width="20" :height="20" :deg="90"></Arrow2>data() {return {base64String:"",svgTxt:`<svg width="20" height="20" viewBox="0 0 20 20" fill="none" xmlns="http://www.w3.org/2000/svg"><path d="M15.5705 8.26572C15.9061 7.95074 15.9227 7.42336 15.6078 7.0878C15.317 6.77805 14.8453 6.74 14.5105 6.98372L14.4298 7.05053L10.0061 11.204L5.5678 7.04969C5.25762 6.75939 4.78442 6.75194 4.4661 7.0168L4.38993 7.08869C4.09964 7.39887 4.09218 7.87207 4.35705 8.19039L4.42893 8.26655L9.43717 12.9538C9.73119 13.229 10.1747 13.2516 10.4933 13.0219L10.5769 12.953L15.5705 8.26572Z" fill="#A4A5B3"/></svg>`,}},

4 添加动画

本demo通过一个箭头的svg来做例子。该组件中通过点击箭头实现旋转动画。可以自己传参数来定义箭头的旋转方向本例是通过点击选择90度

我们在组件内部定义了一个函数用于处理px单位的转化,因为style的设置无法实现px自动转为vw

相关文章:

uniapp中封装一个svg转base64的组件

uniapp中由于不支持svg--》base64&#xff0c;同时无法使用h5中atob&#xff0c;这里我们采用js-base64插件实现这样一个组件&#xff0c;只要传人svg的代码即可在uniapp中转为base64&#xff0c;同时支持自定义参数&#xff0c;比如宽度&#xff0c;高度,等 1 安装 npm inst…...

QT播放gstreamer命令(三)---使用QMediaPlayer

前文&#xff1a; 因为之前听说过&#xff0c;QMediaPlayer已经集成了gstreamer&#xff0c;但是并没有什么接口来例子来说明&#xff0c;根本看不出来有任何gstreamer的形式&#xff0c;于是在QT5助手里面搜了一下&#xff0c;发现确实有gstreamer的痕迹&#xff0c;但是例子写…...

Ubuntu22扩大分区

一台Ubuntu一直以为扩展成功了的&#xff0c;但是用起来空间不够&#xff0c;才发现空间还是那么小&#xff0c;所以赶快想办法扩展。 首先尝试使用gparted软件&#xff0c;结果在软件里面发现硬盘分区/dev/sda3已经全分配78G了。 但是看df -H&#xff0c;明明没有扩展: /dev…...

数据结构篇-05:哈希表解决字母异位词分组

本文对应力扣高频100 ——49、字母异位词分组 哈希表最大的特点就是它可以把搜索元素的时间复杂度降到O(1)。这一题就是要我们找到 “字母异位词” 并把它们放在一起。 “字母异位词”就是同一个单词中字母的不同组合形式。判断“字母异位词”有两个视角&#xff1a;1、所含字…...

添加了gateway之后远程调用失败

前端提示500&#xff0c;后端提示[400 ] during [GET] to [http://userservice/user/1] 原因是这个&#xff0c;因为在请求地址写了两个参数&#xff0c;实际上只传了一个参数 解决方案&#xff1a;加上(required false)并重启所有相关服务...

C#,哥伦布数(Golomb Number)的算法与源代码

1 哥伦布数&#xff08;Golomb Number&#xff09; 哥伦布数&#xff08;Golomb Number&#xff09;是一个自然数的非减量序列&#xff0c;使得n在序列中正好出现G&#xff08;n&#xff09;次。前几个15的G&#xff08;n&#xff09;值为&#xff1a;1 2 2 3 3 4 4 4 5 5 5 6…...

JVM学习

1.Java虚拟机内部有哪些线程共享&#xff0c;那些线程隔离 程序计数器&#xff1a; 通过改变这个计数器的值来选取下一条需要执行的字节码命令 Java虚拟机栈&#xff1a; 栈&#xff0c;每个方法被执行时&#xff0c;Java虚拟机都会同步的创建一个栈帧用于存储局部变量表&…...

Visual Studio 20XX中utf-8中文在控制台显示乱码

文章目录 在 Visual Studio 20xx中&#xff0c;如果源码文件是 UTF8编码&#xff0c;要打印中文到控制台时&#xff0c;控制台会显示乱码&#xff0c;可以进行以下设置。 包含<Windows.h>头文件。在main函数初始调用SetConsoleOutputCP(CP_UTF8)设置控制台输出字符集为UT…...

拥抱个人成长与社会进步:自我认知与开放心态的相互影响

拥抱个人成长与社会进步&#xff1a;自我认知与开放心态的相互影响 Embracing Personal Growth and Societal Progress: The Interplay of Self-Awareness and Open-mindedness 一、引言 I. Introduction 在当今急速发展的时代&#xff0c;个人成长与社会进步交织在一起&…...

【PostgreSQL内核学习(二十五) —— (DBMS存储空间管理)】

DBMS存储空间管理 概述块&#xff08;或页面&#xff09;PageHeaderData 结构体HeapTupleHeaderData 结构 表空间表空间的作用&#xff1a;表空间和数据库关系表空间执行案例 补充 —— 模式&#xff08;Schema&#xff09; 声明&#xff1a;本文的部分内容参考了他人的文章。在…...

2024年 复习 HTML5+CSS3+移动web 笔记 之CSS遍 第5天

第 五 天 整个网站例 5.1 准备工作 项目目录与版心 base.css 5.2 网页制作思路 5.3 header 区域-整体布局 5.4 header区域-logo 5.5 header区域-导航 index.html <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8">&l…...

SpringBoot使用Kafka详解含完整代码

1. 前言 随着大数据和实时处理需求的增长&#xff0c;Kafka作为一种分布式流处理平台&#xff0c;与Spring Boot的集成变得尤为重要。本文将详细探讨如何在Spring Boot应用程序中设置和使用Kafka&#xff0c;从基础概念到高级特性&#xff0c;通过实际代码示例帮助读者深入理解…...

解决:java -jar 在cmd中运行 程序卡顿,卡死的 问题。BIO和NIO案例保存

解决 怎么解决&#xff0c;就是 日志别输出到 cmd 就行了。就行了。就行了。 java -jar demo.jar > output.log 2>&1 &最近写东西&#xff0c;遇到了 程序偶尔卡死的情况。是java -jar 启动的。具体卡死为&#xff1a;http请求超级卡顿 或 偶尔反应好多个请求&…...

LeetCode第824题 - 山羊拉丁文

题目 解答 String toGoatLatin(String S) {if (S null) {return "";}S S.trim();if (S.isEmpty()) {return "";}StringBuilder sb new StringBuilder();String[] tokens S.split(" ");for (int i 0, j 1, length tokens.length; i <…...

[Python] 什么是逻辑回归模型?使用scikit-learn中的LogisticRegression来解决乳腺癌数据集上的二分类问题

什么是线性回归和逻辑回归&#xff1f; 线性回归是一种用于解决回归问题的统计模型。它通过建立自变量&#xff08;或特征&#xff09;与因变量之间的线性关系来预测连续数值的输出。线性回归的目标是找到一条直线&#xff08;或超平面&#xff09;&#xff0c;使得预测值与观…...

那些不输于乙游男主人设的国漫男主

最近乙游的势头越来越猛&#xff0c;新宠旧爱一起上阵&#xff0c;叫人应接不暇。在二次元的世界里&#xff0c;乙游男主们凭借着超凡的魅力&#xff0c;成为了无数少女心中的理想对象。他们或冷酷、或温柔、或阳光、或神秘&#xff0c;每一个角色都有着独特的性格和故事。 乙游…...

Apache Doris 整合 FLINK CDC + Iceberg 构建实时湖仓一体的联邦查询

1概况 本文展示如何使用 Flink CDC Iceberg Doris 构建实时湖仓一体的联邦查询分析&#xff0c;Doris 1.1版本提供了Iceberg的支持&#xff0c;本文主要展示Doris和Iceberg怎么使用&#xff0c;大家按照步骤可以一步步完成。完整体验整个搭建操作的过程。 2系统架构 我们整…...

关于华为应用市场上架,申请权限未告知目的被驳回问题的简单处理方式

关于华为应用市场上架过程中出现的【您的应用在运行时&#xff0c;未同步告知权限申请的使用目的&#xff0c;向用户索取&#xff08;存储、拍照&#xff09;等权限&#xff0c;不符合华为应用市场审核标准。】 使用方式&#xff1a; 1、引入 import permision from "/m…...

【ElasticSearch】概述

文章目录 ElasticSearch1.基本介绍2.设计理念3.基本架构与核心概念学习参考资料&#xff1a; ElasticSearch 简单整理ES基本概念&#xff0c;设计理念&#xff0c;构建与使用&#xff0c;供回顾。 1.基本介绍 Elasticsearch 是一个基于 Apache Lucene 的开源的分布式搜索引擎…...

十进制转十六进制 C/C++蓝桥杯基础试题BASIC-10

问题描述 十六进制数是在程序设计时经常要使用到的一种整数的表示方式。它有0,1,2,3,4,5,6,7,8,9,A,B,C,D,E,F共16个符号&#xff0c;分别表示十进制数的0至15。十六进制的计数方法是满16进1&#xff0c;所以十进制数16在十六进制中是10&#xff0c;而十进制的17在十六进制中是…...

保姆级教程:用Eclipse Paho库在Java中实现MQTT over WebSocket连接(以DJI无人机控制为例)

从零构建无人机控制系统&#xff1a;基于Eclipse Paho的MQTT over WebSocket实战指南 引言 想象一下&#xff0c;你正在开发一个需要实时控制无人机的Web应用。传统的TCP连接在浏览器环境中处处受限&#xff0c;而WebSocket技术恰好能解决这一痛点。本文将带你深入探索如何利用…...

GLM-OCR模型开箱即用体验:CSDN星图GPU平台一键部署

GLM-OCR模型开箱即用体验&#xff1a;CSDN星图GPU平台一键部署 最近在做一个需要批量处理图片文字识别的项目&#xff0c;传统的手动部署OCR模型&#xff0c;光是配环境、装依赖、解决版本冲突就能耗掉大半天&#xff0c;更别提还得自己搞定GPU驱动和显存分配了。正当我为此头…...

Fun-ASR-MLT-Nano-2512实战教程:FFmpeg音频降噪预处理提升远场识别率

Fun-ASR-MLT-Nano-2512实战教程&#xff1a;FFmpeg音频降噪预处理提升远场识别率 1. 引言 远场语音识别一直是个头疼的问题——背景噪音、回声干扰、声音衰减&#xff0c;这些因素让语音识别准确率大幅下降。在实际应用中&#xff0c;我们经常遇到这样的场景&#xff1a;会议…...

什么是电商CRM系统?从入门到精通,全面解析其定义与功能模块

在电商行业竞争日益激烈的今天&#xff0c;如何高效管理客户关系、提升用户价值已成为品牌增长的关键。本文将带您全面了解电商CRM系统&#xff0c;从基础概念到功能模块&#xff0c;再到行业解决方案&#xff0c;助您掌握这一提升业绩的利器。一、电商CRM&#xff1a;数字化时…...

跨平台协同:Windows主机+Mac笔记本共享Qwen3-32B-Chat镜像方案

跨平台协同&#xff1a;Windows主机Mac笔记本共享Qwen3-32B-Chat镜像方案 1. 为什么需要跨平台共享大模型资源&#xff1f; 去年我入手了一台搭载RTX4090D显卡的Windows主机&#xff0c;专门用于本地部署大模型。但作为MacBook用户&#xff0c;日常开发都在笔记本上完成&…...

DAMOYOLO-S赋能工业视觉:基于OpenCV的自动化零件缺陷检测方案

DAMOYOLO-S赋能工业视觉&#xff1a;基于OpenCV的自动化零件缺陷检测方案 在工业制造的生产线上&#xff0c;零件质检一直是个让人头疼的活儿。传统的人工目检&#xff0c;不仅效率低下&#xff0c;容易受工人疲劳、经验差异影响&#xff0c;导致漏检、误判&#xff0c;而且成…...

MIT AI工具一分钟预览高度逼真3D打印成品外观,所见即所得

从电影道具到医疗设备&#xff0c;3D打印正在快速改变我们制造功能原型的方式。然而&#xff0c;大多数打印软件生成的预览只关注结构路径&#xff0c;忽略了颜色、光泽、纹理等外观要素&#xff0c;导致用户常常需要反复试印。根据3D科学谷的市场观察&#xff0c;MIT和普林斯顿…...

OpenClaw日志分析:千问3.5-35B-A3B-FP8任务执行效率优化

OpenClaw日志分析&#xff1a;千问3.5-35B-A3B-FP8任务执行效率优化 1. 为什么需要关注OpenClaw的任务执行效率 上周我在本地部署了OpenClaw&#xff0c;并接入千问3.5-35B-A3B-FP8模型进行自动化任务测试。最初几天运行还算顺利&#xff0c;但随着任务复杂度增加&#xff0c…...

OpenClaw文件管理机器人:千问3.5-9B智能归类200+技术文档

OpenClaw文件管理机器人&#xff1a;千问3.5-9B智能归类200技术文档 1. 为什么需要文件管理机器人 我的下载文件夹已经变成了一个数字黑洞——里面堆积着超过200份未分类的技术文档&#xff0c;包括PDF白皮书、Markdown笔记、代码片段和会议录音。每次寻找特定文件都需要在混…...

JavaScript this 关键字详解

JavaScript this 关键字详解 引言 在JavaScript中,this 是一个非常重要的关键字,它用来指代当前执行上下文中的对象。理解 this 的行为和作用域对于编写高效、可维护的JavaScript代码至关重要。本文将深入探讨 this 的概念、用法以及在不同场景下的表现。 什么是 this? …...