学习笔记——SVG.js中的use和marker元素的相关方法

这篇具有很好参考价值的文章主要介绍了学习笔记——SVG.js中的use和marker元素的相关方法。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

Use()

use()

use元素只是模拟另一个现有元素。主元素上的任何更改都将反映在所有使用实例上。use()的用法非常简单:

var rect = draw.rect(100, 100).fill('#f09')
var use  = draw.use(rect).move(200, 200)

在上述示例的情况下,svg绘图中将显示两个矩形,即原始矩形和使用实例矩形。在某些情况下,可能需要隐藏原始元素。最好的方法是在defs节点中创建原始元素:

var rect = draw.defs().rect(100, 100).fill('#f09')
var use  = draw.use(rect).move(200, 200)

这样,rect元素充当库元素。您可以编辑它,但它不会被渲染。
另一种方法是指向外部SVG文件,只需指定元素id和文件路径。

var use  = draw.use('elementId', 'path/to/file.svg')

当您已经创建了复杂的图像时,这种方法非常有用。
注意,对于外部图像(在您的域之外),可能需要使用XHR加载文件。

Marker()

1)marker()

可以将marker添加到直线、多段线、多边形和路径的每个单独点。有三种类型的标记:start、mid和end。如果start代表第一个点,则end是最后一个点和mid是中间点。

var path = draw.path('M0 0 A50 50 0 0 1 50 50 A50 50 0 0 0 100 100')

path.fill('none').move(20, 20).stroke({ width: 1, color: '#ccc' })

path.marker('start', 10, 10, function(add) {
  add.circle(10).fill('#f06')
})
path.marker('mid', 10, 10, function(add) {
  add.rect(5, 10).cx(5).fill('#ccc')
})
path.marker('end', 20, 20, function(add) {
  add.circle(6).center(4, 5)
  add.circle(6).center(4, 15)
  add.circle(6).center(12, 10)

  this.fill('#0f9')
})

marker()方法有三种用法。首先,可以在任何容器元素(例如svg、nested、group…)上创建marker。如果您计划多次重用marker,这很有用,因此它将在defs中创建marker,但尚未显示:

var marker = draw.marker(10, 10, function(add) {
  add.rect(10, 10)
})

其次,可以创建marker并直接应用于其目标元素:

path.marker('start', 10, 10, function(add) {
  add.circle(10).fill('#f06')
})

这将在def中创建marker并直接应用它。注意,第一个参数定义了marker的位置,并且有四个参数,而第一个示例中有三个参数。

最后,如果在容器元素上创建marker以供重用,则可以将其直接应用于目标元素:

path.marker('mid', marker)

最后,要从目标元素引用中获取marker实例:

path.reference('marker-end')
2)marker.height()/width()

定义marker的高度/宽度:

marker.height(10)
marker.width(10)
3)marker.ref()

默认情况下,marker的refX和refY属性分别设置为宽度和高度值的一半。要不同地定义marker的refX和refY,请执行以下操作:

marker.ref(2, 7)
4)marker.size()

定义marker宽度和marker高度属性:

marker.size(10, 10)
5)marker.update()

更新marker的内容,将清除marker元素现有内容,并添加一个函数作为第一个参数:

marker.update(function(add) {
  add.circle(10)
})
6)marker.orient()

定义orient(朝向)属性:

marker.orient(50)

视频讲解

视频讲解文章来源地址https://www.toymoban.com/news/detail-453638.html

