2012-10-06 16 views
6

मैं मोबाइल वेब/देव के लिए नया हूं। मेरा ऐप jquery-mobile, phonegap और कम्पास (एसएसएस) का उपयोग कर रहा है।फ़ोकस स्विचिंग पर स्क्रॉल करने से पृष्ठ को रोकना

मैं अपने प्रवेश पृष्ठ पर एक समस्या है:

लोगो और क्षेत्रों (= "ऊर्ध्वाधर" डेटा-भूमिका = "सामग्री" डेटा प्रकार) मानक 'div' कंटेनर में निहित हैं। पृष्ठभूमि रंगीन है।

लॉगिन क्षेत्र से पासवर्ड फ़ील्ड पर फ़ोकस स्विच करते समय, पृष्ठ स्लाइड हो जाता है, जो मैं नहीं करना चाहता हूं। मैं अपने लोगो और फ़ील्ड को स्काइप आईओएस ऐप लॉगिन पेज की तरह ही रहना चाहता हूं।

यहाँ

क्या होता है:

bug description

मैं कई चालें की कोशिश की है, सफलता के बिना, स्क्रॉल ईवेंट ब्लॉक करने की कोशिश या 0,0 करने के लिए स्क्रॉल करने के लिए मजबूर पेज,।

मैं अब एक नई रणनीति के बारे में सोच रहा हूं, शायद लोगो और फ़ील्ड के लिए शीर्ष रिश्तेदार स्थिति का उपयोग कर रहा हूं, और कीबोर्ड स्लाइड पर (शीर्ष रिश्तेदार स्थिति समन्वय को एनिमेट करके) पृष्ठ को स्क्रॉल करने के लिए फ़ोकस ईवेंट को पकड़ रहा हूं।

हालांकि यह संभव लगता है, मैं अगर यह काम के आसपास स्काइप iOS एप्लिकेशन टीम द्वारा इस्तेमाल किया की तरह है सोच रहा हूँ ...

किसी भी सलाह इस विशेष मामले में इस्तेमाल किया टेकनीक पर स्वागत है!

चियर्स,

फ्रेड

+0

मैं यकीन है कि स्काइप हूँ आईओएस ऐप एक वेबव्यू का उपयोग करके फोनगैप कैसे काम करता है इसके बजाय लॉगिन फ़ील्ड के लिए मूल दृश्य का उपयोग कर रहा है।हो सकता है कि जब पृष्ठ खुलता है तो शरीर की ऊंचाई को 100% तक बदलना या ऊपरी भाग में लॉगिन/पासवर्ड डालना। –

+0

@ GeekNum88 निश्चित रूप से। सोल्शो वेबव्यू का उपयोग करके इसका समाधान ढूंढ रहा है। – Zulakis

+0

@ जुलाकिस - बेवकूफ प्रवेश कुंजी - मैं टाइपिंग समाप्त नहीं हुआ था ... sigh –

उत्तर

3

मैं अभी तक इस परीक्षण नहीं किया है, लेकिन e.preventDefault करता है() मुद्दा रोक? आम तौर पर आप डिफ़ॉल्ट स्क्रॉलिंग/ड्रैगिंग व्यवहार को रोकने के लिए e.preventDefault() का उपयोग करते हैं।

$(document).bind('focus', function(e){ 
    e.preventDefault(); 
}); 

या बेहतर

$(element).bind('focus', function(e){ 
    e.preventDefault(); 
}); 

या

$(document).bind('touchstart', function(e){ 
    e.preventDefault(); 
}); 

एक इनपुट क्षेत्र का काम बेहतर चाहेंगे?

$(":input").live({ 
    focus: function(e) { 
    e.preventDefault(); 
    } 
}); 
+0

में स्क्रॉल इवेंट ट्रिगर के संबंध में कोई वृद्धि नहीं पहला और दूसरा समाधान मेरी समस्या के बारे में कुछ भी नहीं करता है। तीसरा समाधान उपयोगकर्ता को फोकस करने से रोकता है ... चौथा समाधान कुंजीपटल को लॉग इन फ़ील्ड पर कॉल करने वाले फोकस() पर स्लाइड करने से रोकता है (लेकिन फ़ील्ड को छूते समय कीबोर्ड स्लाइड करता है, और समस्या वही रहती है) ... – soleshoe

+0

यह jquery के बिना किया जा सकता है? –

1

मैं अंत में किसी भी कोडिंग समाधान मेरी समस्या को संभालने के लिए खोजने में सफल नहीं हुआ है, लेकिन मैं देखा है कि एक चिरूरजिकल स्थिति जब खेतों के बीच स्विच करने के लिए मुझे स्क्रीन फ्रीज़ की अनुमति दी।

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

यह कुंजीपटल "क्षेत्रों नेविगेशन पट्टी" को हटाने के द्वारा अतिरिक्त ऊर्ध्वाधर अंतरिक्ष पाने के लिए संभव होना चाहिए, लेकिन मैं कैसे है कि न तो ऐसा करने के लिए पता नहीं है:/

enter image description here

+0

इस समाधान पर एक नज़र डालें: http://stackoverflow.com/a/39584526/1043231 – Dominik

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