gpt4 book ai didi

javascript - 悬停时修改 SVG 路径

转载 作者:行者123 更新时间:2023-11-28 12:47:51 24 4
gpt4 key购买 nike

我想在悬停时更改 svg 路径坐标,我可以在不使用 D3js 的情况下这样做吗?

SVG 是我在 sketchapp 上制作的一种图形,代码如下:

    <svg class="light-graph" viewBox="0 0 1440 269">
<g id="ANALYTICS" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd" sketch:type="MSPage">
<g sketch:type="MSArtboardGroup" transform="translate(0.000000, -331.000000)" id="header" fill="#3797D1" opacity="0.323868937">
<g sketch:type="MSLayerGroup">
<g id="bg-graph" sketch:type="MSShapeGroup">
<path d="M1123.39844,467.39269 L869.398438,569.515104 L720,331.388951 L559.398438,369.409092 L379.398437,587.524641 L123.398438,427.439835 L0,600 L1440,600 L1123.39844,467.39269 Z"></path>
</g>
</g>
</g>
</g>
</svg>

我想做的是在鼠标悬停时图形进行平滑过渡。该图将作为封面放在页眉上。

谢谢!

最佳答案

您可以使用 SMIL 来做到这一点,例如

<path d="M1123.39844,467.39269 L869.398438,569.515104 L720,331.388951 L559.398438,369.409092 L379.398437,587.524641 L123.398438,427.439835 L0,600 L1440,600 L1123.39844,467.39269 Z">
<animate begin="mouseover" attributeName="d" to="M1123.39844,467.39269 L869.398438,69.515104 L720,331.388951 L559.398438,369.409092 L379.398437,587.524641 L123.398438,427.439835 L0,600 L1440,600 L1123.39844,467.39269 Z" dur="0.3s" fill="freeze" />
<animate begin="mouseout" attributeName="d" to="M1123.39844,467.39269 L869.398438,569.515104 L720,331.388951 L559.398438,369.409092 L379.398437,587.524641 L123.398438,427.439835 L0,600 L1440,600 L1123.39844,467.39269 Z" dur="0.3s" fill="freeze" />
</path>

begin 属性是您想要激事件画的事件,to 是路径最终的样子。

fill="freeze"确保如果您将鼠标悬停在形状上,它会停留在动画位置。

这是我在 Firefox 中测试过的一个完整的独立示例。

<svg xmlns="http://www.w3.org/2000/svg" class="light-graph" viewBox="0 0 1440 269">
<g id="ANALYTICS" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
<g transform="translate(0.000000, -331.000000)" id="header" fill="#3797D1" opacity="0.323868937">
<g>
<g id="bg-graph">
<path d="M1123.39844,467.39269 L869.398438,569.515104 L720,331.388951 L559.398438,369.409092 L379.398437,587.524641 L123.398438,427.439835 L0,600 L1440,600 L1123.39844,467.39269 Z">
<animate begin="mouseover" attributeName="d" to="M1123.39844,467.39269 L869.398438,69.515104 L720,331.388951 L559.398438,369.409092 L379.398437,587.524641 L123.398438,427.439835 L0,600 L1440,600 L1123.39844,467.39269 Z" dur="0.3s" fill="freeze" />
<animate begin="mouseout" attributeName="d" to="M1123.39844,467.39269 L869.398438,569.515104 L720,331.388951 L559.398438,369.409092 L379.398437,587.524641 L123.398438,427.439835 L0,600 L1440,600 L1123.39844,467.39269 Z" dur="0.3s" fill="freeze" />
</path>
</g>
</g>
</g>
</g>
</svg>

关于javascript - 悬停时修改 SVG 路径,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24692288/

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