Einfache Hintergrundumschaltung
JQuery-Teil
$(function(){
function direct(){
for(var i=0;i<2;i++){
$(".bg_img").eq(i).show().siblings().hide();
}
}
setInterval(direct,1000);
})
HTML-Teil
<p class="main_bg">
<p class="bg_img bg1"></p>
<p class="bg_img bg2"></p>
</p>
CSS-Teil
.bg2 Standardanzeige:keine;
setInterval() wurde nur einmal ausgeführt, daher möchte ich fragen, warum es nicht ein zweites Mal eingegeben werden kann?
Leute, verachtet mich nicht, danke für eure Antworten~
不是鄙视你,但这明显是语法问题……实际上我认为 setInterval 一直都在执行,但是你的函数
direct
的运行结果是固定的,循环的最终结果是第二张显示第一张隐藏,所以看起来好像没执行一样。你应该这样做:
这里用到了闭包,把状态保存在定时器的外面,才能够每次往下循环。
另外再补充一点渲染的知识。对于这种用
for
循环改变视图状态,浏览器会把这些状态都缓存起来,然后择机渲染,而不是你一修改它就立刻渲染。所以你连闪一下都看不到。参考一下
setInterval(function direct(){
循环一次之后i的值为1 然后就一直是1 用let试试
你是不是要的这种效果,按顺序一个一个显示?
$(function(){
})
不知道对不对,但是总感觉是这个的问题