2011-12-19 25 views
52

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

कीबोर्ड सेट होने पर कस्टम सेट सीएसएस हैकिंग नियम सक्रिय होने के लिए, एक स्वीकार्य समाधान भी है।

वेबसाइट (एचटीएमएल/जावास्क्रिप्ट/सीएसएस) पर एंड्रॉइड और आईओएस दोनों को लक्षित करता है, यह भी ध्यान रखें कि अंदर का लेआउट है: "तरल पदार्थ"।

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

प्रश्न, जिस पर यह एक अच्छा या बुरा डिजाइन विचार है, बहस योग्य है। हालांकि, मुझे लगता है कि सवाल के लिए अप्रासंगिक है। ऐसे शोषण के लिए टेक्स्ट और जैसे टेक्स्ट (जैसे गेम्स, या इंटरैक्टिव मीडिया) का उपयोग किया जा सकता है।

इसलिए बक्षीस: परियोजना के लिए उत्तर की आवश्यकता नहीं होने के बावजूद मैं काम कर रहा था (एक वैकल्पिक डिजाइन का उपयोग किया गया था)। मुझे अभी भी विश्वास है कि इस सवाल का जवाब देने से फायदा हो सकता है।

डिफ़ॉल्ट व्यवहार

     +--------+ 
         |  | 
+------------+  +-+-hidden-+-+ <- ~50% hidden 
| +--------+ |  | +--------+ | 
| |  | |  | |visible | | 
| |  | | \ | |  | | <- ~50% visible 
| | 100% | | ==> | +--------+ | 
| |  | | / | |virtual | | 
| |  | |  | | keys | | 
| +--------+ |  | +--------+ | 
+------------+  +------------+ 

वांछित व्यवहार

+------------+  +------------+ 
| +--------+ |  | +--------+ | 
| |  | |  | |visible | | <- 100% visible (example styling) 
| |  | | \ | |  | |  Custom Styling 
| | 100% | | ==> | +--------+ | 
| |  | | / | |virtual | | 
| |  | |  | | keys | | 
| +--------+ |  | +--------+ | 
+------------+  +------------+ 
+9

क्यों? जब आप टाइप करने का प्रयास कर रहे हों तो चीजों को गायब होने के लिए यह परेशान है, लेकिन उस आकार को आकार देने से यह वास्तव में पढ़ने के लिए अभी तक मुश्किल या असंभव हो सकता है। (मुझे नहीं पता कि आईओएस क्या करता है, लेकिन मेरे एंड्रॉइड फोन पर अगर आपने इस तरह की सामग्री का आकार बदलना बहुत मुश्किल होगा।) क्या आप इसे पोर्ट्रेट और लैंडस्केप ओरिएंटेशन में करने की योजना बना रहे हैं? वैसे, अच्छी ASCII कला। – nnnnnn

+1

@nnnnnn यह एक द्रव लेआउट नहीं है, इसलिए यह टेक्स्ट फ़ॉन्ट का आकार बदल नहीं पाएगा (वही रहता है) ... बस मैं दोनों अलग-अलग इनपुट बॉक्स (शीर्ष और नीचे) को फिर से स्थिति में रखना चाहता हूं, दोनों को देखने के लिए। अप्रासंगिक केंद्र सामग्री, हालांकि, सबसे अधिक संभावना है, "छुपा" बनाया जाएगा। और यह चित्र और परिदृश्य दोनों के लिए है (हालांकि व्यावहारिक रूप से केवल चित्र ही समझ में आएगा) – PicoCreator

+4

+1 जो nnnnn ने कहा था। आपके उपयोगकर्ता इस व्यवहार की अपेक्षा नहीं करेंगे और इसे समझ नहीं पाएंगे। इसे जिस तरह से छोड़ दें। –

उत्तर

17

मुझे यकीन है कि नहीं हूँ, यह वांछित प्रभाव है ?. इस लिंक

जाँच http://jsfiddle.net/UHdCw/3/

अद्यतन

(1)। डिवाइस ब्राउज़र पर चल रही एक वेबसाइट & मान लीजिए। फिर हम स्क्रीन आकार की जांच करके वर्चुअल कीबोर्ड की उपस्थिति की जांच कर सकते हैं। डिवाइस ब्राउज़र में

चेक - http://jsfiddle.net/UHdCw/8/show/

