Javascript jquery可调整大小的画布在a<;部门>;

Javascript jquery可调整大小的画布在a<;部门>;,javascript,jquery,html,canvas,Javascript,Jquery,Html,Canvas,我使用jquery()的resizeable函数来调整div的大小。 在这个div中,我有一个输入和一个画布,我想当我调整div的大小时,画布会跟随,我该怎么做 使用如下示例代码: <script> $(function() { $( "#resizable" ).resizable(); }); </script> <div id="resizable"> <input type="text" id=field

我使用jquery()的resizeable函数来调整div的大小。 在这个div中,我有一个输入和一个画布,我想当我调整div的大小时,画布会跟随,我该怎么做

使用如下示例代码:

<script>
    $(function() {
        $( "#resizable" ).resizable();
    });
</script>
<div id="resizable">
     <input type="text" id=field />
     <canvas id="mycanvas" height="400px"></canvas>
</div>

$(函数(){
$(“#可调整大小”).resizable();
});

谢谢您的帮助。

画布的
元素的
高度和
宽度设置为100%:

div#可调整大小{
高度:200px;/*初始高度*/
宽度:200px;/*初始宽度*/
}
div#可调整大小的画布{
身高:100%;
宽度:100%;
}
试试这个

 $("#resizable").resizable({ stop: function(event, ui) {

            $("#mycanvas").attr({ width: ui.size.width, height: ui.size.height });

            // Adjusting the width or height attribute clears the canvas of
            // its contents, so you are forced to redraw.
            reDraw(this);

    } });
如果使用CSS(如jQuery),则必须确保按比例调整大小,否则画布图形将因拉伸而扭曲。为此,请在应用.resizeable()时设置aspectRatio属性

此外,由于您还希望调整#myCanvas的大小,因此在应用.resizeable()时必须设置alsoResize属性


那么
div
的其他子元素呢?它们将以100%的高度重叠,这不是最好的方式,因为它允许画布按不成比例调整大小,因此会出现扭曲。您可以将
的宽度和高度设置为100%吗?
#mycanvas
是一个ID,意味着只有一个匹配的元素。无需在此处使用
.each()
$('#mycanvas').attr({…})谢谢,但是你的函数在哪里重画?它告诉我它没有定义。这是自定义函数。整个画布绘制概念将在重画方法中出现。就像在您的项目中一样,肯定会有一个重画函数来呈现画布。
  // make #resizable resizable
  // let #resizable know to also resize #myCanvas when it resizes
  // require that the resizing be proportional so the canvas drawing is not distorted

  $("#resizable").resizable({
    alsoResize: "#myCanvas",
    aspectRation:true
  }); 

  $("#myCanvas").resizable();