微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

我可以在 svg 中链接两个元素,以便将鼠标悬停在一个元素上会改变另一个元素的属性吗?

如何解决我可以在 svg 中链接两个元素,以便将鼠标悬停在一个元素上会改变另一个元素的属性吗?

假设我有 2 个 svg 元素、一个圆圈和一些文本:

<svg version="1.1" width="500" height="500" viewBox="0 0 1500 1500" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
    <circle cx="1000" cy="1000" r="50" />
    <text x="900" y="900" style="font-size:100px">Test</text>
</svg>

接下来,我希望文本仅在鼠标悬停时显示,我可以这样做:

<svg version="1.1" width="500" height="500" viewBox="0 0 1500 1500" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
    <circle cx="1000" cy="1000" r="50" />
    <text x="900" y="900" style="font-size:100px" opacity="0" onmouSEOver="evt.target.setAttribute('opacity','1');" onmouSEOut="evt.target.setAttribute('opacity','0');">Test</text>
</svg>

是否可以将圆圈和文本链接起来,将鼠标悬停在其中一个上会使文本变得可见,同时在所有情况下都保持圆圈可见?

解决方法

根据 Robert Longson 的有用评论,这是一个 JavaScript 解决方案:

<svg version="1.1" width="500" height="500" viewBox="0 0 1500 1500" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">  
    <circle id="circle" cx="1000" cy="1000" r="50" />
    <text id="text" x="900" y="900" style="font-size:100px" opacity="0">Test</text>
    <script>
        <![CDATA[
            var circle = document.getElementById("circle");
            var text = document.getElementById("text");
            circle.addEventListener("mouseover",function(event){
                text.setAttribute('opacity',1);
            })
            circle.addEventListener("mouseout",0);
            })
        ]]>
    </script>
</svg>

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。