我有下面的代码来显示文本沿路径。我打算做一些动态的事情,我只需输入我想要的内容,然后沿着路径显示它。还没有制定如何做到这一点,任何建议将大多是受欢迎的。SVG文本路径,确定何时文本超出路径
但是我的问题是,我如何确切地知道文本在什么点上超出了路径的末尾,并且不再显示。这个想法是当我让它动态工作时,如果用户输入的句子比路径能够处理的时间长,它会告诉你文本将从某个特定点被切断。在这种情况下,用户只能看到“快速的棕色狐狸jum”这个词,前面我想让错误信息说“ps over the lazy dog”不能显示,或者至少在说话的时候最少“这句话是太长,并没有全部显示“
<?xml version="1.0" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg viewBox = "0 0 500 300" version = "1.1">
<defs>
<path id = "s3" d = "M 10,90 Q 100,15 200,70 "/>
</defs>
<g>
<text font-size = "20">
<textPath xlink:href = "#s3">
The quick brown fox jumps over the lazy dog
</textPath>
</text>
<use x = "0" y = "0" xlink:href = "#s3" stroke = "black" fill = "none"/>
</g>
</svg>
+1,这不正是* *真实的,虽然,因为如果超过一半的字符脱离路径,最后一个字符只会消失。所以'getComputedTextLength()'在实际消失之前可以比'getTotalLength()'略大。当你开始搞乱'text-anchor'或'startOffset',或者开始在路径上移动'tspan'时,它变得更加复杂。 – mercator
@mercator:你是对的,但是可以单独测量每个字符并且更精确。 startOffset只设置路径上的对齐点(沿路径的百分比),文本锚设置如何在对齐点周围对齐。这有点复杂,但我仍然可以用脚本来计算。 –
大家好!一个问题......如果我想让文本等东西通过路径溢出怎么办?对不起,如果这是一个愚蠢的问题,但我知道很少的SVG和溢出属性是不是很明显使用路径...:S –