javascript - 无法设置可调整大小的圆环图的尺寸

标签 javascript jquery kendo-ui

我正在使用 kendo-ui 绘制一个圆环图,如下所示 example 但我希望它在容器 div 调整大小时调整大小。

如果您不设置 size 或 sizeHole 也不会有麻烦,因为它无法自动缩放以适应 div。

现在我希望我的 donut 变薄(外半径略大于内半径)。

如果我尝试将大小设置为 25 像素, donut 现在不会填充我的所有 div 和 wort,仅调整 sizeHole 大小。

                seriesDefaults: {
                    type: "donut",
                    size: 25,
                    ...  

如果我尝试将 sizehole 设置为 250,则无法再调整大小

                seriesDefaults: {
                    type: "donut",
                    sizeHole: 250,
                    ...  

如果我尝试设置两个属性,则会相互影响,并且在 donut 上根本不调整大小

我真正需要的是将 donut 尺寸固定为容器的一定百分比,假设大小为 50%,sizeHole 为 5%,并让用户拖动/调整浏览器大小并保持 size/sizeHole/Container 大小纵横比.

我尝试使用一些东西

    $(window).resize(Resize(element));
    ...

    function Resize(element) {

        var minContainerSize = element[0].clientHeight;
        if (minContainerSize > element[0].clientWidth || minContainerSize == 0)
            minContainerSize = element[0].clientwidth;

        return function () {
            var chart = element.data("kendoChart");
            var pieSeries = chart.options.seriesDefaults;
            pieSeries.size = minContainerSize * 0.13;
            //pieSeries.holeSize = minContainerSize * 0.299;

            chart.refresh();
        }
    };

但它没有成功,因为我需要在调整大小事件结束后获取容器大小以获取新的容器大小。

我可以尝试实现这样的东西 after resize solution

但是代码很快就变得一团糟。

有什么好的(我不知道)属性可以简单地将 donut “厚度”设置为与整个大小的百分比或比例(以不断调整大小的方式)或任何不涉及 setTimeout 的解决方法?

最佳答案

我认为你应该使用holeSize而不是sizeHole。

http://www.telerik.com/forums/donut-chart-set-inner-and-outer-radius

关于javascript - 无法设置可调整大小的圆环图的尺寸,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23941079/

相关文章:

javascript - jquery下拉菜单问题

javascript - 页面重定向后 Vuex 状态未保留

javascript - 如何使可拖动和可调整大小的矩形在单击时出现并在释放时消失?

kendo-ui - Treeview 选择事件未在 kendo ui 中触发

javascript - kendoListBox 不是函数

javascript - 音频注释

javascript - 如何区分 "0"值和 dc.js geoChoroplethChart 中过滤掉的值?

javascript - 具有单个失败回调的多个 ajax 调用

jquery - 为所有日期选择器设置属性,也可以单独设置属性

kendo-ui - 展开一个节点并打开两个 Treeview