Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/79.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
画布元素可以';不能在jquery显示转换后绘制_Jquery_Html_Canvas - Fatal编程技术网

画布元素可以';不能在jquery显示转换后绘制

画布元素可以';不能在jquery显示转换后绘制,jquery,html,canvas,Jquery,Html,Canvas,我正在使用画布创建一个绘图应用程序。如果显示包含canvas元素的div,则可以正常工作。但是,我希望首先隐藏包含的div,然后使用jquery转换“启动”绘图应用程序,以便在绘图界面中淡入淡出。因此,包含div的css'display'属性最初设置为'none',然后我显示它。但是,当我这样做时,canvas元素将不再接收任何图形输入。我已经尝试设置显示:在脚本渲染画布元素后动态设置为“无”,以确保没有干扰,但没有骰子。有什么建议吗 以下是绘图界面的html结构: <!--DRAWING

我正在使用画布创建一个绘图应用程序。如果显示包含canvas元素的div,则可以正常工作。但是,我希望首先隐藏包含的div,然后使用jquery转换“启动”绘图应用程序,以便在绘图界面中淡入淡出。因此,包含div的css'display'属性最初设置为'none',然后我显示它。但是,当我这样做时,canvas元素将不再接收任何图形输入。我已经尝试设置显示:在脚本渲染画布元素后动态设置为“无”,以确保没有干扰,但没有骰子。有什么建议吗

以下是绘图界面的html结构:

<!--DRAWING INTERFACE-->
    <style>
       #draw-container {
         display:none;
         width:1920px;
         height:1080px;
         position:absolute;
         top:0px;
         left:0px;
       }
     </style>
<div id="draw-container">
    <h1>Send a Drawing</h1>
    <div id="draw" class="panel">
    </div>
    <div id="draw-buttons">
        <a id="sendButton" href="#" class="round">></a>
        <a id="clearButton" href="#" class="round">+</a>
    </div>
</div>
当用户单击按钮以显示绘图模块时:

document.getElementById('drawLaunch').addEventListener("click", function(){
    $('#draw-container').show();
});
最后,这里是绘图功能:

function _drawCircle(mouseX, mouseY) {
//get position
var x = mouseX - offsetLeft,
    y = mouseY - offsetTop;
//move mouse to the previous point
if (lastX == null) {
    lastX = x;
    lastY = y;
}
context.moveTo(lastX,lastY);
//draw line
context.lineTo(x, y);
context.stroke();
//set new last point
lastX = x;
lastY = y;
}

现在,如果我保持一切不变,只是删除“display:none;“从样式表中,加载页面时显示画布,一切正常。但如果隐藏并显示,则无法在其上绘制

 #draw-container {
     visibility:hidden;
     width:1920px;
     height:1080px;
     position:absolute;
     top:0px;
     left:0px;
   }
你能用visibility:hidden而不是display:none吗?这样元素在页面上就不会出现,只是肉眼看不见

当你想让它再次可见时,只需写下

  visibility:visible;
或者在你的代码中

document.getElementById('drawLaunch').addEventListener("click", function(){
    $('#draw-container').css('visibility','visibile');
});

在我的回答中增加了一点谢谢,这很有效!只是给其他需要的人一个提示--它应该是“可见的”,而不是“可见的”。很抱歉输入错误-请检查我的答案是否正确。谢谢!我更新了代码,使其可见
document.getElementById('drawLaunch').addEventListener("click", function(){
    $('#draw-container').css('visibility','visibile');
});