html - 如何将 svg 文本粘贴到 svg 圆圈?
问题描述
简而言之,我希望无论圆圈移动到哪里,都会有一条文字与他同在。
我有一个与此类似的代码:
<svg width="100%" height="100%">
<g>
<circle cx="50%" cy="6%" r="7%" [ngStyle]="{'fill': circlerColor, 'transform': 'rotate(' + circleDegrees + 'deg)', 'transform-origin': 'center center', 'transition': 'transform 0.5s'}"></circle>
<text cx="50%" cy="6%" r="7%" style="z-index: 100; font-size: 10px; font-weight: bold;" [ngStyle]="{'fill': circlerColor, 'transform': 'rotate(' + circleDegrees + 'deg)', 'transform-origin': 'center center', 'transition': 'transform 0.5s'}"></text>
</g>
</svg>
从代码中,您可以看到圆圈像时钟一样 360 度移动。现在,这段代码真的把文字“粘”在了圆圈上,但是旋转了!例如,当它在 180 度时,文本是“倒置”。我想要一些方法,从文本中保持水平,“紧贴”但水平。
提前谢谢!
解决方案
好的,我结束的解决方案就像我的问题中的代码。
必须是一个 'g' 标签,它包含文本和圆圈。现在,您不能单独使用变换来移动圆:旋转、平移等,所有这些操作都必须在整个组上,我的意思是在“g”标签上。
我有一个特定的问题,即使旋转将在“g”标签内,文本也不会是水平的。解决方法很简单,“g”是“父”,里面的文字是“子”。所以将父级旋转 180 度,将子级旋转 180 度。
阅读有关“在圆形路径中移动元素”的更多信息:
https://usefulangle.com/post/32/moving-an-element-in-circular-path-with-css
推荐阅读
- ruby-on-rails - 如何使用保存为数组的枚举在表单中创建 rails 复选框?
- php - 根据文件的最后两个字符对文件进行排序
- php - 如何获得特定字符限制的所有单词
- ios - MFMailComposeViewController 收件人隐藏在发件人栏后面
- visual-studio - Xamarin.Forms 应用程序在更新后崩溃
- python - 如何在python中围绕中心点旋转图形
- json - 如何以 Angular 6 读取 JSON 文件
- python - 从 python 中的 sox 获取 .wav 的持续时间
- php - PHPMailer 不会发送电子邮件
- ios - 如何解决 --Ignored(用于导致先前/过多的 GPU 错误)(IOAF 代码 4)