【svg】引入svg(非图标)

news2025/1/15 22:43:49

这里写目录标题

    • 直接插入页面—— 有各层svg内容并可赋值属性
    • css 背景图 ——不可更改各层svg属性
    • 创建标签(动态添加)——可改属性但是还不如直接插入
    • 不常用(没弄明白)

目的:如果直接以图片的方式引用svg 不能改变内层svg的属性 ,但是一下都引用方式都不能满足我的需求(svg的大小,内部背景颜色或者线条的颜色根据外部传入的值更改),最后我写了一个npm插件 ✌地址

直接插入页面—— 有各层svg内容并可赋值属性

<body>
    <svg>
        <circle>......</circle>
    </svg>
</body>

css 背景图 ——不可更改各层svg属性

 div {background-image:url("svg文件路径")}

创建标签(动态添加)——可改属性但是还不如直接插入

 mounted () {
        let svg = this.makeSVG('svg');
        let g = this.makeSVG('g');
        var circle = this.makeSVG('circle', { cx: 50, cy: 50, r: 10, stroke: 'black', 'stroke-width': 2, fill: 'red' });
        let terget = document.getElementById('s');
        g.appendChild(circle);
        svg.appendChild(g);
        terget.appendChild(svg);

    },
 methods: {
        makeSVG (tag, attrs) {
            const ns = 'http://www.w3.org/2000/svg';
            let el = document.createElementNS(ns, tag);
            for (let k in attrs) {
                el.setAttribute(k, attrs[k]);
            }
            return el;
        }
    }

在这里插入图片描述
在这里插入图片描述
textContent属性可以获取和设置text元素文本:

/ SVG
<text id="text" x="25" y="25" font-size="16" style="fill:rgb(0,0,0);">foo</text>;
 
// JS
<script>
    var text = document.getElementById( "text" );
    console.log( text.textContent ); // foo
    text.textContent = "Hello world!"; // 重新设置文本
</script>

获取元素高宽和坐标:getBBox方法可以获取所有元素的高宽和坐标:

// SVG
<text id="text" x="25" y="25" font-size="16" style="fill:rgb(0,0,0);">foo</text>;
 
// JS
<script>
    var text = document.getElementById( "text" );
    console.log( text.getBBox() ); // {height: 16, width: 32, y: 11, x: 25} 
</script>

SVG也可以像HTML那样为元素添加自定义事件。
使用on + 事件名属性监听:

// SVG
<text id="text" x="25" y="25" font-size="16" style="fill:rgb(0,0,0);">foo</text>;
 
// JS
<script>
    var text = document.getElementById( "text" );
    // 点击文本时弹出其内容
    text.onclick = function() {
        alert( this.textContent );
    };
</script>

也可以使用element.addEventListener方法监听:

// SVG
<text id="text" x="25" y="25" font-size="16" style="fill:rgb(0,0,0);">foo</text>;
 
// JS
<script>
    var text = document.getElementById( "text" );
    // 点击文本时弹出其内容
    // 事件名前面不带on
    text.addEventListener( 'click', function() {
        alert( this.textContent );
    } );
</script>

两种方法有什么不同?on +事件名属性只能为同一个事件添加一个处理方法,再对这个属性进行设置时会覆盖掉上一个方法,而element.addEventListener多次使用也不会覆盖上一个,而是从原来的事件上叠加

不常用(没弄明白)

object标签

<object type="image.svg+xml data="svg文件路径"></object>

在这里插入图片描述

embed标签 效果同object 不知原因

<embed type="image/svg+xml" src="svg文件路径"></embed>

iframe标签 效果同object 不知原因

<iframe src="svg文件路径"></iframe>

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

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

相关文章

【C++基础入门】初识C++、数据类型

一&#xff1a;C简介 1.1 介绍 C&#xff08;c plus plus&#xff09;是一种计算机高级程序设计语言&#xff0c;由C语言扩展升级而产生 [17] &#xff0c;最早于1979年由本贾尼斯特劳斯特卢普在AT&T贝尔工作室研发。C既可以进行C语言的过程化程序设计&#xff0c;又可以…

