作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在尝试制作背景效果。在按键时,它会创建一个半秒后淡出的 div。每次按下一个键,它都会创建一个带有新 id 的新 div。如何在触发后半秒删除每个 div?
我忘了说,我有一个函数可以将 document.getElementById('id')
缩短为 $('id')
。我没有使用 jQuery。
到目前为止,这是我的代码。
function $(e) {
return document.getElementById(e)
}
let circles = 0;
onkeypress = () => {
document.body.insertAdjacentHTML('beforeend', `<div class="effect" id="l${circles}"></div>`)
setTimeout(function(){
$(`l${circles}`).remove()
},500)
circles++
}
最佳答案
如果您使用 setTimeout,它将在 500 毫秒后使用计数器的值,这意味着它不再等于用于创建元素 ID 的计数器。
你应该只使用:
onkeypress = () => {
var el = document.createElement("div");
el.className = "effect";
document.body.appendChild(el);
setTimeout(function(){
document.body.removeChild(el);
},500)
}
关于javascript - 如何在 div 出现后一秒钟删除它?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66675991/
我是一名优秀的程序员,十分优秀!