【发布时间】:2019-01-22 19:08:18
【问题描述】:
我是 JavaScript 新手。我真的很想找出一种简单的技术来改变位于另一个图像顶部的图像的不透明度,以逐渐显示底部图像。我想通过淡出来做到这一点。换句话说,随着时间的流逝,随着时间的推移逐渐从 style.opacity 属性中减去。
我想出了以下方法,但它似乎对我不起作用。
我的代码的当前状态改变了不透明度突然从 1 变为负数(-0.1、-0.2、-0.3 等)。这基本上会立即从顶部图像过渡到显示底部图像。
随着每一秒的过去,我想逐渐从 1 的不透明度变为(0.9、0.8、0.7 等)。
我想用纯 JavaScript 来完成这个。我在 CSS 中发现了类似的东西,但我不想使用这种方法。
我假设(var currentOp = document.getElementById('guitar2').style.opacity;) 将 currentOp 变量视为字符串。正因为如此,我尝试了将解析为浮动、进行减法并改回字符串的组合,随着时间的推移逐渐设置不透明度,但无济于事。
<!DOCTYPE>
<html>
<head>
<style>
#guitar1
{
position: relative;
top: 0;
left: 0;
}
#guitar2
{
position: absolute;
top: 0px;
left: 0px;
opacity: 1;
}
</style>
</head>
<body onload="runTime()">
<script>
var timer;
function reduceOpacity()
{
var op = document.getElementById('guitar2');
var currentOp = document.getElementById('guitar2').style.opacity;
//currentOp = (parseFloat(currentOp) - 0.1).toString();
currentOp -= 0.1;
op.style.opacity = currentOp;
}
function runTime()
{
timer = setInterval(reduceOpacity, 1000);
}
</script>
<h4 id="header">Gibson Les Paul</h4>
<div style="position: relative; left: 0; top: 0;">
<img src="gibson1.png" id="guitar1" width="500" />
<img src="gibson2.png" id="guitar2" width="500" />
</div>
<button type="button" onclick='document.getElementById("header").innerHTML = "yea"'>Click Me!</button>
</body>
</html>
【问题讨论】:
-
你总是可以使用纯 CSS:stackoverflow.com/a/11681331/3684265
-
您应该查看@imvain2 发布的链接。这是另一种我认为更容易遵循的类似方法:CSS3 Transition - Fade out effect
标签: javascript html css opacity fading