Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/81.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
Html 如何动态调整div的大小?_Html_Resize_Raphael - Fatal编程技术网

Html 如何动态调整div的大小?

Html 如何动态调整div的大小?,html,resize,raphael,Html,Resize,Raphael,我找到了一些关于动态地对divs执行操作的答案,但没有一个是我想要的。 我正在使用拉斐尔js向量库,需要一个用于绘制对象的画布的div。例如: <html> <head> <style> #canvas { height: 2000px; position: absolute; width:

我找到了一些关于动态地对
div
s执行操作的答案,但没有一个是我想要的。 我正在使用拉斐尔js向量库,需要一个用于绘制对象的画布的div。例如:

<html>
    <head>
        <style>
            #canvas 
            {
                height: 2000px; 
                position: absolute;
                width: 1500px;
            }
        </style>
    </head>
    <body>
        <div id="canvas"></div>
        <!-- some code here -->
    </body>
</html> 
现在在我的应用程序中,用户将通过创建像上面显示的
r
c
这样的对象来填充
画布。但问题是,一旦在画布的维度之外创建了对象,它就不会显示在纸/画布上


我正在尝试动态放大div的大小,即高度:3000px,宽度:2000px。我找到了一些关于
绝对位置的答案
,但没有帮助。还可以找到关于
div溢出的内容,但这适用于div的父元素。任何帮助都将不胜感激

您需要做的是调整包含div和纸张的大小。在本例中,我将显示您的圆是从右下角裁剪的

单击画布时,它将调整大小以显示正确绘制了圆


在本例中,我使用的是任意大小,您可以不断检查添加的每个对象的位置和大小,并在检查其边界框时找到在x和y上具有最大值的项目,然后调整大小以达到此目的。因此,纸张将始终适合添加的项目。

哦,您并不真正需要位置:绝对,我保留了您在JSFIDLE示例中已有的位置。
var paper = Raphael("canvas"),
    r = paper.rect(100, 100, 100, 100),
    c = paper.circle(500, 500, 80);
var paper = Raphael("canvas"),
r = paper.rect(100, 100, 100, 100),
c = paper.circle(500, 500, 80);

// size i want to resize to
var w = 1000;
var h = 1000;

var canvas = $('#canvas');
canvas.on('click', function(){
    // resize container
    $(this).css({width: w, height: h});

    // resize paper
    paper.setSize(w, h);
});