Browse Source

Timer: only update delta and elapsed time when document is visible (#27651)

* Timer: only update delta and elapsed time when document is visible

* Update Timer.js

Update code style.

---------

Co-authored-by: Noeri Huisman <[email protected]>
Co-authored-by: Michael Herzog <[email protected]>
Noeri Huisman 1 year ago
parent
commit
f55b34fd6f
1 changed files with 13 additions and 4 deletions
  1. 13 4
      examples/jsm/misc/Timer.js

+ 13 - 4
examples/jsm/misc/Timer.js

@@ -73,11 +73,20 @@ class Timer {
 
 	update( timestamp ) {
 
-		this._previousTime = this._currentTime;
-		this._currentTime = ( timestamp !== undefined ? timestamp : now() ) - this._startTime;
 
-		this._delta = ( this._currentTime - this._previousTime ) * this._timescale;
-		this._elapsed += this._delta; // _elapsed is the accumulation of all previous deltas
+		if ( this._usePageVisibilityAPI === true && document.hidden === true ) {
+
+			this._delta = 0;
+
+		} else {
+
+			this._previousTime = this._currentTime;
+			this._currentTime = ( timestamp !== undefined ? timestamp : now() ) - this._startTime;
+
+			this._delta = ( this._currentTime - this._previousTime ) * this._timescale;
+			this._elapsed += this._delta; // _elapsed is the accumulation of all previous deltas
+
+		}
 
 		return this;