gpt4 book ai didi

javascript - SVG 用不同的颜色显示路径的不同部分

转载 作者:行者123 更新时间:2023-12-03 00:22:51 24 4
gpt4 key购买 nike

I have been trying to implement the following requirements.
1. SVG path to have multiple colors on different sections (eg - red color the curves and rest of it, in black color)
2. Only allow mouse event- click on those colored areas (curves)

I have tried with plain javascript and snap.svg

Plain html & Javascript
[Codepen using HTML & Js][1]
SNAP.svg
[Codepen using SNAP.svg][2]


[1]: https://codepen.io/sanathko1234/pen/vvMQQZ
[2]: https://codepen.io/sanathko1234/pen/OrGoRa

How can this be achieved?

最佳答案

一种解决方案是使用该路径两次:第一个是绿色路径,第二个是使用 lines-dasharray 的路径。虚线仅位于曲线上方。如果您不喜欢破折号的位置或长度,请将其更改为您需要的值。间隙对鼠标事件不敏感,只有破折号对鼠标事件敏感。

在CSS中我添加了#gold:hover{cursor:pointer},这样你就可以看到只有破折号对鼠标敏感。

希望对您有帮助。

svg{border:1px solid}
use{fill:none;stroke-width:18;}
#gold:hover{cursor:pointer}
<svg viewBox="-10 50 580 360" width="580" height="360" xmlns="http://www.w3.org/2000/svg">
<defs>
<path id="svg_1" d="m555,272c1,0.76736 4,85.76736 -71,97.76736c-75,12 -387,-39 -388,-39.76736c0,-0.23264 -29,-1.23264 -45,-21.23264l-42,-124.76736c-3,-11.23264 -3,-21.23264 3,-26.23264c6,-5 46,-67 69,-69.76736l474,184z" />
</defs>
<g>
<title>background</title>
<rect fill="#fff" id="canvas_background" height="360" width="580" x="-10" y="50"/>
</g>
<g>
<title>Layer 1</title>

<use xlink:href="#svg_1" stroke="green" />
<use xlink:href="#svg_1" stroke="gold" stroke-dasharray ="130 370 110 60 90 40 90 400 52.45" id="gold" pointer-events="stroke" />
</g>
</svg>

观察结果:虚线和间隙的总和是 1342.45,这也是总路径长度。

关于javascript - SVG 用不同的颜色显示路径的不同部分,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54227517/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com