Javascript 2秒后隐藏/显示图像
所以我需要每隔2秒就有一个图像交替出现和消失,我一直在尝试使用javascript,但我被卡住了,我觉得这很简单,但我无法解决,非常感谢任何帮助 HTMLJavascript 2秒后隐藏/显示图像,javascript,html,css,visibility,Javascript,Html,Css,Visibility,所以我需要每隔2秒就有一个图像交替出现和消失,我一直在尝试使用javascript,但我被卡住了,我觉得这很简单,但我无法解决,非常感谢任何帮助 HTML <body onload="Show()"> <div align="center"> <img id="image" src="image1.png" height="200" width="200"> 在您的setTimeout()中,交换显示和隐藏。另外,删除var Cntr。我不需要它 funct
<body onload="Show()">
<div align="center">
<img id="image" src="image1.png" height="200" width="200">
在您的setTimeout()中,交换显示和隐藏。另外,删除var Cntr。我不需要它
function Hide()
{
document.getElementById("image").style.visibility="hidden";
setTimeout("Show()", 2000);
}
function Show()
{
document.getElementbyId("image").style.visibility="visible";
setTimeout("Hide()", 2000);
}
你的代码有很多问题
setTimeout
错误Hide()
未在任何地方调用。。。
.我将您的脚本更改为:
var hidden = false;
setInterval(function(){
document.getElementById("image").style.visibility= hidden ? "visible" : "hidden";
hidden = !hidden;
},2000);
并从您的
标签中删除了onload
功能
这里还有一个。试试这个-
$(函数($){
setInterval(函数(){
如果($('#image')。是(':visible'))
$('#image').hide();
其他的
$('#image').show();
}, 2000);
});代码>使用jQuery而不是原始JS,它更干净、更简单。在递归中使用Delay和FadeTo函数,只需使用一个简单的函数即可。在页面加载时调用此函数
function Flicker(){
$("#MyImage").delay(1500).fadeTo(300,0).delay(1500).fadeTo(300,1, Flicker);
}
其中:#MyImage是图像的ID
你可以看到这个工作@
希望这能有所帮助。要么是setTimeout(Hide,2000)
要么setTimeout(“Hide()”,2000)
,最好是前者。即使有了这个修复,逻辑也关闭了;页面加载时对Show()
的第一次调用将Cntr
设置为0。实际上,您根本不需要变量,我认为OP不需要jQuery解决方案。没有jQuery
标签。谢谢你,终于让它与你的调整一起工作了
<body onload="blink()">...</body>
var hidden = false;
setInterval(function(){
document.getElementById("image").style.visibility= hidden ? "visible" : "hidden";
hidden = !hidden;
},2000);
function Flicker(){
$("#MyImage").delay(1500).fadeTo(300,0).delay(1500).fadeTo(300,1, Flicker);
}