【发布时间】:2021-02-16 11:42:05
【问题描述】:
我正在使用 html 按钮来打开和关闭全屏宽度的 SVG 图像。这些图像是单独的 SVG 文件。通过使 SVG 全宽,它们可以缩放到不同的横向尺寸。工作正常,但按钮布局不适用于 SVG。我的想法是将按钮面板制作为具有可点击区域的 SVG,以模仿 html 按钮。但是,我无法找到从 SVG 可点击区域调用 html 页面中的 javascript 切换功能的方法。我试着做一个简化的例子如下。
在简化的示例中,当我单击 layer01.svg 中定义的形状时,我尝试将 layer02.svg 切换为可见或隐藏。
我可以从 layer01.svg 中的“onclick”调用 html 中的“toggle”函数吗?
也许我找错树了。任何帮助表示赞赏! html: layer01.svg: layer02.svg: <html>
<head>
<style>
.layer{
position: absolute;
left: 0px;
top: 0px;
width:100%;
visibility: hidden;
}
#controlLayer{
visibility: visible;
}
</style>
<script type="text/javascript">
function toggleLayer(){
var svgLayer = document.getElementById("layer02");
if (window.getComputedStyle(svgLayer).visibility === "hidden") {
svgLayer.style.visibility='visible';
} else {
svgLayer.style.visibility='hidden';
}
}
</script>
</head>
<body>
<embed id="controlLayer" class="layer" src="layer01.svg" >
<embed id="layer02" class="layer" src="layer02.svg" >
</body>
</html> <?xml version="1.0" encoding="UTF-8"?>
<svg width="1920" height="890" version="1.1" viewBox="0 0 508 235.48" xmlns="http://www.w3.org/2000/svg" >
<g stroke-width=".79375">
<rect x="10" y="10" width="40" height="40" fill="#ff0" onclick="toggleLayer()"/>
</g>
</svg>
<?xml version="1.0" encoding="UTF-8"?>
<svg width="1920" height="890" version="1.1" viewBox="0 0 508 235.48" xmlns="http://www.w3.org/2000/svg">
<rect x="193.1" y="30.167" width="138.47" height="171.17" fill="#f00" stroke-width=".79375"/>
</svg>
【问题讨论】:
-
请编辑问题并分享minimal reproducible example?
-
使用编辑器工具栏上的 [ ] 按钮将您的代码转换为我们可以玩的 SO sn-p
-
我已将 html 放入 sn-p - 不确定如何处理 SVG
标签: javascript html svg