javascript - 如何使用 clearInterval 停止我的功能?
问题描述
我目前有一个使用 setInterval 对多个图像进行排序的函数,将不透明度从 0 更改为 1,但是一旦它循环遍历所有图像,我需要清除间隔。目前,一旦浏览了所有图像,该功能就会中断。
// startImageSequence 函数
startImageSequence() {
let sequence_frames = document.querySelectorAll('.sequenceImage').length;
let sequence_current_frame = 0;
setInterval(function(){
let seqimgs = document.querySelectorAll('.sequenceImage');
seqimgs[sequence_current_frame].style.opacity = 0;
sequence_current_frame++;
if(sequence_current_frame > sequence_frames) {
let sequence_current_frame = 0;
clearInterval();
}
seqimgs[sequence_current_frame].style.opacity = 1;
}, 50);
}
// 图片
<img src="..." class="sequenceImage" />
<img src="..." class="sequenceImage" />
<img src="..." class="sequenceImage" />
<img src="..." class="sequenceImage" />
<img src="..." class="sequenceImage" />
...
解决方案
您可以使用 clearInterval 来停止使用此技术的功能:
function startImageSequence() {
let sequence_frames = document.querySelectorAll('.sequenceImage').length;
let sequence_current_frame = 0;
var clear = setInterval(function(){
let seqimgs = document.querySelectorAll('.sequenceImage');
seqimgs[sequence_current_frame].style.opacity = 0;
sequence_current_frame++;
if(sequence_current_frame > sequence_frames) {
let sequence_current_frame = 0;
clearInterval(this);
}
seqimgs[sequence_current_frame].style.opacity = 1;
}, 50);
}
您只需要将 setInterval 函数存储在特定变量中,然后在 clearInterval 中使用此变量来定义要停止的间隔。
我希望你会发现它有帮助。
推荐阅读
- angular - express-jwt 和带有 cookie 的 Angular 9:未在“授权”标头中设置令牌
- android-studio - Android Studio 虚拟设备在运行时运行缓慢并在关闭时冻结计算机,我该怎么办?
- python - 检索与两个日期之间的特定搜索相关的推文
- twig - Twig 模板的 PhpStorm 代码完成
- python-3.x - Python 3:获取值错误,序列大于 32
- python - python 3.7,为什么主角先走却输了?
- r - 在 iGraph 中模拟网络后添加组成员作为节点属性
- html - 如何为 html 表中的每条记录显示一种随机背景颜色
- android - 在 DialogFragment 中附加时,Android 侦听器始终为空
- javascript - 在 react redux 中映射 JSON 数据时遇到问题