2014-05-23 9 views
5

पर ध्यान केंद्रित करते समय आईओएस में अनदेखा फिक्स्ड/पूर्ण पोजीशनिंग मैं फोनगैप के साथ एक ऐप बना रहा हूं और मेरे पास एक हेडर है जिसे मैंने व्यूपोर्ट के शीर्ष पर तय किया है।इनपुट

header { 
    position: fixed; 
    top: 0; 
    width: 100%; 
    height: 30px; 
    background-color: red; 
    z-index: 100; 
} 

यह काम करता है जब मैं एक इनपुट फ़ील्ड टैप करता हूं और कीबोर्ड स्लाइड करता है। फिर स्थिति पूरी तरह से त्याग दिया जाता है। हेडर दृश्यमान दृश्य के बाहर ऊपर फिसल गया है। कीबोर्ड फिर से बंद करने के बाद यह अपनी जगह पर वापस आ जाता है।

मैंने पढ़ा है कि कुछ मोबाइल ब्राउज़र को यह सुनिश्चित करने के लिए निश्चित और पूर्ण स्थान की परवाह नहीं है कि संभवतः एक छोटी सी स्क्रीन एक निश्चित तत्व से ढकी न हो। क्या ये सच है?

क्या इसके आसपास कोई रास्ता है?

मैंने इनपुट पर केंद्रित होने पर शीर्षलेख को पूर्ण करने की कोशिश की है। मैंने इसके बारे में यहां पढ़ा, http://dansajin.com/2012/12/07/fix-position-fixed/। हालांकि, यह मेरे लिए काम नहीं कर रहा प्रतीत होता है।

किसी भी मदद के लिए धन्यवाद। चीयर्स

+0

क्या आपके पास कीबोर्ड प्लगइन जोड़ा गया है? एक ऐसी संपत्ति है जिसे आप config.xml फ़ाइल में जोड़ सकते हैं: 'कीबोर्डश्रिंक व्यू' को सत्य पर सेट करें। –

+0

हाय @ केरीशॉट्स और आपकी प्रतिक्रिया के लिए धन्यवाद। हां, मैंने प्लगइन जोड़ा है और कीबोर्डश्रिंक व्यू प्रॉपर्टी के साथ ही है। यह मेरे लिए काम नहीं करता है। – Oscar

+0

आईओएस संस्करण क्या है? –

उत्तर

3

आईएसओ के लिए निश्चित स्थिति के फोनगैप का कार्यान्वयन वर्चुअल कीबोर्ड की बात आती है। मैंने आपके द्वारा लिंक किए गए कई प्रस्तावों का प्रयास किया है, लेकिन उनमें से कोई भी संतोषजनक ढंग से काम नहीं करता है। कीबोर्डश्रिंक व्यू को अक्षम करने से इनपुट फ़ील्ड कीबोर्ड के नीचे छिपी हो सकती है।

मैं इस वर्कअराउंड के साथ जा रहा हूं, जो कुंजीपटल दृश्य में स्लाइड करते समय निश्चित हेडर को छुपाता है और कुंजीपटल स्लाइड देखने के बाद इसे फिर से दिखाता है। मैं एक और पूर्ण फिक्स का इंतजार कर रहा हूं, लेकिन इस समाधान के पास स्वच्छ और भरोसेमंद होने का लाभ है। शो() पर 10 एमएस देरी हेडर को गलत जगह पर फ्लैश करने से रोकने के लिए पर्याप्त है जबकि कीबोर्ड नीचे स्लाइडिंग कर रहा है। छिपाने पर 20 एमएस देरी() हेडर को गलत जगह पर पॉप-अप करने से रोकती है यदि उपयोगकर्ता सीधे एक इनपुट फ़ील्ड से अगले तक जाता है।

$(document).on('focus','input, textarea, select',function() { 
    setTimeout(function() { 
     $('header').hide(); 
    },20); 
}); 
$(document).on('blur','input, textarea, select',function() { 
    setTimeout(function() { 
     $('header').show(); 
    },10); 
}); 
+0

हाय @ डैक्समैक्रोग और आपके उत्तर के लिए धन्यवाद। यह वास्तव में एक बहुत अच्छा समाधान है। विज़ुअल व्यू पोर्ट कीबोर्ड के साथ छोटा है, इसलिए यह हेडर को सभी को एक साथ छिपाने के लिए समझ में आता है (जो भी काफी बड़ा है)। धन्यवाद, शायद आज इसे आजमाएं। :) – Oscar

+0

आज इसे आजमाया और यह काम करता है। हालांकि यह एक अच्छा वैकल्पिक समाधान है, फिर भी मैं वास्तव में अपना हेडर मौजूद होना चाहता हूं और दृश्य पोर्ट के शीर्ष पर फंस गया हूं। मैं इसे संभव बनाने के लिए कुछ कामकाज पर कुछ और देखने की कोशिश करूंगा। धन्यवाद! – Oscar

+0

यह कुछ परिस्थितियों के लिए काम करेगा, लेकिन यदि आपके पास एक नेबर-फिक्स्ड में बटन है जिसे आपको एक्सेस करने की आवश्यकता है (जैसे कि प्रश्न में फ़ॉर्म में हेरफेर करने वाले), तो उपयोगकर्ता को उनको प्राप्त करने के लिए फ़ॉर्म फ़ील्ड के बाहर टैप करना होगा बटन वापस। यह शर्म की बात है कि इनपुट पर ध्यान केंद्रित करने के बजाय कीबोर्ड का पता लगाने का कोई स्पष्ट तरीका नहीं है। –

संबंधित मुद्दे