कोड: - http://jsfiddle.net/UHdCw/8/

(2)। यदि आप HTML5 & फोनगैप के साथ मूल ऐप बना रहे हैं, तो चीज़ें अलग-अलग होंगी। चूंकि कीबार्ड स्थिति की जांच करने के लिए कोई प्रत्यक्ष एपीआई हुक नहीं है, इसलिए हमें फोनगैप में हमारे own plugin लिखना होगा।

एंड्रॉइड में आप देशी कोड [check here] का उपयोग करके कीबोर्ड की शो/छुपा स्थिति देख सकते हैं। और उन कार्यक्रमों को हमारे एचटीएमएल में प्राप्त करने के लिए फोनगैप प्लगइन लिखना है।

[फोनगैप एक उदाहरण है।मुझे लगता है कि देशी चौखटे पर html के सबसे जैसा कि आपने कहा ऊंचाई/स्थिति में कोई बदलाव नहीं आया है जब कीबोर्ड मौजूद है मूल कोड के साथ

हुक करने]

आईओएस अद्यतन फेलिसिटी इस तरह का है। हम एक काम कर सकते हैं, जब इनपुट फोकस हो जाता है तो हम वर्ग को कम कर सकते हैं और तत्व आकार को कम कर सकते हैं। निम्नलिखित लिंक देखें।

http://jsfiddle.net/UHdCw/28/show/

+1

+1 कोशिश करने के लिए +1: यूप, कुंजीपटल सक्रिय होने पर एक कस्टम स्टाइल ... और यह भी एक उदाहरण है कि सामग्री को जटिल बनाने के बिना सामग्री कैसे बदल सकती है, केवल छवि आकार बदलता है: पाठ नहीं ... हालांकि यह सक्रिय मूल कुंजीपटल का पता लगाने के लिए सबसे महत्वपूर्ण बिंदु को याद करता है। ><(कस्टम एक नहीं) – PicoCreator

+0

मेरा अपडेट जांचें। –

+0

डन चिंता करते हैं, यह सिर्फ वेबसाइट और डिवाइस ब्राउज़र ... और नहीं, यह आईओएस पर काम नहीं करता है, क्योंकि ब्राउजर का आकार बदल नहीं जाता है, पूरा हिस्सा ऊपर की ओर स्थानांतरित हो जाता है। हालांकि यह लेआउट परिवर्तनों को रोकता है, यह आकार परिवर्तन पहचान को रोकता है ... जो साफ विचार था = डी मैं ईमानदारी से उम्मीद करता था कि यह काम करेगा, और महसूस किया कि यह समझ में आया। – PicoCreator

9

मैं एक ही समस्या का सामना करना पड़ा, यह मेरे लिए काम करता है: एक इनपुट तत्व focus है जब

<!-- Android Viewport height fix--> 
<script type="text/javascript"> 
var isAndroid = navigator.userAgent.toLowerCase().indexOf("android") > -1; //&& ua.indexOf("mobile"); 
if(isAndroid) { 
    document.write('<meta name="viewport" content="width=device-width,height='+window.innerHeight+', initial-scale=1.0">'); 
} 
</script> 
+0

यह सब ब्राउज़रों पर काम करता है? – NeiL

+7

यह कैसे काम कर सकता है?अगर मुझे समझ में आया, तो दस्तावेज़ लोड होने पर मेटा टैग लिखा जाता है, इसका मतलब यह है कि यदि उपयोगकर्ता ने तत्व को ध्यान केंद्रित किया और पेज लोड के बाद कीबोर्ड खोला - समस्या होनी चाहिए .... – Yuki

4

Have जावास्क्रिप्ट शरीर करने के लिए एक वर्ग लागू होते हैं।

$("input, textarea").focus(function(){ $(document.body).addClass('when-keyboard-showing');  }); 
$("input, textarea").blur(function(){ $(document.body).removeClass('when-keyboard-showing'); }); 

और फिर मोबाइल दृश्य अगर निर्धारित करने के लिए @media प्रश्नों का उपयोग:

@media (max-width:550px) { 
    body.keyboard-up .header { height:0; padding:0; } 
} 

संयोजन आप पेज stylize जब कुंजीपटल, ऊपर है मोबाइल पर करने देगा। धन्यवाद।

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