在Chrome上,当在动画期间切换到选项卡/窗口时,动画将被中断,使横幅变亮,直到下一个定时帧切换。这只发生在Chrome上。
在任何浏览器上,快速切换帧都会导致相同类型的故障。
另外,它似乎偶尔会陷入第2帧(大多数只是在Chrome中)
我已经尝试在动画正在进行时锁定动画,将点击事件切换切换为延迟0.5秒(动画的长度)的定时事件...这大部分修复了第二个问题,但不是理想(延迟是令人愤怒的)。
这是Chrome的错误吗?或者更有可能的是,我做错了什么?
这是每5秒激活一个新横幅的功能。最初,所有横幅都先消失了,但我试图解决这个问题,试图解决我原先认为可能存在的问题。
function activate_banner(banner_id) {
fadeIn(banners[banner_id]);
for (var i = 0; i < banner_iter.length; i++)
if (banner_ids[i] != banner_id) fadeOut(banners[banner_iter[i]]);
}
淡入非常简单:
el.style.display = "";
el.style.zIndex = "1";
el.style.transition = "opacity 0.5s linear 0s";
el.style.opacity = 1;
淡出使用事件侦听器来隐藏框架的div:
if (el.style.display == "none") return;
el.style.zIndex = "99";
el.style.transition = "opacity 0.5s linear 0s";
el.style.opacity = 0;
var transitionEvent = whichTransitionEvent(el);
if (el.addEventListener) transitionEvent && el.addEventListener(transitionEvent, function () {
el.style.display = "none";
});
else transitionEvent && el.attachEvent(transitionEvent, function () {
el.style.display = "none";
});