- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
尝试以不同的颜色闪烁 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')
}
}
function getMaxPos() {
var maxNum = 0
for (let index = 0; index < posArr.length; index++) {
if (posArr[index] > maxNum) maxNum = posArr[index]
}
return maxNum
}
var TurnNum = 4 //Number of turns
var posArr = [1]
var turnCnt = 1
var currDiv = makeBoard()
document.onkeydown = function (event) {
switch (event.keyCode) {
case 37:
//Left Key -1
posArr[turnCnt] = posArr[turnCnt - 1] - 1
currDiv = drawMove(currDiv, -1)
turnCnt++
break;
case 39:
//Right key +1
posArr[turnCnt] = posArr[turnCnt - 1] + 1
currDiv = drawMove(currDiv, 1)
turnCnt++
break;
case 40:
currDiv.classList.remove('selected')
dimSwitch()
break;
}
if (turnCnt === TurnNum) {
currDiv.classList.remove('selected')
dimSwitch()
}
};
函数 selectDivs 应该在每次执行之间运行一段时间每当使用延迟或超时时,它就会卡住或无法正常工作在我删除 for 循环中的类之前,用户应该能够看到哪些 div 是红色的(“选定的”类)。
这就是我尝试使用 setTimeout 的方法,但其余代码继续在后台运行,我看到的是所有红色的 div:
setTimeout(function(){
for (let index = 0; index < selectedDivs.length; index++) {
selectedDivs[index].classList.remove('selected')
}
},1000)
最佳答案
您已将循环代码放入 setTimeout block 中,因此整个循环一目了然,但会在 1000 毫秒后运行。如果您希望元素逐个出现 1 秒延迟,您可以将逻辑更改为这样,为每个元素设置不同的超时 (1000 * index)
:
for (let index = 0; index < selectedDivs.length; index++) {
setTimeout(function(){
selectedDivs[index].classList.remove('selected')
}
, (1000 * index)
)
}
关于javascript - 循环内的 DOM 操作发生得太快,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58796953/
我之前已经成功地完成了此操作,但现在在多次运行程序后,失败的原因是屏幕截图太快。当 jframe 淡入时,它不会获取正确的图像。我该如何解决这个问题? 编辑:所以基本上我试图捕获 JFrame 内 J
我正在 Canvas 中创建简单的动画。我使用 requestanimationframe 来控制动画。有3圈。但我只能看到 3 个圆圈,而且动画太快了。我的问题是如何减慢动画速度以及如何显示每一帧。
我有一个 ASP.NET-MVC 应用程序: 打开一个数据库事务 更新购物车状态和其他内容 通过 HttpRequest 将此购物车提交给另一个网络服务器 在数据库中注册传输及其代码状态 发送一封确认
我对大文件 ftruncate 和 fsync 操作感到惊讶。我编写了一个程序,在 Linux 64 位系统上创建一个空文件,将其截断为 0xffffffff 字节,然后 fsync 它。 在所有操作
我有一个 each 函数来确定何时单击 ID 中的链接。单击发生后,它会获取相关属性并将它们关联到主图像。 此功能还可以包括一个视频,因此如果 html 包含一个名为 #video 的 ID它采用视频
我有一个带有 TextBox 的简单 WM7 页面.此外,我分配了EventToCommand (一个 RelayCommand )到这个 TextBox , 对 TextChanged 使用reac
我正在使用 jquery fadein fadeout 和慢速选项,但它对我来说仍然有点太快了。现在我读到你只能在快和慢之间进行选择,但是有没有办法让它变慢呢? 最佳答案 你有两个选择。第一种是在调用
当我使用onSensorChanged()测试手机的加速度计时,发现它响应速度很快。几乎每1~3msonSensorChanged()就会被激活。我查了一些其他手机的信息,感觉有点奇怪,所以我怀疑我的
我正在使用 Java 和 OpenGL 为 Android 编写游戏。我可以将所有内容完美地渲染到屏幕上,但是当我尝试检查两个对象是否发生碰撞时,我的算法会在碰撞发生在屏幕上之前检测到碰撞。 这是我测
我正在开发一个 android 应用程序,当我从我的设备按下后退按钮时(一个人的正常按下时间,1 秒或更短),它从我的 Activity 跳到上一个 Activity (菜单)然后退出应用程序。但如果
我有 2 个 Activity ,我想在两个 Activity 之间创建一个动画过渡,这样两个 Activity 的 View 都会向上滑动,就好像第二个 Activity 正在向上插入第一个 Act
我有一个使用 jquery 的 setIntervall() 函数无限滑动图像的网站。 在 Chrome 13 中调用页面时,我切换到另一个选项卡几秒钟后返回,图像滑动速度更快,就好像它试图保持在没有
请考虑以下 ViewModel 片段: var id, given1, given2; $.get("testSynUfGet.aspx", null, function (data) { i
我目前正在使用 SmoothDivScroll 来实现图像的滚动流。但是,左边的 Hotspot 太快了,而 Right Hotspot 似乎 react 不正常。 我设置了一个 fiddle 来展示
很难说出这里问的是什么。这个问题是含糊的、模糊的、不完整的、过于宽泛的或修辞性的,无法以目前的形式得到合理的回答。如需帮助澄清此问题以便重新打开它,visit the help center 。 已关
我有 2 个使用 Javascript 中的 Fetch API 的 HTTP 请求。我的主要语言是 Java,但我的任务是负责一个前端项目,所以我不确定是否有一个简单的解决方案。我的问题是,第一个调
我有 2 个使用 Javascript 中的 Fetch API 的 HTTP 请求。我的主要语言是 Java,但我的任务是负责一个前端项目,所以我不确定是否有一个简单的解决方案。我的问题是,第一个调
在我的应用程序中,我有一个项目列表和一个删除最后一个项目的按钮。然后在我的 Controller 上我写了以下操作: removeLastItem: -> lastItem = cur
我是一名优秀的程序员,十分优秀!