深度学习 <实战Kaggle比赛:预测房价> 代码分析 跟李沐学AI

4.10. 实战Kaggle比赛&#xff1a;预测房价 — 动手学深度学习 2.0.0 documentation 若有错误请指出 一.数据处理部分 1.下载部分 没啥好说的 import hashlib import os import tarfile import zipfile import requests#save DATA_HUB dict() DATA_URL http://d2l-data.…

2-8 SpringCloud快速开发入门: Eureka 注册中心高可用集群搭建

Eureka 注册中心高可用集群搭建 Eureka 注册中心高可用集群就是各个注册中心相互注册 Eureka Server的高可用实际上就是将自己作为服务向其他服务注册中心注册自己&#xff0c;这样就会形成一组互相注册的服务注册中心&#xff0c;进而实现服务清单的互相同步&#xff0c;往注…

【博学谷学习记录】超强总结,用心分享丨人工智能 机器学习 逻辑回归模型遗漏知识点总结

目录激活函数逻辑回归的优缺点总结LR可以进行多分类吗&#xff1f;激活函数 h(w)表示输入的线性方程 逻辑回归的优缺点总结 优点&#xff1a; 形式简单&#xff0c;模型的可解释性非常好。从特征的权重可以看到不同的特征对最后结果的影响&#xff0c;某个特征的权重值比较高…

Docker搭建redis-cluster集群

以下是搭建redis-cluster集群&#xff0c;该集群是redis3.0引进了的&#xff0c;该集群比redis-sentinel哨兵架构有以下优点 可以配置多主多从&#xff0c;在redis设置内存可以更大&#xff0c;而哨兵只能配置一主多从&#xff0c;且单个主节点内存不宜设置过大&#xff0c;否…

操作系统内核与安全分析课程笔记【0】环境搭建

本学期选择了游伟和黄建军老师的操作系统内核分析与安全&#xff0c;目前已经试听了第一节课。这门的授课老师建了一个网页用于收录本次课程的幻灯片材料&#xff0c;录屏材料&#xff0c;以及软件安装包等一系列课程用得到的材料。对于学生而言&#xff0c;这是一门既硬核能够…

【机器学习】机器学习实验三:集成算法1(详细代码展示)

文章目录一、实验介绍1.1 简单介绍1.2 Breast Cancer 数据实验1.3 Boston 数据实验二、项目地址三、算法结果展示一、实验介绍 1.1 简单介绍 AdaBoost 和 Random Forest 算法的原理 1.2 Breast Cancer 数据实验 对 Breast Cancer 数据进行探索性数据分析&#xff1b; 数据预…

VMware虚拟机安装ubuntu系统在虚拟机中全屏以及主机和虚拟机之间文件的复制

一、从Wndows复制文字到VMware&#xff08;Linux&#xff09; List item 今天需要用到了Linux操作系统。在VMware装上linux之后经常面临这样一个问题&#xff0c;那就是很多指令很长&#xff0c;逐字去敲显然费时费力。 按照惯例我也查了几种方法&#xff0c;然而要么就是需要…

API 接口测试经验分享

接口开发完成后&#xff0c;我们需要调用接口来测试接口的表现&#xff0c;当表现符合预期时&#xff0c;则代表接口可用。 在测试中我们可能会关注状态码、响应体以及响应时间&#xff0c;这些数据 Postcat 通通都会展示给你&#xff0c;判断 API 是否正常。 开始测试之前&…

pytorch-把线性回归实现一下。原理到实现,python到pytorch

线性回归 线性回归输出是一个连续值&#xff0c;因此适用于回归问题。回归问题在实际中很常见&#xff0c;如预测房屋价格、气温、销售额等连续值的问题。 与回归问题不同&#xff0c;分类问题中模型的最终输出是一个离散值。所说的图像分类、垃圾邮件识别、疾病检测等输出为离…

ModStartBlog v6.8.0 博客置顶功能,界面样式优化

