Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/389.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 Can';在画布上分层时,不要更改Firefox中SVG的高度和宽度_Javascript_Firefox_Svg_Layer - Fatal编程技术网

Javascript Can';在画布上分层时,不要更改Firefox中SVG的高度和宽度

Javascript Can';在画布上分层时,不要更改Firefox中SVG的高度和宽度,javascript,firefox,svg,layer,Javascript,Firefox,Svg,Layer,目标:在画布上分层的SVG,当PDF呈现到画布上时,两者都会改变大小 问题:画布正确调整大小并显示PDF,但在inspector中检查时,SVG的宽度始终为零,高度始终为零 注意:当我将JPG直接渲染到包含SVG的元素中时,这一切都起到了作用,但是当我切换到将PDF渲染为图像时,我必须使用画布 HTML: javascript正确地打开PDF并在画布中呈现它,但无论我在元素检查器中查看SVG时尝试了什么,它的宽度和高度都为零。我试着将它的宽度和高度设置为100%。我尝试在设置画布维度的同时显式设

目标:在画布上分层的SVG,当PDF呈现到画布上时,两者都会改变大小

问题:画布正确调整大小并显示PDF,但在inspector中检查时,SVG的宽度始终为零,高度始终为零

注意:当我将JPG直接渲染到包含SVG的元素中时,这一切都起到了作用,但是当我切换到将PDF渲染为图像时,我必须使用画布

HTML:

javascript正确地打开PDF并在画布中呈现它,但无论我在元素检查器中查看SVG时尝试了什么,它的宽度和高度都为零。我试着将它的宽度和高度设置为100%。我尝试在设置画布维度的同时显式设置其维度,即: var viewport=page.getViewport(比例)


我尝试将svg放在画布之前,将其嵌套在画布中……没有效果

它是一个HTML元素,当您使用普通的
overlay.setAttribute(“width”,canvas.width+“px”)时会发生什么和同等高度?好的,我试过了,它揭示了更多的线索。inspector中的html现在显示正确的维度,但长方体模型仍然显示0x0。所以我把覆盖层变成了红色(它是透明的),果然它出现了……但是我的D3图形都没有出现在里面。我现在必须回去看看另一个版本是否正在调整它的大小。为了将来参考,最好提及(最好通过代码)您正在使用的库。在本例中,将html文档从
显示到
可能会有所帮助,因为这会显示您使用的是d3.js,也可能是pdf.js或类似文件。
<body>
    <canvas id="pdfcanvas"></canvas>
    <svg id="overlay"></svg>
    <input type='file' multiple='false', onchange='loadPDF(this)'></input>
</body>
#pdfcanvas {
    position:relative;
    z-index:1;
}

#overlay {
    position:relative;
    z-index:2;
}
var canvas = document.getElementById('pdfcanvas');
canvas.height = viewport.height;
canvas.width = viewport.width;

var overlay = document.getElementById('overlay');
overlay.height = viewport.height;
overlay.width = viewport.width;