尝试以不同的颜色闪烁 div,它们之间有一段时间(不使用 jquery)。该程序在调试器中完美运行,但在运行它时,所有更改发生得太快,用户看不到任何东西。
尝试使用 setTimeout 无济于事(可能没有正确使用它)
function makeBoard() {
var squareNum = 4
var selected
container = document.createElement('div')
container.id = 'container'
document.body.appendChild(container);
for (let index = 0; index < squareNum; index++) {
squareDiv = document.createElement('div')
squareDiv.className = 'square'
squareDiv.id = '' + (index + 1)
container.appendChild(squareDiv)
}
selected = document.getElementById('1')
selected.classList.add('selected')
return selected
}
function dimSwitch() {
var turnCnt = 1
var posIndex = 0
var selectedDivs = []
var tempCnt = 0
var tempIndex = 0
var timeNum = getMaxPos()
while (tempCnt < timeNum) {
var posIndex = posArr.indexOf(turnCnt, tempIndex)
tempIndex = posIndex + 1
while (posIndex !== -1) {
selectedDivs.push(document.getElementById(posIndex + 1 + ''))
posIndex = posArr.indexOf(turnCnt, tempIndex)
tempIndex = posIndex + 1
}
selectDiv(selectedDivs) //After this i would like a small delay
turnCnt++
tempCnt++
for (let index = 0; index < selectedDivs.length; index++) {
selectedDivs[index].classList.remove('selected')
}
selectedDivs = []
}
}
function drawMove(currDiv, direction) {
var nextDiv
currDiv.classList.remove('selected')
nextDiv = document.getElementById((parseInt(currDiv.id) + direction))
nextDiv.classList.add('selected')
return nextDiv
}
function selectDiv(divs) {
for (let index = 0; index < divs.length; index++) {
divs[index].classList.add('selected')
}
}
每当使用延迟或超时时,函数 selectDivs 应该在每次执行之间运行一段时间,它会冻结或正常工作 在我删除 for 循环中的类之前,用户应该能够看到哪些 div 是红色的(“选定”类) .
这就是我尝试使用 setTimeout 的方式,但其余代码继续在后台运行,我看到的是所有红色的 div:
setTimeout(function(){
for (let index = 0; index < selectedDivs.length; index++) {
selectedDivs[index].classList.remove('selected')
}
},1000)
扬帆大鱼
萧十郎
相关分类