添加链接
link之家
链接快照平台
  • 输入网页链接,自动生成快照
  • 标签化管理网页链接

因为我们的图片尺寸是随机的,所以viewBox的设置也是根据图片的尺寸来设置的:

<template>
  <div ref="container" class="content" id="container-rect"></div>
</template>
<script>
import * as d3 from "d3";
export default {
  data() {
    return {
      svg: "",
	mounted() {
		this.svg = d3.select("#container-rect")
								.append("svg")
								.attr("id", "svg")
	methods: {
		// 将图片插入svg中
		appendImg(imgUrl, res) {
            // 获取到的可视区域宽高
			let svgW = this.$refs.container.offsetWidth
    	    let svgH = this.$refs.container.offsetHeight
			this.svg
					.attr("width", svgW)
					.attr("height", svgH)
					.attr("viewBox", [(res.img.width/2)-(svgW/2), (res.img.height/2)-(svgH/2), svgW, svgH])
			this.svg
				.append("g")
				.attr("id", "image-g")
				.append("image")
				.attr("width", res.img.width)
				.attr("height", res.img.height)
				.attr("class", "control-img")
				.attr("href", imgUrl)
</script>
https://zqy233.github.io/ svg -zoom-drag-vue-demo/#/https://github.com/zqy233/ svg -zoom-drag-vue-demo 上方两个自定义指令已经发布为npm包,可以直接安装使用 绑定两个命令到dom上 指令将绑定 元素 的第一个子 元素 当做 svg ,所以请注意绑定的 元素 这样设计是为了搭配
这里写自定义目录标题欢迎使用Markdown编辑器新的改变功能快捷键合理的创建标题,有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容 居中 、居左、居右SmartyPants创建一个自定义列表如何创建一个注脚注释也是必不可少的KaTeX数学公式新的甘特图功能,丰富你的文章UML 图表FLowchart流程图导出与导入导出导入 欢迎使用Markdown编辑器 你好! 这是你第一次使用 Markdown编辑器 所展示的欢迎页。如果你想学习如何使用Mar
项目中用到表格内画折线趋势图,本人使用的 svg 绘制简单折线;没有数据的单元格显示文字,为了不影响表格的宽度自适应,就想到在 svg 上写文字。于是就有了在 svg 上对文字样式进行垂直 居中 的需求,上代码: &lt; svg version="1.1" className={Style. svg Line}&gt; &lt;text x='50%' y='50%' className={Style.s...
本主题演示了如何使用可缩放的向量图形 ( SVG ) 进行缩放和平移,并在结尾处提供了一个可进行缩放和平移的复杂组织结构图示例。假定你掌握了基本的 HTML 和 JavaScript 知识,并能访问可在 HTML5 中呈现内联 SVG 的浏览器(如 Windows Internet Explorer 9)。 创建 SVG 测试图 基于浏览器的 SVG 缩放和平移 基于 Java... SVG :android5.0+出现,w3c推出     使用xml 描述二维图形语言,矢量图,放大缩小无影响  为什么用 svg ,现在手机的短板是内存,不是cpu, svg 通过cpu计算,png占用内存     Android上对 svg 进行阉割,使用Vector Drawable对 svg 支持, svg 小 2. svg 语法:   Vector 语法简介,如何看懂一张 svg (1)Path指令解析如下所示:                 M = moveto(M X,Y) :将画笔移动到指定的坐标位置,相当于 android Path 里的moveTo() const SVG Parser = require('convertpath') const parse = SVG Parser.parse('./test/test. svg ', { plugins: [ convertUseToGroup: t
SVG ( Scalable Vector Graphics),即可缩放矢量图形, 是基于XML( Extensible Markup Language) 描述二维矢量图形的标记语言,由World Wide Web Consortium( W3C联盟,即万维网 联盟) 自1999年开始开发的开放标准。 文档中列出了7种基本图形 元素 及部分说明,可供参考。
获取 SVG 中g标签的宽度高度及位置坐标1. 问题 的出现对于普通的HTML 元素 ,有很多获得其宽度width、高度height、距左left、距顶top等属性的方法: 类似offsetWidth,clientWidth,width之类的,通过查看DOM 元素 的属性可以一探究竟: 然而当遇到 SVG 的g标签的时候,却碰到 问题 了: 明明在开发者工具中可以显示的宽高、位置坐标等属性,通过原有的of
要计算 SVG 画布上显示区域的比例,需要首先获取 SVG 元素 的宽度和高度,可以通过DOM API中的getBoundingClientRect()方法来实现。具体实现代码如下: const svg Element = document.querySelector(' svg '); // 获取 SVG 元素 const svg Rect = svg Element.getBoundingClientRect(); // 获取 SVG 元素 的矩形对象 const svg Width = svg Rect.width; // 获取 SVG 元素 的宽度 const svg Height = svg Rect.height; // 获取 SVG 元素 的高度 const aspectRatio = svg Width / svg Height; // 计算 SVG 画布的宽高比例 接下来,可以通过 设置 一个比例因子来确定 SVG 文字的大小。比例因子可以根据实际需求进行调整。比如,如果需要让文字大小占据 SVG 画布高度的10%,可以 设置 比例因子为0.1。然后,根据 SVG 画布的宽高比例和比例因子来计算文字大小。具体实现代码如下: const scaleFactor = 0.1; // 设置 比例因子 const fontSize = scaleFactor * svg Height / aspectRatio; // 计算 SVG 文字大小 最后,可以将计算得到的文字大小应用到 SVG 文本 元素 上。具体实现代码如下: const textElement = document.querySelector('text'); // 获取 SVG 文本 元素 textElement.style.fontSize = `${fontSize}px`; // 设置 SVG 文本 元素 的字体大小 注意:以上代码中的计算方式仅适用于 SVG 画布宽高比例与浏览器窗口宽高比例相同的情况。如果 SVG 画布宽高比例与浏览器窗口宽高比例不同,需要根据实际情况进行调整。