在我的代码中,我没有找到div“box”的不透明度,如果我调用函数切换它显示为零。
为什么它不应该显示2,因为不透明度是1并且乘以2。
这是我的代码:jsFiddle
<html>
<head>
<style>
#box {
background-color:blue;
width:100px;
height:100px;
opacity:1;
}
</style>
</head>
<body>
<div id="box"></div>
<button onclick="toggle()">Toggle</button>
<script>
var faded = false;
var current = document.getElementById("box").style.opacity *2;
var toggle = function() {
document.getElementById("box").innerHTML = current;
}
</script>
</body>
</html>
答案 0 :(得分:1)
通过访问style
属性,您只能获得元素的内联样式。您的样式是使用样式表定义的。您需要使用的是getComputedStyle
。请注意其compatibility here。
var box = document.getElementById("box");
function toggle() {
var styles = window.getComputedStyle(box, null);
var opacity = styles.getPropertyValue('opacity');
box.innerHTML = opacity * 2;
}
为了使其更加强大,you can do what this guy did。您可以检查style
属性中的样式,当它不存在时,请检查样式表。
答案 1 :(得分:0)
使用此
var current = document.getElementById("box");
var style = window.getComputedStyle(current);
var opacity = style.getPropertyValue('opacity') * 2;
document.getElementById("box").innerHTML = opacity;
如果你有内嵌样式或通过javascript添加样式,你可以使用.style
但是通过css添加getComputedStyle