【发布时间】:2017-08-01 07:09:18
【问题描述】:
我有一个倒计时计时器,呈条形,宽度会慢慢减小。
检查以下代码:
HTML
<div id="timer"><span></span></div>
CSS
#timer {
height: 30px;
display: block;
overflow: hidden;
background: grey;
}
#timer span {
width: 100%;
height: 100%;
display: block;
background: green;
-webkit-animation-name: decreasewidth;
animation-name: decreasewidth;
-webkit-animation-iteration-count: 1;
animation-iteration-count: 1;
-webkit-animation-timing-function: linear;
animation-timing-function: linear;
-webkit-animation-fill-mode: forwards;
animation-fill-mode: forwards;
-webkit-animation-duration: 20000ms;
animation-duration: 20000ms;
}
@keyframes decreasewidth {
to { width: 0% }
}
@-webkit-keyframes decreasewidth {
to { width: 0% }
}
遗憾的是,当页面不使用时,动画会停止,例如。浏览另一个选项卡或窗口。我知道这在浏览器中很常见,有助于节省处理能力。
问题是,我希望我的计时器准确无误。这意味着即使用户在此期间轻弹到其他选项卡,也要保持其位置不变。我将如何实现这一目标?
起初,我的想法是计算用户离开页面的毫秒数,然后在返回时相应地更新计时器的跨度。但这只会发生在 focus 事件上,它依赖于用户活动。
我还尝试了一个很好的 ol' javascript setInterval 技术,它只是每秒更新跨度的宽度。这不仅看起来很糟糕——同样的问题也发生了。大多数浏览器会在不活动时增加间隔时间。
有兴趣听听有关如何处理此问题的一些想法。
TL;DR
我需要一个动画倒计时条,即使页面处于非活动状态,它也能保持其位置不变。
编辑
我知道这在 Safari 中很明显。
【问题讨论】:
-
在选项卡未激活时存储cookie或本地存储中的时间,然后一旦他们单击它,请从保存中加载值。 span>
-
你遇到过同样的问题吗? stackoverflow.com/questions/5927284/…
标签: javascript jquery css