विभिन्न उपकरणों में वास्तविक व्यवहार असंगत है । अलग आवृत्ति के साथ एक अलग क्रम में आग और आकार बदलने की अभिविन्यास कर सकते हैं। इसके अलावा, कुछ मान (जैसे कि स्क्रीन.आवंटन और window.orientation) हमेशा आपकी अपेक्षा के अनुसार नहीं बदलते हैं। स्क्रीन से बचें । आईओएस में घुमाते समय यह नहीं बदलता है।
विश्वसनीय दृष्टिकोण दोनों आकार और अभिविन्यास को बदलने के लिए सुनना है (एक सुरक्षा पकड़ के रूप में कुछ मतदान के साथ), और आप अंततः अभिविन्यास के लिए एक वैध मूल्य प्राप्त करेंगे। मेरे परीक्षण में, एंड्रॉइड डिवाइस कभी-कभी पूर्ण 180 डिग्री घूमने पर घटनाओं को आग लगाने में विफल होते हैं, इसलिए मैंने अभिविन्यास को प्रदूषित करने के लिए एक सेटइंटरवल भी शामिल किया है।
var previousOrientation = window.orientation;
var checkOrientation = function(){
if(window.orientation !== previousOrientation){
previousOrientation = window.orientation;
// orientation changed, do your magic here
}
};
window.addEventListener("resize", checkOrientation, false);
window.addEventListener("orientationchange", checkOrientation, false);
// (optional) Android doesn't always fire orientationChange on 180 degree turns
setInterval(checkOrientation, 2000);
यहां उन चार उपकरणों के परिणाम हैं जिन्हें मैंने परीक्षण किया है (ASCII तालिका के लिए खेद है, लेकिन यह परिणाम पेश करने का सबसे आसान तरीका था)। आईओएस उपकरणों के बीच निरंतरता के अलावा, उपकरणों में बहुत विविधता है। नोट: ईवेंट को उस क्रम में सूचीबद्ध किया गया है जिसे उन्होंने निकाल दिया था।
| ================================================= ============================= |
| डिवाइस | घटनाएँ निकाल दी | अभिविन्यास | इनरव्हीड | स्क्रीन
| ================================================= ============================= |
| iPad 2 | आकार परिवर्तन | 0 | 1024 | 768 |
| (परिदृश्य के लिए) | अभिविन्यास 90 | 1024 | 768 |
| ---------------- + ------------------- + ------------ - + ------------ + -------------- |
| iPad 2 | आकार परिवर्तन | 90 | 768 | 768 |
| (चित्र के लिए) | अभिविन्यास 0 | 768 | 768 |
| ---------------- + ------------------- + ------------ - + ------------ + -------------- |
| iPhone 4 | आकार परिवर्तन | 0 | 480 | 320 |
| (परिदृश्य के लिए) | अभिविन्यास 90 | 480 | 320 |
| ---------------- + ------------------- + ------------ - + ------------ + -------------- |
| iPhone 4 | आकार परिवर्तन | 90 | 320 | 320 |
| (चित्र के लिए) | अभिविन्यास 0 | 320 | 320 |
| ---------------- + ------------------- + ------------ - + ------------ + -------------- |
| Droid फोन | अभिविन्यास 90 | 320 | 320 |
| (परिदृश्य के लिए) | आकार परिवर्तन | 90 | 569 | 569 |
| ---------------- + ------------------- + ------------ - + ------------ + -------------- |
| Droid फोन | अभिविन्यास 0 | 569 | 569 |
| (चित्र के लिए) | आकार परिवर्तन | 0 | 320 | 320 |
| ---------------- + ------------------- + ------------ - + ------------ + -------------- |
| सैमसंग गैलेक्सी | अभिविन्यास 0 | 400 | 400 |
| गोली | अभिविन्यास 90 | 400 | 400 |
| (परिदृश्य के लिए) | अभिविन्यास 90 | 400 | 400 |
| | आकार परिवर्तन | 90 | 683 | 683 |
| | अभिविन्यास 90 | 683 | 683 |
| ---------------- + ------------------- + ------------ - + ------------ + -------------- |
| सैमसंग गैलेक्सी | अभिविन्यास 90 | 683 | 683 |
| गोली | अभिविन्यास 0 | 683 | 683 |
| (चित्र के लिए) | अभिविन्यास 0 | 683 | 683 |
| | आकार परिवर्तन | 0 | 400 | 400 |
| | अभिविन्यास 0 | 400 | 400 |
| ---------------- + ------------------- + ------------ - + ------------ + -------------- |