Javascript setTimeout未显示文本
所以我尝试做一个弹出窗口,它的工作原理如下: 3秒钟后,它将显示关闭按钮,但当您等待3秒钟时,将出现倒计时。 我的问题是没有显示文本Javascript setTimeout未显示文本,javascript,jquery,html,dom,Javascript,Jquery,Html,Dom,所以我尝试做一个弹出窗口,它的工作原理如下: 3秒钟后,它将显示关闭按钮,但当您等待3秒钟时,将出现倒计时。 我的问题是没有显示文本 var n=3; 函数popup(){ setTimeout(函数(){ getElementById('bro').style.visibility=可见; }, 3000); 而(n>0){ setTimeout(函数(){ n--; }, 1000); n、 toString() getElementById('texto')。innerHTML=n; }
var n=3;
函数popup(){
setTimeout(函数(){
getElementById('bro').style.visibility=可见;
}, 3000);
而(n>0){
setTimeout(函数(){
n--;
}, 1000);
n、 toString()
getElementById('texto')。innerHTML=n;
}
}
函数bro(){
getElementById('bro').style.display=“无”;
getElementById('texto').style.display=“无”;
getElementsByName('block').style.display=“无”;
}
#兄弟{
位置:绝对位置;
左:50px;
顶部:150px;
可见性:隐藏;
证明内容:中心;
z指数:3;
字体大小:20px;
}
#texto{
位置:绝对位置;
证明内容:中心;
过渡:无;
背景色:继承;
填充:继承;
z指数:1;
}
旁白{
位置:绝对位置;
证明内容:中心;
宽度:600px;
高度:500px;
背景颜色:蓝色;
边界半径:30px;
z指数:2;
}
3
关
您正在混合可见性和显示。超时功能将可见性设置为可见,但显示值仍设置为无。将所有显示“无”更改为可见性“隐藏” 我正在用手机打字,我无法使用工具轻松编写完整的代码,但请看您代码中的以下错误:
getElementById
之前添加文档。
document.getElementById('bro').style.visibility=“visible”
之间换行visible
李>
set
(在set.setTimeout
中)?将其从setTimeout()的前面删除
n.toString()
?。您必须分配它,不能直接使用它:.innerHTML=n.toString()
while
放入setInterval()
弹出窗口
功能中使用了可见性
,并在另一个位置使用了显示
(用于更改bro
的可见性)。在代码中使用其中一个(css
和js
和html
)李>
document.querySelector('[name=“block”]').style.display=“none”代码>用于隐藏块
元素。
8-将#texto
的z-index
更改为3
更新部分: 现在,您可以在这里测试结果这是您的代码本身,它的问题已经解决:
#兄弟{
位置:绝对位置;
左:50px;
顶部:150px;
可见性:隐藏;
证明内容:中心;
z指数:3;
字体大小:20px;
}
#texto{
位置:绝对位置;
证明内容:中心;
过渡:无;
背景色:继承;
填充:继承;
z指数:3;
字号:20pt;
}
旁白{
位置:绝对位置;
证明内容:中心;
宽度:600px;
高度:500px;
背景颜色:蓝色;
边界半径:30px;
z指数:2;
}
3
关
var n=3;
函数popup(){
setTimeout(函数(){
document.getElementById('bro').style.visibility=“visible”;
}, 3000);
var t2=设置间隔(函数(){
调试器
如果(n-->=0)清除间隔(t2);
else document.getElementById(“texto”).innerHTML=n+“”;
}, 1000);
}
函数bro(){
document.getElementById('bro').style.visibility=“hidden”;
document.getElementById('texto').style.display=“无”;
document.querySelector('[name=“block”]').style.display=“none”;
}
您的代码有几个问题
- 属性集是什么李>
- 几乎每次都会执行setTimeout
- 您需要做的是使用整秒钟的setTimeout并检查当前循环,如果匹配
,则显示关闭按钮n
设n=3;
设c=0;//柜台
常量hideAll=()=>{
隐藏(document.getElementById('texto');
隐藏(document.getElementById('bro'));
隐藏(document.getElementById('block');
}
constshow=(el)=>el.classList.remove('hidden');
常量hide=(el)=>el.classList.add('hidden');
常量showPopup=()=>{
显示(document.getElementById('block');
开始计算();
}
const startCountingDown=()=>setTimeout(倒计时,1000);
常量倒计时=()=>{
如果(c
.hidden{display:none;}
#兄弟{
位置:绝对位置;
左:50px;
顶部:150px;
/*可见性:隐藏*/
证明内容:中心;
z指数:3;
字体大小:20px;
}
#texto{
位置:绝对位置;
证明内容:中心;
过渡:无;
背景色:继承;
填充:继承;
z指数:3;
颜色:红色;
字体大小:50px;
左边距:40px;
边缘顶部:25px;
}
旁白{
位置:绝对位置;
证明内容:中心;
宽度:100px;
高度:100px;
背景颜色:蓝色;
边界半径:30px;
z指数:2;
}
关
我认为您需要document.getElementById,而不仅仅是getElementById,因此具有与元素同名的全局函数将导致问题。什么是设置
?除非它是对窗口
对象的引用(这本身会很奇怪),否则setTimeout()
调用将导致语法错误。您希望超时内的n--in会更改在超时外调用它的文本???是的