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
Javascript svg路径不可见_Javascript_Svg_Path - Fatal编程技术网

Javascript svg路径不可见

Javascript svg路径不可见,javascript,svg,path,Javascript,Svg,Path,为什么这条路径不可见?我正在用javascript动态创建路径,但路径在屏幕上不可见,但它存在于DOM中 var svg = document.getElementById('svg'); var path = document.createElementNS('http://www.w3.org/svg', 'path'); path.setAttribute('d', 'M100,100 L100,100'); path.setAttribute('style', 'stroke:black

为什么这条路径不可见?我正在用javascript动态创建路径,但路径在屏幕上不可见,但它存在于DOM中

var svg = document.getElementById('svg');
var path = document.createElementNS('http://www.w3.org/svg', 'path');
path.setAttribute('d', 'M100,100 L100,100');
path.setAttribute('style', 'stroke:black;fill:none;');
path.setAttribute('matrix', '1,0,0,1,100,100');
svg.appendChild(path);

或者作为一个

你有两个不同的问题

  • SVG名称空间实际上是

  • 你没有画一条线去任何地方,它从100100开始,在同一个地方结束


  • 您正在创建一条路径,该路径的起点为
    100100
    (由
    m100100
    表示),并将“线”绘制到完全相同的点(
    l100100
    ),因此您根本没有绘制线

    SVG路径区分绝对坐标和相对坐标。使用大写字母表示绝对值。小写字母用于相对坐标值(相对于之前绘制或移动的坐标)

    您可以使用小写字母来表示相对路径:
    m100100 l100100
    表示从
    100100
    开始,画一条线到一个点,该点在x方向上为100px,在y方向上为100px


    或者你应该使用另一个坐标,例如:
    M100100 L10110
    (从
    100100
    开始,画一条线到
    110110
    )。

    正如罗伯特所说,你的线在同一点开始和结束。“M100100 L100100”指移动到100100并画一条线到100100。也许您的意思是“M100100 L100100”-注意“L”是小写的,这意味着您给出的是相对于当前位置的坐标。