gpt4 book ai didi

javascript - svg 中的

转载 作者:技术小花猫 更新时间:2023-10-29 12:05:35 25 4
gpt4 key购买 nike

我有一个交互式 SVG - 以全窗口大小显示。我想给它添加一些按钮。是否可以添加正常 <button>里面的元素<svg>标签?
我想不是,但我想问一下 SVG 是否有类似的东西。
从一些绘图中,我得到了这样的糟糕结果:
https://jsfiddle.net/pvxr6g8k/1/

<svg version="1.1" id="svg9723" height="768" width="1268">
<g style="fill:#e6e6e6" id="g3332-7" transform="matrix(0.27404175,0,0,-0.447665,86.580009,508.16151)">
<g style="fill:#e6e6e6" clip-path="url(#clipPath3336-0-0)" id="g3334-7">
<g style="fill:#e6e6e6" transform="translate(992.5469,164.3086)" id="g3340-6">
<path inkscape:connector-curvature="0" id="path3342-2" style="fill:#e6e6e6;stroke:#241a5d;stroke-width:4.48957968;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10;stroke-dasharray:none;stroke-opacity:1" d="m 0,0 c -6.937,0 -12.58,5.645 -12.58,12.58 l 0,63.277 c 0,6.937 5.643,12.581 12.58,12.581 l 279.488,0 c 6.936,0 12.58,-5.644 12.58,-12.581 l 0,-63.277 C 292.068,5.645 286.424,0 279.488,0 L 0,0 Z"></path>
</g>
</g>
</g>
<text transform="scale(0.9324557,1.072437)" id="text3390-1" style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:11.87269115px;font-family:'Times New Roman';-inkscape-font-specification:'Times New Roman, Bold';writing-mode:lr-tb;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none" x="413.18262" y="390.15326">
<tspan style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-family:Arial;-inkscape-font-specification:'Arial Bold'" y="390.15326" x="413.18262" id="tspan3392-0" sodipodi:role="line">BUTTON</tspan>
</text>
</svg>

问题不是视觉外观,而是结构,它不允许我使用 JS 绑定(bind)事件或与之交互。更不用说按钮“按下”的视觉点击效果更难实现。

那么交互式SVG中按钮的解决方案是什么? HTML 中有像按钮这样的好元素吗?

我不必嵌入 html 按钮,任何好的按钮替换都可以

最佳答案

<button>是 HTML 元素,因此不能(直接)进入 SVG 元素。

不过,你可以考虑使用

<foreignObject position attributes>
<html:button>Button1</html:button>
</foreignObject>

只需确保正确声明 namespace ,例如在根目录中 <svg>元素,带有 xmlns:html="http://www.w3.org/1999/xhtml"

这适用于大多数浏览器。 Internet Explorer 不支持它,但 Microsoft Edge 支持。

或者,您可以只绘制自己的类似按钮的 <rect>并附上 click它的事件处理程序,它也可以正常工作。

关于javascript - svg 中的 <button> 元素?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39917883/

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