到了这里,关于学习笔记——SVG.js中的use和marker元素的相关方法的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • CSS 伪元素: ::marker 自定义列表序号

    伪元素 ::marker,可 作用在任何设置了 display: list-item 的元素或伪元素上,例如li和summary 。 ​ 但是,对于 ::marker 伪元素内的样式, 目前只允许使用 : all font properties -- 所以字体属性相关 colo r -- 颜色值 the content property -- content 内容,类似于 ::before 伪元素 的 content,用于填充

    2024年02月16日
    浏览(37)
  • Unity Timeline学习笔记(3) - SignalTrack信号轨道和自定义带参数的Marker信号和轨道

    信号轨道,顾名思义就是运行到某处发送一个信号。 普通用法就是没有任何封装的,个人感觉特别难用,但是有必要理解一下工作原理。 添加信号 我们添加一个信号资源 生成后可以看到资源文件,这个是可以拖到SignalTrack上的。 我们在Timeline上添加两个信号轨道,并拖动信

    2024年04月13日
    浏览(34)
  • html5学习笔记15-内联SVG 可缩放矢量图形

    https://www.runoob.com/html/html5-svg.html SVG 图形的容器。SVG 有多种绘制路径、框、圆、文本和图形图像的方法。 可伸缩矢量图形 (Scalable Vector Graphics) SVG 用于定义用于网络的基于矢量的图形 SVG 使用 XML 格式定义图形 SVG 图像在放大或改变尺寸的情况下其图形质量不会有损失 SVG 是万

    2024年02月11日
    浏览(51)
  • 20230515学习笔记——js中的同步任务与异步任务,宏任务与微任务

    2023-05-15 (1)js中的同步任务与异步任务 ①同步任务是指:不耗时的任务,就是执行很快, ②异步任务是指:耗时的任务,它里面有一个机制是EventLoop(事件循环),即值耗时任务会被js分配到宿主环境中进行执行,执行后的结果放到一个“消息队列”中,当js将同步任务执行完

    2024年02月04日
    浏览(42)
  • selenium查找svg元素

    目录 如何为SVG元素编写XPath 使用local-name()的语法 需要记住的一点

    2024年02月16日
    浏览(46)
  • js 过滤两个数组中的相同元素

    encodeComponent() 不会对 ASCII 数字 或者   - _ . ! ~ * \\\' ( )   编码 。只对 #¥%@…… ....等编码 防止 服务端解析 这些地址 无法识别  相反 decodeComponent() 解码  js中encodeURIComponent函数的使用,加码解码_玉米妈妈-momoxifei的博客-CSDN博客 js中encodeURIComponent函数的使用,加码解码 https:

    2024年02月15日
    浏览(33)
  • 使用svg在元素直接绘制连线箭头

    注意:svg的图形绘制的点位置坐标是基于画布的位置坐标,相当于从左上角的点为起点。 先来个简单示例: 上面示例中可以看到, svg 画布的位置在哪, path 中点的坐标就从哪里开始,默认是从浏览器可视窗口的左上角开始。那么我们只要知道点的坐标就能绘制箭头了。 接

    2024年02月04日
    浏览(39)
  • js判断对象数组中的元素是否存在重复

     1、使用  Array.some()  方法和自定义比较函数: 使用  Array.some()  方法遍历数组,对每个元素执行自定义的比较函数。比较函数使用  Array.findIndex()  方法来查找与当前元素相等且索引不同的元素,如果找到则表示存在重复元素。 2、使用  Set  数据结构: 使用  Set  数据结

    2024年02月13日
    浏览(65)
  • 基于Leaflet.js的Marker闪烁特效的实现-模拟预警

    目录 前言 一、闪烁组件 1、关于leaflet-icon-pulse 2、 使用leaflet-icon-pulse 3、方法及参数简介 二、闪烁实例开发 1、创建网页 2、Marker闪烁设置 3、实际效果  三、总结         在一些地质灾害或者应急情况当中,或者热门预测当中。我们需要基于时空位置来进行标记,不仅要

    2024年04月10日
    浏览(39)
  • JS 删除数组元素( 5种方法 )

    No. 内容链接 1 Openlayers 【入门教程】 - 【源代码+示例300+】 2 Leaflet 【入门教程】 - 【源代码+图文示例 150+】 3 Cesium 【入门教程】 - 【源代码+图文示例200+】 4 MapboxGL【入门教程】 - 【源代码+图文示例150+】 5 前端就业宝典 【面试题+详细答案 1000+】 在JavaScript中,删除数组元素

    2024年04月26日
    浏览(33)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包