j0h*_*n3s 8 html javascript css angularjs
我正在使用angularJs并想要动态更改属性的样式.通常我会ng-style
在html元素中执行此操作.
但我想将样式应用于范围输入的轨道.可以在css中访问此元素:( .slider::-webkit-slider-runnable-track
作为webkit选择器的示例).我可以在具有此元素的id的函数中更改此类属性的样式吗?
例如(我将如何在jquery中执行此操作):
$scope.change = function(id, value) {
$('#'+id+'::-webkit-slider-runnable-track').css('background-image',value);
};
Run Code Online (Sandbox Code Playgroud)
JavaScript 通常无法访问伪元素,一种可能的解决方法是插入样式标签
$scope.change = function(id, value) {
var style = document.createElement('style');
var styles = '{ background: red }';
style.innerHTML = '#' + id + '::-webkit-slider-runnable-track ' + styles;
document.head.appendChild(style)
};
Run Code Online (Sandbox Code Playgroud)
另一种方法是将样式保留在样式表中,并为不同的样式使用不同的类
#test.red::-webkit-slider-runnable-track {
background : red;
}
Run Code Online (Sandbox Code Playgroud)
然后做
document.getElementById('test').classList.add('red');
Run Code Online (Sandbox Code Playgroud)