0

How can i stop Javascript from queuing up animations from a setInterval while the page is not the primary tab in view? I've tried clearing the interval on blur of the document but no luck.

Emery King
  • 3,550
  • 23
  • 34
  • Take a look at this other SO question: http://stackoverflow.com/questions/1220785/is-it-possible-to-detect-when-a-user-switches-to-a-different-browser-tab that says that `document.onblur()` might be your answer. – jfriend00 Oct 12 '11 at 14:49

3 Answers3

0

Have you tried using window.onblur and window.onfocus?

They should dot he trick

Martin Jespersen
  • 25,743
  • 8
  • 56
  • 68
0

In modern browsers you don't have to care about this, because the browser will automatically increase the interval to 1 second if the tab is in the background. Reference for Firefox.

styrr
  • 829
  • 4
  • 9
0

As Martin stated.

Use window.onblur and window.onfocus to pause/unpause the setinterval or atleast the contents inside.

For example.

Use window.onblur to set var away = true;

Then in the setinterval you put a if(!away){...your code here...} this way the animations will not be triggered when the interval passes.

EDIT

Remember to also put a window.onfocus to set var away = false;

Pangolin
  • 7,284
  • 8
  • 53
  • 67
  • I can't get this to work.. i've got window.onblur = clearAnim; function clearAnim() { var away = true; } – Emery King Oct 12 '11 at 15:00
  • Ok, please post your Javascript in the question, especially the part with the setinterval then I will help you from there – Pangolin Oct 12 '11 at 15:07
  • It works good enough with document.onblur... its a little sloppy looking for the first second that you come back to the page but then it stops completely - in chrome – Emery King Oct 12 '11 at 15:07
  • actually no i'm having problems with that now.. It is stopping regardless. apexmarketingconcepts.com - header animation along side of vimeo iframe – Emery King Oct 12 '11 at 15:11
  • Check the EDIT. Remember you must also alter it when the user is back. – Pangolin Oct 12 '11 at 15:35