Javascript 拉斐尔画布填充容器div

Javascript 拉斐尔画布填充容器div,javascript,canvas,raphael,Javascript,Canvas,Raphael,我不需要指定Raphael画布的宽度和高度,而是需要它是容器大小的100%。所以我可以做一个Raphael(“container”,containerElement.width,containerElement.height)并设置onresize函数来重置这些值。但是,当我调整窗口或容器的大小时,内容变得非常紧张和忙碌,因为滚动条(如果滚动条太小的话,我需要滚动条)会时不时地出现 这是将拉斐尔的画布绑定到容器大小的正确方法吗?我还想提供一个选项,使Raphael画布“全屏”占据整个浏览器窗口。

我不需要指定Raphael画布的宽度和高度,而是需要它是容器大小的100%。所以我可以做一个Raphael(“container”,containerElement.width,containerElement.height)并设置onresize函数来重置这些值。但是,当我调整窗口或容器的大小时,内容变得非常紧张和忙碌,因为滚动条(如果滚动条太小的话,我需要滚动条)会时不时地出现


这是将拉斐尔的画布绑定到容器大小的正确方法吗?我还想提供一个选项,使Raphael画布“全屏”占据整个浏览器窗口。

如果使用div,则可以使用CSS将其设置为100%的宽度和高度。然后使用
Raphael(“容器”、“100%””、“100%”)


至于全屏显示,大多数浏览器都有相应的命令。因此,如果你真的是100%的,那么当你按下命令按钮时,例如(firefox中的F11),它将变成全屏。

Raphael(“容器”、“100%””、“100%”)将填充画布至DIV容器的宽度/高度。这在Chrome和Safari中效果很好。为了让Firefox上船,您需要在css中为body和html提供100%的宽度/高度,否则向量将被剪裁

这篇文章有点晚了,但我会在这里发布,供其他人搜索

    var h = $('container').height(); //get the container height into variable h       
    var w = $('container').width(); //get the container width into variable w
    //set your Raphael canvas to the variables
    var contpaper = Raphael("container", w, h); 
    var doit;
    //function to reload the page and/or do other adjustments
    function resizedw(){   
        document.location.reload()                
    }
    //call function 200 ms after resize is complete.
    $(window).resize(function(){clearTimeout(doit); 
        doit = setTimeout(function() {
        resizedw();
    }, 200)});

此解决方案是跨浏览器和移动安全的,因此您可以使用它来整合响应性设计。通过以if语句的形式向javascript添加视口宽度或高度的警告,可以基于相同的变量定义所有形状

我在阅读谷歌群组讨论论坛上的文档和其他帖子时得到的印象是,你必须在Raphael构造函数中输入一个数字(像素数),而不是百分比。我会试试的,谢谢。关于全屏,我只是指浏览器窗口的全屏,所以100%,100%允许。Raphael文档显示使用特定的大小,但根据自身经验,使用百分比确实有效。我假设你知道拉斐尔的文档,但如果你不知道,这里有一个链接:谢谢你,亚当,看起来这就是答案!我读了文档,但它明确地说我们必须在那里放置一些像素。谢谢你的回答。我还检查了在线参考,它说我们必须输入一个数字。重要的是要注意,您应该使用(“容器”)——不需要使用(“容器”)、$(“容器”)或(document.getElementById(“容器”)(我对后一个选项有问题)。不,公认的答案没有提到firefox上的100%html和正文