javascript - 我如何从 css 变量中获取值并使用 javascript 多次自动更改它(循环)

标签 javascript css

我想改变我的 <h1> 的颜色, <h2><h3>标签。

我在 css 中声明了几个这样的变量:

:root{
    --color1 : #E11F28;
    --color2 : #F8981D;
    --color3 : #1DAD4B;
}

我的问题是如何获取该值并使用 javascript 多次自动更改它并循环(从数字 1 到 3)

最佳答案

这是一个简单的例子

当然,你需要弄清楚如何通过改变来获得正确的规则来改变

var declaration = document.getElementById('x').sheet.rules[0].style;

鉴于您自己没有编写 javascript,并且除了单个样式规则之外绝对没有显示任何内容,这是至少您需要自己弄清楚的一件事

但是......它有效

function changecolors() {
  const changeit = style => {
    let p = style.getPropertyValue('color').replace(/\d/, x => x%3 + 1);
    style.setProperty('color', p);
  }
  var declaration = document.getElementById('x').sheet.rules;
  changeit(declaration[0].style)
  changeit(declaration[1].style)
  changeit(declaration[2].style)
}
setInterval(changecolors, 1000);
:root {
  --color1: #E11F28;
  --color2: #F8981D;
  --color3: #1DAD4B;
}
<style id="x">
  h1 {
    color: var(--color1);
  }
  
  h2 {
    color: var(--color1);
  }
  
  h3 {
    color: var(--color1);
  }
</style>


<h1>H1</h1>
<h2>H2</h2>
<h3>H3</h3>

关于javascript - 我如何从 css 变量中获取值并使用 javascript 多次自动更改它(循环),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58153983/

相关文章:

javascript - Dojo dgrid,将图标放在插件列树中的每个子行中(PDF、HTML、XSL)

css - 如何使用 Sass 在 Ionic 5 中正确使用 Var() 和 cal()

html - ie8 + CSS : using -ms-filter in inline style

javascript - 在不重新加载页面的情况下加载 div 中的内容

javascript - 如何暂停javascript的执行?

javascript - 在 DSpace 4.2 xmlui 中向 Discovery 侧边栏添加展开/折叠功能

javascript - 如何声明Vue数据类型

javascript - 如何在 extJS 标记字段中显示默认消息

javascript - .show() 在页面加载时不起作用

mysql - 从特定 div 的 sql 数据库更改 css 背景