ModStart 是一个基于 Laravel 模块化极速开发框架。模块市场拥有丰富的功能应用&#xff0c;支持后台一键快速安装&#xff0c;让开发者能快的实现业务功能开发。 系统完全开源&#xff0c;基于 Apache 2.0 开源协议。 功能特性 丰富的模块市场&#xff0c;后台一键快速安装 …

2-7 SpringCloud快速开发入门: Eureka 服务注册中心发现与消费服务

Eureka 服务注册中心发现与消费服务 我们已经搭建一个服务注册中心&#xff0c;同时也向这个服务注册中心注册了服务&#xff0c;接下来我们就可以发现和消费服务了&#xff0c;这其中服务的发现由 eureka 客户端实现&#xff0c;而服务的消费由 Ribbon 实现&#xff0c;也就是…

10组小程序界面设计案例分享

10组小程序界面设计分享而对于设计师来说&#xff0c;小程序的设计也相对 APP 简单和直接&#xff0c;在这里分享给大家一些小程序界面设计案例&#xff0c;包含多种类别&#xff1a;出游旅行类、电商购物类、电商家居类、生活社区类、快递物流类、智能家居类、在线文档类、书籍…

基于四信网络摄像机的工业自动化应用

方案背景 随着数控机床被广泛的应用在工业生产中&#xff0c;数控技术发展成为制造业的核心。 鉴于数控机床的复杂性&#xff0c;以及企业人力储备有限&#xff0c;设备的监控和维护必须借助外部力量&#xff0c;而如何实现车间实时监测成了目前迫切解决的问题。 方案需求 ①兼…

PHP使用chilkat入门教程

前言&#xff1a; 我们需要先确认自己的版本&#xff0c;在PHP中&#xff0c;可以利用phpinfo()函数来查看php是ts版本还是nts版本&#xff0c;该方法可以展示出当前phpinfo信息&#xff0c;若“Thread Safety”项的信息是“enabled”&#xff0c;一般来说就表示ts版本&#xf…

什么是接口测试,我们如何实现接口测试?

1. 什么是接口测试 顾名思义&#xff0c;接口测试是对系统或组件之间的接口进行测试&#xff0c;主要是校验数据的交换&#xff0c;传递和控制管理过程&#xff0c;以及相互逻辑依赖关系。其中接口协议分为HTTP,WebService,Dubbo,Thrift,Socket等类型&#xff0c;测试类型又主…

Hbase限流 -- HBase Quota调研

1 背景 HBase的生产环境中&#xff0c;每个业务之间的重要性是不一致的&#xff0c;每个业务的数据量、读写需求也不一致&#xff0c;一个集群中往往有很多个业务&#xff0c;有的同学可以执行一个耗时的scan操作&#xff0c;整个集群的资源被大量占用&#xff0c;其它非常重要…

【Servlet篇2】创建一个web项目

在上一篇文章当中&#xff0c;已经提到了什么是Maven&#xff0c;以及如何使用maven从中央仓库下载jar包。【Tomcat与Servlet篇1】认识Tomcat与Maven_革凡成圣211的博客-CSDN博客Tomcat&#xff0c;mavenhttps://blog.csdn.net/weixin_56738054/article/details/129228140?spm…

vue 3 第六章:to全家桶

文章目录1. toRef1.1. 使用toRef函数2. toRefs2.1. 使用toRefs函数3. toRaw3.1. 使用toRaw函数1. toRef 将一个对象中的属性转换成单独的响应式引用接收两个参数&#xff1a;参数一 > 对象 参数二 > 属性转换后的响应式引用会跟踪原始属性的变化转换后的响应式可以被用于…

Mysql从基础入门(1)之数据库建表和增删改

文章目录数据库的介绍1.ER图2.约束Mysql常用命令数据库定义&#xff08;DDL&#xff09;1.DDL操作数据库2.DDL操作表操作数据&#xff08;DML&#xff09;1. 添加数据2. 修改数据3. 删除数据数据库的介绍 数据库&#xff1a;存储和管理数据的仓库&#xff0c;数据是有组织的进…