圆形仪表,指示器(使用甜甜圈作为温度计样式的替代品)

Posted

技术标签:

【中文标题】圆形仪表,指示器(使用甜甜圈作为温度计样式的替代品)【英文标题】:Circular meter, indicator (using a donut as an alternative to a thermometer style) 【发布时间】:2012-03-27 19:58:36 【问题描述】:

我正在尝试使用某种圆环图来显示筹款活动的进度。许多人为此使用温度计样式或进度条,但我真的很想尽可能接近这样的东西:

在我花了很多时间研究之后,我想出了一个使用flot 绘制甜甜圈的非常简单的解决方案,这里是演示:http://jsfiddle.net/6b7nZ

$(function () 
    var data = [
     label: "Donated", data: 20, color: '#f00' ,
     label: "Goal", data: 78, color: '#D3D3D3' 
    ];    
    $.plot($("#donut"), data,
    
        series: 
            pie: 
                innerRadius: 0.7,
                show: true,
                label:  show: false 
            
        ,
        legend:  show: false 
    );
);

我现在缺少的是一种添加居中标签的方法。 我不必说,如果有人能指点我一个 jQuery 插件或类似的东西,那就更好了。

【问题讨论】:

你确定只是在中间放了一个带有标签的div? 【参考方案1】:

好吧,something like this 可以工作。但是,我认为您希望将目标设置为 100,以使甜甜圈看起来反映了正确的百分比。

html

<div id="donutHolder">
    <div id="donut"></div>
    <span id="donutData"></span>   
</div>

CSS

#donutHolder 
    width: 350px;
    height: 350px;
    text-align: center;
    line-height: 350px;
    font-size: 80px;
    color: #f00;
    position: relative;


#donut 
    width: 100%;
    height: 100%;


#donutData 
    position: absolute;
    top: 0;
    left: 0;
    z-index: 1;
    width: 100%;

添加了 JQuery

$("#donutData").text(Math.round(data[0].data/data[1].data*100)+"%");

【讨论】:

正是我需要的。非常感谢! @Michal:对不起,但我不确定你的评论是什么意思。此示例中没有涉及“标签”元素,因此不清楚您的问题是什么。 我的问题是我想把这个例子和标签一起使用 @Michal:也许您应该发布另一个问题,将此问题引用为交叉引用,但在您的问题中,准确显示您尝试使用标签元素(您的 html 结构)实现的目标似乎工作正常。 这是工作代码的分支,标签处于活动状态:jsfiddle.net/h4oL3dv1 ...尽管如此,我已经找到了另一个解决方案【参考方案2】:

我创建了这个有用的(对我来说),因为这个解决方案让您可以通过使用 less 在类内设置度数

<div class="radial_meter radial-222">
  <span class="first"><em></em></span>
  <span class="second"><em></em></span>
</div>

你可以看到DEMO

【讨论】:

以上是关于圆形仪表,指示器(使用甜甜圈作为温度计样式的替代品)的主要内容,如果未能解决你的问题,请参考以下文章

看起来像甜甜圈的圆形热图

从圆形或甜甜圈中绘制线段

html [Donut spinner]创建一个甜甜圈微调器,可用于指示内容的加载。 #CSS

Qt之渐变及其应用(绘制温度计仪表盘和指示灯)

Qt之渐变及其应用(绘制温度计仪表盘和指示灯)

使用nvd3.js自定义甜甜圈图