2014-06-17 13 views
5

देखें, मैं एक एनीमेशन खेलना चाहता हूं और यह सुनिश्चित कर सकता हूं कि विज़िटर इसे देखेगा। मेरी समस्या यह है कि, जब कोई पृष्ठभूमि में एक नया ब्राउज़र टैब खोलता है (उदाहरण के लिए target="_blank" के साथ एक लिंक पर क्लिक करके) तो दस्तावेज़ की तैयार घटना पर्याप्त नहीं है, क्योंकि ऐसा कोई मौका है कि विज़िटर केवल कुछ ही साइट देखेगा मिनट, तो वह शुरुआत या कुछ भी से एनीमेशन नहीं देख पाएगा।केवल तभी निष्पादित करें जब विज़िटर वेबपृष्ठ

क्या मेरा एनीमेशन शुरू करने का कोई तरीका है (उचित जावास्क्रिप्ट फ़ंक्शन चलाकर) जब उपयोगकर्ता उस ब्राउज़र टैब पर क्लिक करता है? क्या कोई घटना या कोई अन्य कामकाज है जो इस व्यवहार की नकल करेगा? इससे कोई फर्क नहीं पड़ता कि कोड केवल पहली बार निष्पादित किया जाएगा या जब भी उपयोगकर्ता ब्राउज़र टैब पर क्लिक करेगा।

+0

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

उत्तर

5

requestAnimationFrame आज़माएं। यदि टैब सक्रिय नहीं है, तो एनीमेशन फ्रेम तब तक नहीं होगा जब तक कि यह न हो।

मैं यह मेरा पृष्ठों में से कुछ पर "स्वत: अद्यतन" स्थगित करने का उपयोग करें, और यह निश्चित रूप से काम करता है - मैं भी इस जवाब के अनुसार यह :)

+0

यह अच्छा है, लेकिन यह IE 10 होगा उल्लेख से ही काम करता है, किसी को अभी भी 9 और 8 के साथ काम करना है। –

0

पर सकारात्मक प्रतिक्रिया मिल गया है: How to tell if browser/tab is active

आप देख सकते हैं कि window.onfocus और window.onblur घटनाओं का उपयोग कर एक टैब सक्रिय है या नहीं।

var isActive; 

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

window.onblur = function() { 
    isActive = false; 
}; 
संबंधित मुद्दे