如何使用 javascript 获取自定义 css var 的内联样式
How to get the inline style of a custom css var with javascript
如何从元素中获取自定义 CSS var 的内联样式?
我可以轻松获取宽度或任何其他传统样式,但在尝试获取自定义内联样式时出现错误。有没有办法提取这种样式数据?预先感谢您提供的任何帮助。没有 jQuery 请。
var styleDivWidth = document.getElementById('myId').style.width;
console.log(styleDivWidth);
/*
var styleDivRotation = document.getElementById('myId').style.--rotation;
console.log(styleDivRotation);
*/
.myClass{
background-color:red;
float:left;
--rotation: 45deg;
transform: rotate(var(--rotation));
margin:20px;
}
<div id="myId" class="myClass" style="width:100px; height:100px;
--rotation:-45deg;">
var rotation = document.getElementById("myId").style.cssText.split("--rotation:")[1];
rotation = rotation.substring(0, rotation.length - 1);
console.log(rotation);
您可以通过解析 cssText
属性.
来提取它
下面是一些代码和 JsFiddle:
const cssText = document.getElementById('myId').style.cssText;
console.log(cssText);
const rotationProp = cssText.split("; ").find(style => style.includes("rotation"));
console.log(rotationProp);
const rotationValue = rotationProp.slice(rotationProp.indexOf(":") + 1, rotationProp.indexOf(";"));
console.log(rotationValue);
JsFiddle: https://jsfiddle.net/2ajp1cug/
我创建了一个函数来完成它:
function getAttributeValueFromStyles(stylesText, attributeName){
var attrParts = stylesText.split(';');
var attrIndex = attrParts.findIndex(function(part){
return part.split(':')[0] === attributeName;
});
return attrParts[attrIndex].split(':')[1];
}
const element = document.querySelector('#test');
const style = element.getAttribute("style");
var attrValue = getAttributeValueFromStyles(style, "--rotation");
console.log(attrValue);
<div id="test" style="backgroud:red;--rotation:-45deg;color:white;">
</div>
- 我不知道,但可能有另一种方法可以使用 js 可用方法来完成。
如何从元素中获取自定义 CSS var 的内联样式?
我可以轻松获取宽度或任何其他传统样式,但在尝试获取自定义内联样式时出现错误。有没有办法提取这种样式数据?预先感谢您提供的任何帮助。没有 jQuery 请。
var styleDivWidth = document.getElementById('myId').style.width;
console.log(styleDivWidth);
/*
var styleDivRotation = document.getElementById('myId').style.--rotation;
console.log(styleDivRotation);
*/
.myClass{
background-color:red;
float:left;
--rotation: 45deg;
transform: rotate(var(--rotation));
margin:20px;
}
<div id="myId" class="myClass" style="width:100px; height:100px;
--rotation:-45deg;">
var rotation = document.getElementById("myId").style.cssText.split("--rotation:")[1];
rotation = rotation.substring(0, rotation.length - 1);
console.log(rotation);
您可以通过解析 cssText
属性.
下面是一些代码和 JsFiddle:
const cssText = document.getElementById('myId').style.cssText;
console.log(cssText);
const rotationProp = cssText.split("; ").find(style => style.includes("rotation"));
console.log(rotationProp);
const rotationValue = rotationProp.slice(rotationProp.indexOf(":") + 1, rotationProp.indexOf(";"));
console.log(rotationValue);
JsFiddle: https://jsfiddle.net/2ajp1cug/
我创建了一个函数来完成它:
function getAttributeValueFromStyles(stylesText, attributeName){
var attrParts = stylesText.split(';');
var attrIndex = attrParts.findIndex(function(part){
return part.split(':')[0] === attributeName;
});
return attrParts[attrIndex].split(':')[1];
}
const element = document.querySelector('#test');
const style = element.getAttribute("style");
var attrValue = getAttributeValueFromStyles(style, "--rotation");
console.log(attrValue);
<div id="test" style="backgroud:red;--rotation:-45deg;color:white;">
</div>
- 我不知道,但可能有另一种方法可以使用 js 可用方法来完成。