获取或设置 CSS 变量
Get or Set CSS Variable
jQuery有办法获取和设置CSS变量的值吗?(MDN - 使用 CSS 变量)
我尝试使用普通的css函数$(".element").css("--varname", 1)
,但它不起作用。
我可以使用普通的 DOM 函数,但我不想混合使用它和 jQuery:
element.style.getPropertyValue("--varname");
element.style.setProperty("--varname", value);
我在transform
中使用此变量,因此获得使用该变量的结果会给出一个matrix3d()
字符串。我需要在JS中获取一些计算的值
您可以使用$.cssHooks
,$.support
(function($) {
// First, check to see if cssHooks are supported
if (!$.cssHooks) {
// If not, output an error message
throw (new Error("jQuery 1.4.3 or above is required"
+ " for this plugin to work"));
}
// Wrap in a document ready call, because jQuery writes
// cssHooks at this time and will blow away your functions
// if they exist.
$(function() {
$.cssHooks["mainBgColor"] = {
get: function(elem, computed, extra) {
// Handle getting the CSS property
return elem.style.getPropertyValue($.support["mainBgColor"])
|| window.getComputedStyle(elem)
.getPropertyValue($.support["mainBgColor"])
},
set: function(elem, value) {
// Handle setting the CSS value
elem.style.setProperty($.support["mainBgColor"], value);
return elem
}
};
$.support["mainBgColor"] = "--main-bg-color";
console.log($("h1").css("mainBgColor")); // `"brown"`
$("h1").css("mainBgColor", "green");
console.log($("h1").css("mainBgColor")); // `"green"`
});
})(jQuery);
h1 {
--main-bg-color: brown;
}
h1 {
background-color: var(--main-bg-color);
}
<!DOCTYPE html>
<html>
<head>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
</head>
<body>
<h1>Hello Plunker!</h1>
<script>
</script>
</body>
</html>
普罗兰 http://plnkr.co/edit/UyhKl8ZpZ9Pyaacl39ay?p=preview
你很接近:
二传手:
$(".element").css("varname", "value");
吸气剂:
$(".element").css("varname");
例如:
$(".element").css("display", "none");
将显示值设置为无。
$(".element").css("display");
将返回"none"作为 css 属性的当前值。
编辑文字 CSS 变量 注释:
$(".div").css("background-color", "var(--main-color2)");
将更改现有元素的变量,因此假设变量存在,您可以以这种方式交换样式。
$(".div").css("background-color");
不幸的是,这对我来说"rgb(255, 0, 0)"
了。它抓住了变量表示的 RGB。这已在 Chrome 中进行了测试,因此您的里程可能会有所不同。
您正在声明无效的 css 名称。尝试使用 .style
attr()。
$(".element").attr("style","--varname:1"); // set the value
$(".element").attr("style"); // get the value
例 : https://jsfiddle.net/e6jqa3pn/1/
你可以使用cssVar(在npm上:jq-cssvar),它是一个jQuery插件,当涉及到css变量时,它可以完成工作。
(这里也是指向 github 存储库的链接)。
我已经为jQuery css方法创建了猴子补丁,所以有了它,你可以只使用:
$(".element").css("--varname", 1);
当变量以两个破折号开头时,修补后的方法调用getPropertyValue
或setProperty
,如果不是,则调用原始方法(它还将对象作为第一个参数处理)。
https://gist.github.com/jcubic/9ef9fa2561de8430e953e2fe62011c20
我提供链接是因为代码可能会在要点上发生变化,如果其中有错误,但我认为没关系,因为它非常简单。
- 将css属性替换为变量
- 带有.css()串联问题的jQuery变量
- 将jQuery.css()与变量一起使用
- 在 javascript css 属性中使用变量
- jquery.css()中的变量
- 使用javascript变量更改css背景颜色
- 用于编辑LESS CSS变量的Javascript库
- 在JQuery.css()函数中使用变量
- 如何使用JavaScript变量设置函数集css宽度
- 将css附加到javascript变量
- 通过 JavaScript 访问 CSS 自定义属性(又名 CSS 变量)
- 如何使用变量制作纯 javascript .css() 函数
- 来自 CSS ID 的百分比变量
- JS / jQuery:变量.css()属性名称
- 如何将重复的 css 值存储在变量中以使代码不那么重复
- jQuery - 将 css 添加到 localStorage 变量
- 将变量用于 jquery CSS 属性名称
- 将 CSS 属性应用于具有 JS 中变量的图像
- 用 JS 更改.css?使用变量设置动态.css属性
- Chrome扩展帮助:从popup.html触发变量CSS