जब ओरिएंटेशन बदलता है तो मैं मोबाइल ब्राउज़र की विंडो ऊंचाई और चौड़ाई को सटीक रूप से कैप्चर करने का प्रयास कर रहा हूं, लेकिन (एंड्रॉइड में, मैं परीक्षण कर रहा हूं) - जब ओरिएंटेशन श्रोता आग लगती है और विंडो की ऊंचाई और चौड़ाई को कैप्चर करने के लिए फ़ंक्शन को कॉल किया जाता है, नया आकार अभी तक सटीक रूप से प्रतिबिंबित नहीं हुआ है, इसलिए मुझे चीजों को उनके उचित आकार को पंजीकृत करने के लिए मनमाने ढंग से देरी करने के लिए कॉल करना पड़ता है। इससे मैं कैसे निपटूं? यहाँ मेरा कोड है:

window.addEventListener(orientationEvent, function() {
    setTimeout("setViewport()", 500);
    //setViewport();
}, false);

function setViewport() { //Called each time orientation changes, including initial orientation
    viewportW = window.innerWidth; //only reports the accurate window size if the function is called on a delay
    viewportH = window.innerHeight;
}
5
mheavers 8 सितंबर 2011, 02:37

1 उत्तर

इसके बजाय आकार बदलें ईवेंट का उपयोग करें

window.addEventListener('resize', function() {
    viewportW = window.innerWidth;
    viewportH = window.innerHeight;
}, false);

यदि आप केवल उन मानों को विशेष रूप से बदलना चाहते हैं जब अभिविन्यास बदलता है, तो आप विंडो का उपयोग कर सकते हैं। अभिविन्यास को सत्यापित करने के लिए मैच मीडिया भी बदल गया है:

var portrait=(window.matchMedia("(orientation: portrait)")?true:false);
0
nfroidure 18 नवम्बर 2012, 15:31