JS setInterval() 只触发一次
JS setInterval() firing only once
<html>
<head>
<script type="text/javascript">
function topdiv() {
var z = document.createElement("DIV");
z.id = "top";
z.style = "background-color:yellow; width:100%; height:50px; opacity: 1.0";
z.class = "top";
document.body.appendChild(z);
}
function animateDiv() {
var d = document.getElementById("top");
if (d.style.opacity == "0.0") {
d.style.opacity = "1.0";
} else {
d.style.opacity = "0.0";
}
}
</script>
</head>
<body onload="topdiv()">
<script type="text/javascript">
var xyz = setInterval(function() {
animateDiv()
}, 300);
</script>
</body>
</html>
我在我的代码中使用 setInterval 在 30 毫秒后不断更改div 的不透明度,但该函数只执行一次。有人可以帮我解决吗?
更改
if (d.style.opacity == "0.0")
自:
if (d.style.opacity === "0")
http://plnkr.co/edit/eWFDo9OJrYzK3ahz1EBG?p=preview
因为您正在使用 CSS 设置初始不透明度,所以您需要查看计算样式。而不是那样做;在元素本身的代码中设置不透明度。
以防万一浏览器确实返回字符串值,请在比较之前将其强制转换为数字。您还可以将不透明度设置为数字。
看看这个:
<html>
<head>
<script type="text/javascript">
function topdiv() {
var z = document.createElement("DIV");
z.id = "top";
z.style = "background-color:yellow; width:100%; height:50px; opacity: 1.0";
z.style.opacity = 1;
z.class = "top";
document.body.appendChild(z);
}
function animateDiv() {
var d = document.getElementById("top");
if (+d.style.opacity == 0) {
d.style.opacity = 1;
} else {
d.style.opacity = 0;
}
}
</script>
</head>
<body onload="topdiv()">
<script type="text/javascript">
var xyz = setInterval(function() {
animateDiv()
}, 300);
</script>
</body>
</html>
相关文章:
- setInterval 只在对象方法上运行一次
- 如何在 window.setInterval 中每分钟运行一次 getJSON 函数
- setInterval()序列中的setTimeout()只触发一次
- Javascript只使用setInterval()调用一个子函数一次
- 我想在窗口加载后只调用一次JavaScript setInterval函数
- JS setInterval() 只触发一次
- setInterval 只运行一次
- setInterval 只运行一次
- 如果 else 条件在下一次使用 setInterval 传递后发生
- Javascript 函数 setInterval() 只工作一次
- 循环动画javascript,SetInterval只工作一次
- 为什么 SetInterval 不起作用(它只工作一次)
- 为什么 setInterval 回调只执行一次
- setInterval in setTimout 在 angularjs 控制器中只触发一次
- setInterval-如何只激发一次
- setInterval()是如何工作的?我可以用它每小时更换一次图像吗
- setTimeOut/setInterval只运行一次
- 如何只运行一次setInterval()
- 运行一次setInterval,然后停止
- Javascript:只运行一次 setInterval