简体   繁体   English

使用 t 时动态 CSS 计数器崩溃,我使用“@property”或“计数器”是否错误?

[英]Dynamic CSS counter crashes when using t, am I using '@property' or 'counter' wrong?

I'm creating a dashboard that displays my CPU and GPU load.我正在创建一个显示我的 CPU 和 GPU 负载的仪表板。 It's a number that is refreshed every 5 seconds, and hence the jumps are very, sudden;这是一个每 5 秒刷新一次的数字,因此跳跃非常突然; like 0% -> 50%.比如 0% -> 50%。

I've googled around trying to animate this jump, so it actually counts up 0 -> 1 ->.. -> 50 etc. The code below works flawlessly actually.我用谷歌搜索了这个跳跃的动画,所以它实际上计数为 0 -> 1 ->.. -> 50 等。下面的代码实际上完美无缺。 The {{ itemValue('gpu_load') }} changes every 5 seconds. {{ itemValue('gpu_load') }} 每 5 秒更改一次。

<style>
@property --num {
  syntax: '<integer>';
  initial-value: 0;
  inherits: false;
}

.test {
  transition: --num 4s;
  counter-reset: num var(--num);
  --num: {{ itemValue('gpu_load') }};
}
    
.test::after {
  content: counter(num);
}
  
</style>  
<div class="test"></div>

HOWEVER ;但是 this is just one counter.这只是一个计数器。 I would like to make two.我想做两个。 I thought I could just duplicate the above and just add '2' to everything, like so:我以为我可以复制上面的内容,然后在所有内容中添加“2”,如下所示:

<style>
@property --num {
  syntax: '<integer>';
  initial-value: 0;
  inherits: false;
}

.test {
  transition: --num 4s;
  counter-reset: num var(--num);
  --num: {{ itemValue('goliath_system_gpu_load') }}
}
    
.test::after {
  content: counter(num);
}

@property --num2 {
  syntax: '<integer>';
  initial-value: 0;
  inherits: false;
}

.test2 {
  transition: --num2 4s;
  counter-reset: num2 var(--num2);
  --num2: {{ itemValue('goliath_system_cpu_load') }}
}
    
.test2::after {
  content: counter(num2);
} 
</style>  
<div class="test"></div>
<div class="test2"></div>

So this also works, but only temporarily.所以这也有效,但只是暂时的。 Whenever I'm displaying this code, the browser (seemingly) crashes randomly with an "Error code: STATUS_ACCESS_VIOLATION" .每当我显示此代码时,浏览器(似乎)会随机崩溃并显示"Error code: STATUS_ACCESS_VIOLATION"

I can't seem to figure out what causes this.我似乎无法弄清楚是什么原因造成的。 I'm probably using something wrong?我可能使用了错误的东西?

You don't need to duplicate the CSS custom property.您不需要复制 CSS 自定义属性。 You can do like below:您可以执行以下操作:

@property --num {
  syntax: '<integer>';
  initial-value: 0;
  inherits: false;
}
.main {
  transition: --num 4s;
}

.test {
  counter-reset: num var(--num);
  --num: {{ itemValue('goliath_system_gpu_load') }}
}

.test::after {
  content: counter(num);
}

.test2 {
  counter-reset: num2 var(--num);
  --num: {{ itemValue('goliath_system_cpu_load') }}
}
    
.test2::after {
  content: counter(num2);
} 
<div class="test  main"></div>
<div class="test2 main"></div>

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM