vue.js - 定义js和css中使用的变量
问题描述
比如我想定义一个全局颜色a = '#FFF'
,在js和css中引用,确保a
项目中只有一种颜色命名。那么当值a
改变时,a
js和css中的值也改变了。这在vue中可能吗?
解决方案
嗯...我正在考虑将观察者watch
与 CSS 变量结合起来。
也许是这样的?每当a
更改时,CSS 变量--a
也会更改。
您实际上可以输入您想要的任何颜色格式。十六进制、RGB、RGB...
let v = new Vue({
el: "#app",
data: {
a: "red"
},
watch: {
a(val){
document.documentElement.style.setProperty("--a", val);
}
}
})
:root {
--a: red;
}
#app {
height: 100px;
width:100%;
background: var(--a);
transition: background 500ms;
}
p {
background: white;
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/vue/2.5.17/vue.js"></script>
<div id="app">
<p>Color: {{a}}</p>
<input v-model="a">
</div>
推荐阅读
- javascript - 使用 nodejs/electron 添加新行导致添加多行
- python - Numpy / Scipy 不写入某些像素
- r - 寻找如何在 R(ClinVar 变体数据处理)中使用带有多个分隔符的单独()
- angular - 角度输入元素绑定不适用于对象。如何让它遵循 json 值?
- c# - Asp.Net Core 将 UTC (YYYY-MM-DDThh:mm:ss.sTZD) 输入转换为 LocalDateTime
- html - 如何使用媒体查询禁用部分 HTML?
- java - 将 XML 字符串解析为 org.w3c.dom.Document 的最快方法
- java - Android:按钮对点击没有反应
- c# - Is it better to put my logic in an event handler or in a setter for MVVM (Xamarin `Picker` `SelectedItem` quirks)
- javascript - 在 Node.js 和 Express 中将压缩文件流式传输到客户端,无需写入磁盘