我正在寻找一种使图像闪烁得如此之快以至于我看不到的方法(然后避免一些屏幕截图):
var img = document.getElementsByTagName('img')[0];
var i = true;
setInterval(blink,10);
function blink(){
if(i){
img.style.visibility="visible";
i=false;
}else{
img.style.visibility="hidden";
i=true;
}
}
但是我仍然看到闪烁,并且我认为我不能低于10ms。最初,我以为低于24 f / s不会引起注意,但事实并非如此。
我可以更改哪些内容以使其更快?可能吗?
最终目标是避免屏幕截图。
监视器的标准刷新率为60Hz-每秒60次。这是硬件的局限性-即使具有完美的软件时序,也没有办法比这更频繁地显示帧-并且关注屏幕的人可以很容易地看到1/60秒的画面。
您唯一的选择是使图像在每帧中都出现和消失(这可以比setInterval
使用requestAnimationFrame
-更为精确地完成-但对于那些近距离观看的人仍然可见)。
// Ensure browser is not busy
setTimeout(() => {
window.requestAnimationFrame(() => {
document.body.classList.toggle('blue');
window.requestAnimationFrame(() => {
document.body.classList.toggle('blue');
});
});
}, 1000);
.blue {
background-color: blue;
}
监视器不可能在足够短的时间内显示某些东西,而这是无法感知的。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句