将下列代码 thisvisibilityChangeHandler = = if documentvisibilityState === hidden thispauseCountdown; thisleaveTimestamp = Datenow; else if documentvisibilityState === vi
将 leaveTimestamp 和 backTimestamp 转化为分钟单位,然后计算两者之间的时间差,最后将结果除以 60 即可得到离开时长的分钟表示。
代码如下:
this.visibilityChangeHandler = () => { if (document.visibilityState === 'hidden') { this.pauseCountdown(); this.leaveTimestamp = Date.now() / 1000 / 60; // 转化为分钟单位 } else if (document.visibilityState === 'visible' && this.isCounting) { this.startCountdown(); this.backTimestamp = Date.now() / 1000 / 60; // 转化为分钟单位 const elapsed = (this.backTimestamp - this.leaveTimestamp) * 60; // 转化为秒单位 const leavetime = elapsed < (this.time * 60 - this.elapsedTime) ? elapsed : (this.time * 60 - this.elapsedTime); this.returntimme(leavetime); } };
原文地址: https://www.cveoy.top/t/topic/bbZc 著作权归作者所有。请勿转载和采集!