jquery - 做一个圆形的进度条

标签 jquery html css

我需要为一个元素制作一个“健康”进度条,其中绿色代表填充数据,红色代表空数据。当红色部分为 50% 时,我得到了一个漂亮的圆圈,但是一旦该值更改为任何其他值,边界半径就会变得一团糟。

这是我目前拥有的:

HTML:

<div id="progressWrap">
    <span class="progressRed"></span>
</div>

CSS:

#progressWrap {
  width: 50px;
  height: 50px;
  display: block;
  background-color: forestgreen;
  -webkit-border-radius: 100%;
  -moz-border-radius: 100%;
  -ms-border-radius: 100%; 
  border-radius: 100%;
}
.progressRed {
    width: 50%;
    height: 50px;
    float: right;
    background-color: red;
    border-bottom-right-radius: 25px;
    border-top-right-radius: 25px;
}

http://jsfiddle.net/q48Qf/

progressRed 类的宽度值将通过 Jquery 动态变化,也许我也可以更改 border-radius 以使其再次适合 progressWrap?我只是不知道如何计算那种情况下所需的边界半径。

非常感谢任何帮助!

最佳答案

红色部分不需要边框半径。由于它完全包裹在绿色圆圈中,因此更容易让它保持正方形并向父级 overflow hidden 。

在父级(绿色)部分设置overflow: hidden,并移除红色部分的半径。

示例:http://jsfiddle.net/q48Qf/3/

关于jquery - 做一个圆形的进度条,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24303169/

相关文章:

php - 如何在滚动页面时将值加载到页面

javascript - 重写 Javascript 中的方法

php - 站点范围内的 jQuery 音频播放器的可访问性问题

php - 添加 jQuery,并在头部顶部添加一个 block

javascript - 元素为 null 或不是对象

JavaScript 导致 CSS 过渡不起作用

javascript - 通过删除函数重置 if/else 语句的 Else 部分中的修改值

css - 是否可以有条件地链接 CSS 字体?

html - 使用 flexbox 时增加宽度而不是重叠

html - 减少 Bootstrap 中内容之间空间的最简洁方法