3 回答
TA贡献2016条经验 获得超9个赞
我强烈建议不要将setInterval()用于此简单的工作,而应坚持使用CSS动画,如下所示:
需要眨眼的元素应在其样式中包括此行...
animation:Blink 2000ms linear 0s infinite none;
然后将其独立添加到您的CSS部分中...
@keyframes Blink{from{background:white;} to{background:black;}}
TA贡献1803条经验 获得超3个赞
使用querySelectorAll和classList.toggle
还要注意,我们添加了一个CSS类来隐藏元素。toggle如果不存在该呼叫,则将添加该呼叫,如果存在,则将其删除。
function blinktext() {
document.querySelectorAll('.announcement').forEach(e =>{
setInterval(() => {
console.log(e);
e.classList.toggle('hide');
}, 500);
});
}
// We use an event listener to only run our code once the HTML is
// loaded and ready to be read.
document.addEventListener('DOMContentLoaded', () => {
blinktext();
});
.hide {
visibility: hidden;
}
<div class="announcement rTableCell">
<span style="color: #99cc00;">groen</span></div>
<div class="announcement rTableCell">
<span style="color: #99cc00;">groen</span></div>
<div class="rTableCell">
<span style="color: #99cc00;">groen</span></div>
<div class="announcement rTableCell">
<span style="color: #99cc00;">groen</span></div>
<div class="rTableCell">
<span style="color: #99cc00;">groen</span></div>
<div class="announcement rTableCell">
<span style="color: #99cc00;">groen</span></div>
<div class="announcement rTableCell">
<span style="color: #99cc00;">groen</span></div>
TA贡献1735条经验 获得超5个赞
使用类描述符最容易实现的倍数
<div id="announcement" class="rTableCell blinking">
<span style="color: #99cc00;">groen</span></div>
function blink(target){
return function(){
target.style.visibility = (target.style.visibility == 'hidden' ? '' : 'hidden');
}
}
let blinkers=document.getElementsByClassName('blinking');
for(let blinker of blinkers){
setInterval(blink(blinker), 500);
}
这样应该可以工作(您需要返回函数结构在方法中具有正确的引用)
添加回答
举报