javascript - 使用 <text> 元素为 SVG 添加标题?

标签 javascript jquery html svg

我是 SVG 新手。我正在尝试用那个人的名字为一个人的 svg 加上字幕。这是我的尝试:

<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
 viewBox="0 0 258.75 258.75" style="enable-background:new 0 0 258.75 258.75;" xml:space="preserve">
<g>
<circle cx="129.375" cy="60" r="60"/>
<path d="M129.375,150c-60.061,0-108.75,48.689-108.75,108.75h217.5C238.125,198.689,189.436,150,129.375,150z"/>
<text text-anchor="middle" x="60" y="75">Person Name Here</text>
</g>
</svg>

当我尝试将文本锚定在图像下方时,文本消失了。我该怎么办

  1. 更改图片的大小?
  2. 在图片底部为人名留出空间?

这是片段:

var svg = '<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"viewBox="0 0 258.75 258.75" style="enable-background:new 0 0 258.75 258.75;" xml:space="preserve"> <g> <circle cx="129.375" cy="60" r="60"/><path d="M129.375,150c-60.061,0-108.75,48.689-108.75,108.75h217.5C238.125,198.689,189.436,150,129.375,150z"/><text text-anchor="middle" x="60" y="75">Person Name Here</text></g></svg>'

$('#name').append(svg);
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<p id="name">Hello</p>

最佳答案

这可能是您需要的:

  1. 您可以使用 css 更改图像的大小,它会缩放您的所有 svg。
  2. 您只需要为 viewBox 留出更多空间并相应地放置您的名字。

希望这有帮助,片段:

var svg = '<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"viewBox="0 0 258.75 350.75" style="enable-background:new 0 0 258.75 258.75;" xml:space="preserve"> <style>.style1 {font-size: 15px;} </style> <g> <circle cx="129.375" cy="60" r="60"/><path d="M129.375,150c-60.061,0-108.75,48.689-108.75,108.75h217.5C238.125,198.689,189.436,150,129.375,150z"/><text class="style1" text-anchor="middle" x="125" y="290">Person Name Here</text></g></svg>'

$('#name').append(svg);
svg, object {
  width: 200px;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<p id="name">Hello</p>

关于javascript - 使用 <text> 元素为 SVG 添加标题?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45176288/

相关文章:

javascript - 如何通过设置时间隐藏或显示小部件

javascript - WebAssembly 会取代 JavaScript 吗?

jquery - 条件 .addClass()

javascript - 点击提交表单

javascript - 脱钩客户端是什么意思?

Javascript - 隐藏列的复选框

javascript - 如果元素显示(单击)高于初始值,则动画高度(自动)

javascript - 如何使用Jquery仅清除表格单元格中的数据?

php - 正则表达式跳过一个标签,如果它在另一个标签内

c++ - 带子类的django循环