作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
这里的上下文很简单,我想从图形元素中捕获 transform
css 值并将其增加 10。
在我的例子中,我唯一的转换是翻译,但理想情况下,如果有其他转换,它也能工作,而且我只想更改翻译值。
我将其标记为正则表达式,但不确定是否需要它。
const myElement = document.getElementById('myElement');
const translateString = myElement.getAttribute('transform');
const newTranslateString = increaseArgumentsBy10(translateString);
myElement.setAttribute('transform', newTranslateString);
function increaseArgumentsBy10(translateString) {
console.log('To be implemented');
return translateString;
}
<svg>
<text id="myElement" transform="translate(50,50)">My Element
</text>
</svg>
最佳答案
你可以创建一个函数 translate
并使用 eval
const myElement = document.getElementById('myElement');
const translateString = myElement.getAttribute('transform');
const newTranslateString = increaseArgumentsBy10(translateString);
myElement.setAttribute('transform', newTranslateString);
function increaseArgumentsBy10(translateString) {
function translate(x, y) {
return('translate(' + (x + 10) + ', ' + (y + 10) + ')');
}
return eval(translateString);
}
<svg>
<text id="myElement" transform="translate(50,50)">My Element
</text>
</svg>
关于Javascript 在逗号之间的括号内提取值(增加元素的转换函数参数),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55280170/
我是一名优秀的程序员,十分优秀!