可变百分比的CSS3饼状图
CSS3 pie chart with variable percentage
在HTML中,我想这样做:
<div class="thermometer">
<div class="circle purple">
<div class="pie-piece percent=75%">
</div>
</div>
</div>
,结果将是一个75%填充的紫色圆圈。(就像把披萨切成4块,少了一块一样)(75块来自数据库,不能在CSS中)
我的圆圈CSS是这样的:
.thermometer .circle {
position: absolute;
width:26px;
height:26px;
-moz-border-radius:13px;
-webkit-border-radius:13px;
border-radius:13px;
border: 1px solid #000000;
}
.thermometer .green { background-color: green; }
(other colors)
我看了使用"hold"answers"clip"属性的例子,但不明白如何使用变量来做。如何为"馅饼"编写CSS ?
如果你指的是这个教程,"Hold"answers"pieSlice1"只是类&ID。
你可以预先定义一个度,然后使用jQuery和改变CSS取决于你从数据库中得到什么。查看这个帖子获取更多信息。
.css({ WebkitTransform: 'rotate(' + degree + 'deg)'});
http://jsfiddle.net/t7zLP/1/很认真,所以回复时有位延迟
首先,可能这样的事情可以做得更好,使用画布绘制(需要检查),但只是为了好玩,使疯狂的混合LESS+HTML+CSS3和位JavaScript似乎工作。
这里是工作示例https://c9.io/dmi3y/css3pie/workspace/index.html应该与所有现代浏览器和IE9 +一起工作,可能您可以添加对低于9版本的IE的支持。为此需要支持边界半径和变换。后一个可以用矩阵过滤器完成,这里是一些阅读加上工作解决方案在。htc文件http://samuli.hakoniemi.net/cross-browser-rotation-transformation-with-css/,但我没有测试它,个人不会关心旧的浏览器太多。如果你想看到升级浏览器的东西,我只会添加注意。在FireFox中也有一些工件,可能是因为我使用了伪类::before
和::after
,并且可能使用了真正的元素将改进这一点。
科技信息。这里是9cloud代码https://c9.io/dmi3y/css3pie。核心思想是使用客户端LESS动态生成CSS。因此,使用bit jQuery代码,这是为了方便和容易地转换为任何其他库/core js。
英里石头:
在你的标记中你定义了多少区域应该用度来填充
<div class="circle" id="pieOne" data-fill="30deg"></div>
基本上要使它工作,这是你所需要的一切。
这是一个简短的解释:
使用这个值,我在嵌入样式中重写LESS变量,并使用less.refreshStyles()
创建CSS
<style type="text/less" id="lessPie">
@import 'styles/pie';
@fillDegree: #dataDegree#; // from 0deg to 180deg
@baseRotate: 40deg;
</style>
<script type="text/javascript">
!function(){
var lessPieText = $('#lessPie').text();
$(function(){
var pieOneDataFill = $('#pieOne').attr('data-fill');
while (parseInt(pieOneDataFill) > 180) {
pieOneDataFill = (parseInt(pieOneDataFill) - 180) + 'deg';
}
while (parseInt(pieOneDataFill) < 0) {
pieOneDataFill = (parseInt(pieOneDataFill) + 180) + 'deg';
}
$('#lessPie').text(lessPieText.replace('#dataDegree#', pieOneDataFill));
less.refreshStyles();
// update % value
// 180deg = 100%
// pieOneDataFill = x%
var percentValue = (parseInt(pieOneDataFill) * 100) / 180;
$('#pieOneLegend').find('span').text(Math.floor(percentValue) + '%').end().show();
});
}()
</script>
作为额外的奖励,你可以旋转饼与@baseRotate: 40deg;
值。还显示了带有% value的图例。
这几乎是所有的。有一段时间,它只支持每页一个值的饼(或者更确切地说是一种类型的饼)。我以后会把它放在github上,可能会在项目上工作,因为它听起来很有趣。
- 如果宽度是百分比,如何设置以px为单位的图像高度
- 关键帧之间的css3动画延迟
- 尝试创建一个具有z-index的堆叠菜单'使用HTML5/CSS3/JS
- 使用javascript可以设置css动画的当前百分比
- 计算CSS3缩放框在另一个框中的最高位置
- 打开相对于鼠标位置的CSS3/HTML5模式对话框
- 当我使用高度百分比时,谷歌地图javascript api不会显示
- Javascript差异百分比数学
- 下降区内的CSS3过渡
- 访问css3动画的关键帧
- 我如何使脚本使用百分比
- 根据元素高度和宽度的百分比变化增加或减少字体大小
- 在Javascript中计算并显示具有2个税收百分比的现有总值
- CSS3:当页面向下滚动到第一个视口时,是否可以在元素上触发转换
- d3使用样式Tween的百分比转换
- css3转换和javascript出错
- CSS3动画图像质量按比例
- 计算HTML表TD中两个数字之间的百分比
- 如何从二进制int中获取百分比,每个位表示x%
- 可变百分比的CSS3饼状图