当进度条值更改时,如何更改css渐变值
How do I change the css gradient values when my progress bar value changes?
在我的CSS文件中,我有以下代码(适用于Google Chrome),它使用渐变效果对进度条进行样式设置。
progress[value] {
width: 100%; height: 40px;
margin: 0 0 3em;
border: 4px solid #000000;
}
progress::-webkit-progress-value {
background-image:
-webkit-linear-gradient(-45deg,
transparent 33%, rgba(0, 0, 0, .1) 44%,
rgba(0,0, 0, .1) 66%, transparent 66%),
-webkit-linear-gradient(top,
rgba(255, 255, 255, .25),
rgba(0, 0, 0, .25)),
-webkit-linear-gradient(right, #04d647, #009999);
}
然而,我的JavaScript代码导致我的进度条不断更改值。现在,渐变颜色设置为绿色渐变,但我想根据该值的高来更改颜色(即,小于30%=红色渐变,小于65%但大于30%=黄色渐变,大于65%=绿色渐变)。
我在HTML文件中有这样的JavaScript代码,但我不知道如何更改正在进行的颜色::-webkit进度值取决于值是什么,因为我不知道我将如何使用webkit进度作为标记。
if (progressbar1.value >= .30) {
$("progress::-webkit-progress-value").css("background-color", "#424242");
// something like this^^....what tags/scripts go here??
}
我做错了什么?
在progress
标记中添加一个数据属性,该属性将包含您想要在以下位置更改梯度的值:
<progress data-value="0">
然后,在您的JavaScript中,检查进度条的值,如果它超过了您想要更改梯度的值,则更新数据属性:
if(progressbar1.value>=65)
progressbar1.dataset.value=65
else if(progressbar1.value>=30)
progressbar1.dataset.value=30
else
progressbar1.dataset.value=0
最后,在CSS中,使用属性选择器为data-value
属性的每个值设置规则,更改渐变和/或您想要的任何其他样式:
progress[data-value="0"]::-webkit-progress-value{
background-image:/* red gradient here */;
}
progress[data-value="30"]::-webkit-progress-value{
background-image:/* yellow gradient here */;
}
progress[data-value="65"]::-webkit-progress-value{
background-image:/* green gradient here */;
}
相关文章:
- 使用JS如何动态更改显示的html文件中的文本背景颜色
- Javascript更改图标
- keyup事件处理程序更改焦点不适用于快速键入
- JQuery使计数器每次更改时都会增加
- 下拉选择可自动更改第二个下拉选择
- 单击时将焦点更改为元素
- 内部分区字体大小获胜'调整浏览器窗口大小时不会随媒体查询而更改
- ext js 将面板的颜色更改为渐变
- 如何在每次页面重新加载时更改渐变背景,同时保持光标位置元素处于活动状态
- 如何使用for循环更改图像的不透明度以创建渐变照明效果
- 使用javascript更改背景图像时保持渐变不变
- 如何更改鼠标移动时的渐变程度
- 更改线性渐变的单色
- 当进度条值更改时,如何更改css渐变值
- 鼠标移动时更改渐变背景颜色
- jQuery使用渐变效果更改正文的背景URL
- 如何在HTML表单中创建两组单选按钮,以及在a组中的更改何时会在B组中更改
- 添加渐变过渡效果和自动图像更改
- 使用Bootstrap 3旋转木马来更改背景图像,有什么平滑渐变的想法吗
- 在所有浏览器中动态更改渐变颜色