我正在尝试制作播放和停止按钮.我不知道如何在点击时将三角形形状(它是一条路径)变形为方形(它是一条路径).仅一次显示一个形状.有人可以帮忙吗?
最佳答案
我认为一种方法是在defs中定义你的两个路径,然后使用一个使用xlink:href =“#shapeName”和一个onclick处理程序来切换该属性或相应的DOM属性,如果支持的话.
原文链接:https://www.f2er.com/js/428942.html具有完全实现的SVG DOM的use元素对象具有href属性,其具有可以读取和设置的baseVal属性,因此在我测试的内部浏览器中(使用Firefox,Chrome,IE和Edge on Window)我们可以简单地切换属性,请参阅https://jsfiddle.net/4x0gnkob/的在线样本.
.st0{fill:none;
stroke:#000000;
stroke-width:4;
stroke-miterlimit:10;}
另一种方法是切换DOM属性,在HTML5环境中看起来有点复杂,因为我认为我可以用一行中的setAttributeNS和getAttributeNS来解决它,经过一些测试后似乎在HTML5中getAttribute(‘xlink:href’)工作更好,所以完整的代码试图测试哪个函数返回一个值.
function toggleLink(element,value1,value2) {
var xlinkNS = 'http://www.w3.org/1999/xlink';
var linkName = 'xlink:href';
var oldValue = element.getAttributeNS(xlinkNS,linkName) || element.getAttribute(linkName);
if (element.hasAttributeNS(xlinkNS,'href')) {
element.setAttributeNS(xlinkNS,linkName,oldValue == value1 ? value2 : value1)
}
else {
element.setAttribute(linkName,oldValue == value1 ? value2 : value1);
}
}
.st0{fill:none;
stroke:#000000;
stroke-width:4;
stroke-miterlimit:10;}