javascript - 淡出效果完成后如何运行.remove()?
问题描述
我想运行“this.parentElement.remove();”这一行 在 "this.parentElement.classList.add("fade-out");" 行之后 完成(淡出持续 1 秒)。
现在 .remove() 立即运行,因此淡出效果不显示。
提前谢谢了!
var deleteItem = document.querySelectorAll("span");
for (var i = 0; i < deleteItem.length; i++) {
deleteItem[i].addEventListener("click", function(event){
this.parentElement.classList.add("fade-out");
this.parentElement.remove();
event.stopPropagation();
});
}
解决方案
指定淡入淡出超时功能的持续时间,完成后回调函数将执行
代码示例
const deleteItem = document.querySelectorAll("span");
const FADE_OUT_TIME = 2000;
for (let i = 0; i < deleteItem.length; i++) {
deleteItem[i].addEventListener("click", function(event) {
event.stopPropagation();
this.classList.add("fade-out");
setTimeout(_ => this.remove(), FADE_OUT_TIME)
});
}
.cursor-pointer {
cursor: pointer;
}
<span class="cursor-pointer">first</span>
<span class="cursor-pointer">second</span>
<span class="cursor-pointer">third</span>
推荐阅读
- security - GCE、GKE 和 AI Platform notebook 上具有关键安全更新的操作系统补丁如何?
- http - 如何在 go-chi 中启用 gzip 压缩中间件
- c++ - 在对齐连续分配方面需要帮助
- java - 使用按钮和鼠标来控制画板
- prolog - 如何在列表中找到一些特定的节点/元素?
- python - 如何正确优化热剖面上的拟合数据?
- angular - 此页面不适用于服务器端 iis (.netcore 2.2)
- java - 使用 Maven-Cargo pluin 热部署 JavaEE 应用
- python - NLTK punkt 句子标记器在数字项目符号上拆分
- android - 使用 navGraphViewModels 访问子 NavHostFragment 的图形范围 ViewModel