Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/svg/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
线性半径坐标的SVG表达式_Svg - Fatal编程技术网

线性半径坐标的SVG表达式

线性半径坐标的SVG表达式,svg,Svg,我正在使用以下linearGradient元素: <linearGradient inkscape:collect="always" xlink:href="#linearGradient8704" id="linearGradient8774" gradientUnits="userSpaceOnUse" x1="45%" y1="45%" x2="55%" y2="55%" /> 你这样做有什么特别的原因吗?不是为了转移你最初的问

我正在使用以下
linearGradient
元素:

<linearGradient
   inkscape:collect="always"
   xlink:href="#linearGradient8704"
   id="linearGradient8774"
   gradientUnits="userSpaceOnUse"
   x1="45%"
   y1="45%"
   x2="55%"
   y2="55%" />

你这样做有什么特别的原因吗?不是为了转移你最初的问题,但我内心的编码者尖叫着说使用不同单位的表达式是错误的。是否可以使用javascript将其中一个值转换为其他单位?比如:

 var new_x1 = (window.innerWidth/2) + 20;
 document.getElementById('linearGradient8774').setAttribute('x1', new_x1 + 'px');

将来可能会在表示属性中使用calc()表达式(如CSS中定义的),但它还不是任何svg规范的一部分,而且目前还没有支持这一点的实现


如果您使用内联svg和javascript来计算所需的值,然后使用CSS将svg放置在需要的位置,您可能能够实现这一点。

我正在尝试更好地近似插入效果。你可以在上看到我原来的问题。我正在为任天堂Wii的web界面制作图形,它不支持CSS3,但支持SVG背景图像作为DIV元素。我需要一个动态大小的框,但是固定的边界半径(完成),和一个匹配那些固定大小的角的边界渐变,以便效果看起来正确。我对SVG了解不多。。。我可以在SVG文档本身中使用JS吗?或者JS是否运行在托管SVG的我的页面中?实际上,您可以同时执行这两项操作。如果您有一个控制svg的页面,我建议您添加一些脚本,否则,您可以将脚本标记(或外部文件)嵌入到svg中。(请参见此处,顶部附近:)您可能希望更新该问题,以澄清您需要在CSS背景图像中使用它,因为这排除了在svg中使用javascript的可能性。你的目标浏览器是任天堂Wii上的Opera。
 var new_x1 = (window.innerWidth/2) + 20;
 document.getElementById('linearGradient8774').setAttribute('x1', new_x1 + 'px');