2012-07-06 16 views
24

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

यह किसी भी कॉन्फ़िगरेशन के लिए एंड्रॉइड एसडीके एमुलेटर पर नहीं होता है (2.2, 2.3, 2.3 x86, 4.0.4)। यह सैमसंग फोन पर किसी ऐप में वेबव्यू का उपयोग करते समय भी नहीं होता है: उन मामलों में स्थिति निर्धारण अपेक्षा के अनुसार काम करता है।

क्या सैमसंग एंड्रॉइड "स्टॉक" ब्राउज़र को वास्तविक निश्चित स्थिति का उपयोग करने का कोई तरीका है?

मैं परीक्षण किया है: 1. सैमसंग गैलेक्सी 551, Android 2.2 2. सैमसंग गैलेक्सी एस, Android 2.3 3. Samsung Galaxy S II, Android 2.3

नमूना कोड:

<html> 
    <head> 
    <meta name="viewport" content="initial-scale=1.0,maximum-scale=1.0,user-scalable=no,width=device-width,height=device-height"> 
    <style> 
    h1 { position: fixed; top: 0; left: 0; height: 32px; background-color: #CDCDCD; color: black; font-size: 32px; line-height: 32px; padding: 2px; width: 100%; margin: 0;} 
    p { margin-top: 36px; } 
    </style> 
    </head> 
    <body> 
    <h1>Header</h1> 
    <p>Long text goes here</p> 
    </body> 
</html> 

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

संपादित करें टिप्पणियों और "उत्तर" के आधार पर ऐसा लगता है कि शायद मुझे जो चाहिए वह स्पष्ट नहीं था। मैं एक मेटा टैग या सीएसएस नियम/हैक या जावास्क्रिप्ट टॉगल की तलाश में हूं जो सैमसंग की टूटी हुई फिक्स्ड-पोजिशनिंग को बंद कर देता है और एंड्रॉइड ब्राउज़र के कामकाजी फिक्स्ड-पोजीशनिंग को चालू करता है। मैं जावास्क्रिप्ट समाधान की तलाश नहीं कर रहा हूं जो किसी ब्राउज़र को टूटी हुई फिक्स्ड-पोजीशनिंग जोड़ता है जिसका कोई समर्थन नहीं है; सैमसंग फिक्स्ड-पोजीशनिंग पहले से ही करता है, यह सिर्फ बेवकूफ दिखता है।

+0

आप के लिए एक संदर्भ है ", Android ब्राउज़र 2.2 के बाद से, निश्चित स्थिति का समर्थन करता है"? – deefour

+0

@Deefour एसडीके में एंड्रॉइड एमुलेटर इसकी पुष्टि करता है, जैसा कि मैंने अपनी पोस्ट में उल्लेख किया है। –

+0

[caniuse] (http://caniuse.com/css-fixed) कहता है <3.0 में केवल आंशिक समर्थन है, और [संदर्भित आलेख] (http://bradfrostweb.com/blog/mobile/fixed-position/) कहते हैं "स्क्रॉलिंग पूर्ण होने के बाद एंड्रॉइड 2.2 अजीब तरह से स्थिर तत्वों को स्थिति में वापस खींचता है।" बस कुछ ऐसी चीज की तलाश है जो आपके एसडीके में जो दिखाई दे, वह अपेक्षित व्यवहार है, क्योंकि कम से कम गैलेक्सी 551 (2.2 के साथ वाला) के साथ आप उपरोक्त संदर्भित आलेख का सटीक व्यवहार अनुभव कर रहे हैं। – deefour

उत्तर

1

हो सकता है कि आप एक अलग दृष्टिकोण है कि तय स्थिति की आवश्यकता नहीं है ...

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

h1 { 
    height: 20px; 
} 

p { 
    position: absolute; 
    top: 20px; 
    left: 0px; 
    right: 0px; 
    bottom: 0px; 
    overflow-y: auto; 
} 
+2

यह काम कर सकता है। हालांकि, मैंने सुना है कि पूरे दस्तावेज़ की बजाय दस्तावेज़ के भाग को स्क्रॉल करते समय स्क्रॉलिंग प्रदर्शन बहुत धीमा है। वैसे भी, मैं jQuery मोबाइल का उपयोग कर रहा हूं इसलिए मेरे पास दस्तावेज़ संरचना पर अधिक लचीलापन नहीं है। –

1

मुझे लगता है कि एंड्रॉइड 2.2 ब्राउज़र जावास्क्रिप्ट को लागू करने का सबसे अच्छा तरीका है।

आप इस लिंक के माध्यम से अधिक जानकारी प्राप्त कर सकते हैं। यह सभी मोबाइल ब्राउज़रों में निश्चित स्थिति के बारे में है।

http://bradfrostweb.com/blog/mobile/fixed-position/

-2

यह सैमसंग की एंड्रॉयड टूटा ब्राउज़र नहीं है, यह Android 2.2 जो टूटा समर्थन हासिल है है। सामान्य रूप से आपको स्थिति पता हो सकती है: निश्चित था और कुछ मामलों में अभी भी कई मोबाइल उपकरणों/प्रणालियों में काफी टूटा हुआ है।

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

अन्यथा, आप http://cubiq.org/iscroll-4 का उपयोग कर सकते हैं जो इसे अनुकरण करता है।

(संपादित करें: कुछ तथ्य)

  1. http://caniuse.com/#search=position:fixed एंड्रॉयड 2.2 और Android 2.3 के अनुसार स्थिति की आंशिक और पूर्ण समर्थन नहीं है: तय की। (आंशिक समर्थन गाड़ी समर्थन लगता है)
  2. एक Android सिम्युलेटर नहीं है और एक Android स्थानीय ब्राउज़र के समान, के रूप में ज्यादा कभी नहीं होगा के रूप में IETester उदाहरण के लिए आईई देशी (वहाँ मतभेद हैं)
  3. मोटोरोला Atrix 4G के समान नहीं है Android 2.2 लेकिन Android 2,3 (http://www.motorola.com/us/consumers/MOTOROLA-ATRIX%E2%84%A2-4G/72112,en_US,pd.html?selectedTab=tab-2&cgid=mobile-phones#tab)

आप सुझाव दे रहे हैं कि SAMSUNG एक मालिकाना हैक या आधुनिक उस स्थिति Android ब्राउज़र पर तय की अन्यथा काम कर समर्थन टूटता का परिचय नहीं है। 3 उपरोक्त बिंदुओं के बावजूद, यह बेहद असंभव प्रतीत होता है।

जवाब वास्तव में सरल है: आंशिक (गाड़ी) समर्थन नहीं है और अपने एकमात्र समाधान एक जावास्क्रिप्ट पुस्तकालय है कि बदलता है या "फिक्स" छेद का प्रयोग है।

+0

गलत। मैं यह एम्यूलेटर पर और मोटोरोला एट्रिक्स 4 जी पर स्टॉक एंड्रॉइड 2.2 में काम कर रहा हूं। और नेक्सस एस और एंड्रॉइड एमुलेटर पर एंड्रॉइड 2.3 में काम कर रहा है। यह केवल उन फ़ोनों पर विफल रहता है जिनमें सैमसंग संशोधन हैं। –

+0

मैंने कुछ चीजों को सीधे कुछ सामानों पर लाने के लिए कुछ तथ्यों को जोड़ने के लिए अपनी पोस्ट संपादित की। –

+0

आप इनकार कर सकते हैं कि एट्रिक्स 4 जी में 2.3 है, लेकिन मैं इसे अपने हाथ में रख रहा हूं और यह स्पष्ट रूप से 2.2 है। इसके अलावा, एंड्रॉइड एमुलेटर स्टॉक एंड्रॉइड ब्राउज़र चला रहा है। यह किसी प्रकार का सिम्युलेटर नहीं है: यह प्रोसेसर समेत पूरी मशीन का अनुकरण करता है। यह असली हार्डवेयर है। caniuse.com दस्तावेज़ीकरण का एक बड़ा स्रोत है लेकिन वास्तविक एंड्रॉइड कोड असली दस्तावेज है। Google इसे काम करने के रूप में भेजता है, लेकिन प्रत्येक सैमसंग फोन पर (यानी टचविज़ चल रहा है) यह टूटा हुआ है। मुझे नहीं पता कि आप मेरे प्रयोगात्मक परिणामों के साथ बहस क्यों कर रहे हैं। –

0

ब्रैड फ्रॉस्ट के लेख मैथ्यू होलोय ने अपनी टिप्पणी में अनीता फॉली के जवाब के साथ एक समाधान का सुझाव दिया, लेकिन अतिप्रवाह के लिए पॉलीफिल के साथ: ऑटो, जहां समर्थित नहीं है। यहाँ देखें:

http://bradfrostweb.com/blog/mobile/fixed-position/

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