2014-06-17 13 views
5

Bir animasyon oynamak ve ziyaretçinin bunu görmesini sağlamak istiyorum. Benim sorunum, biri arka planda yeni bir tarayıcı sekmesi açtığı zaman (örneğin, target="_blank" ile bir bağlantı tıklatıldığında), belgenin hazır olayı yeterli değildir, çünkü ziyaretçinin bu siteyi yalnızca birkaç sonra izlemesi şansı vardır. dakikalar, bu yüzden animasyonu en baştan veya hiç bir şeyden görmeyecek.Ziyaretçi sadece web sitesini ziyaret ediyorsa o zaman kodu kullan.

Animasyonumun (uygun JavaScript işlevini çalıştırarak) yalnızca kullanıcı bu tarayıcı sekmesine tıkladığında başlatmanın bir yolu var mı? Bu davranışı taklit edecek bir olay veya başka bir geçici çözüm var mı? Kodun yalnızca ilk defa veya kullanıcının tarayıcı sekmesine her tıkladığında yürütülmesi önemli değildir.

+0

Veya: http://stackoverflow.com/questions/1760250/how-to-tell-if-browser-tab-is-active –

cevap

5

requestAnimationFrame'u deneyin. Sekme etkin değilse, o zaman animasyon çerçevesi oluşmayacak.

Bu benim bazı sayfalarında "otomatik güncelleme" ertelemek için kullandıkları ve kesinlikle çalışır - hatta bu cevaba göre bunun :)

+0

Bu güzel ama IE 10. lazım anmaktan çalışır, birileri hala 9 ve 8 ile çalışmak zorunda. –

0

olumlu geri bildirimler aldık: How to tell if browser/tab is active

Window.onfocus ve window.onblur olaylarını kullanarak bir sekmenin aktif olup olmadığını görebilirsiniz.

var isActive; 

window.onfocus = function() { 
    isActive = true; 
}; 

window.onblur = function() { 
    isActive = false; 
}; 
İlgili konular