2012-06-14 7 views
5

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

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

मैं अन्य मोबाइल ब्राउज़र के बारे में चिंतित नहीं हूं क्योंकि मोबाइल स्क्रीन आकारों के लिए आमतौर पर लंबन दृश्य नहीं दिखता है; मीडियाक्विरी और सशर्त जावास्क्रिप्ट लोडिंग इसका ख्याल रखती है। उत्तरदायी डिजाइन और वह जैज़।

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

एंड्रॉइड ब्राउज़र पर, यह ईवेंट केवल को अगले स्पर्श की शुरुआत में लगातार जारी करता है।

ठीक है, इसलिए मैंने सोचा कि शायद अगर मैं touchstart, touchmove, और touchend ईवेंट पर फ़ंक्शन को बाध्य करता हूं तो मैं अपनी समस्या का समाधान करूंगा। कोई सिगार नहीं। Other touch events are also bugged. सुझाए गए कामकाज को लागू करने से घटनाएं आग लगती हैं, लेकिन जैसा कि मुझे e.preventDefault() है, स्क्रॉलिंग (अभ्यास का पूरा बिंदु) अक्षम है।

क्या होगा यदि मैं खिड़की div के सापेक्ष मंच div की स्थिति को सिर्फ मतदान करता हूं? यह पता चला है कि स्थिति की जानकारी केवल को अगले स्पर्श की शुरुआत में अपडेट की गई है।

मैं अपने टेदर के अंत में हूं। कोई भी सहायताकाफी प्रशंसनीय होगी।

+0

ठीक है, मैं एक अलग साइट के लिए परीक्षण डोमेन का उपयोग करना। अगर कोई इस मुद्दे से बाहर निकलना चाहता है, तो कृपया एक टिप्पणी छोड़ दें और मैं इसे फिर से रखूंगा। साइट [smartdevice.co.za] (http://smartdevice.co.za) पर भी लाइव है लेकिन व्यूपोर्ट '960px' पर सेट नहीं है। हमने क्लाइंट को बहुत कुछ बताया है कि यह एक ब्राउज़र मुद्दा है जिसका हमारा कोई नियंत्रण नहीं है, और इस मुद्दे का प्रभाव केवल डिफ़ॉल्ट ब्राउज़र चलाने वाले एंड्रॉइड टैबलेट तक ही सीमित है। हालांकि, यदि आप समाधान जानते हैं, तो कृपया एक टिप्पणी छोड़ दें, कृपया एक टिप्पणी छोड़ दें। –

+0

क्या आपने कभी इस मुद्दे को हल किया है? – IamDeveloper

+0

दुर्भाग्य से नहीं। :(समस्या ब्राउज़र के साथ है। कुछ कोड जो हर टच इवेंट द्वारा बहुत अधिक उपयोग किए जाते हैं, अपेक्षित व्यवहार नहीं कर रहे हैं, इसलिए मेरे लिए वर्कअराउंड बनाना असंभव है, क्योंकि वे सभी किसी बिंदु पर टच इवेंट पर निर्भर होंगे। बीटीडब्ल्यू ने पहले की टिप्पणी में उल्लिखित साइट में अब अपना कोड नहीं रखा है, क्योंकि हमने क्लाइंट को निकाल दिया है। साइट की एक प्रति http://xandor.co.za/smartdevice पर है। –

उत्तर

1

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

आईओएस और एंड्रॉइड स्क्रॉलिंग के प्रदर्शन में सुधार करने के लिए बलिदान करते हैं। दोनों प्लेटफार्मों पर, स्क्रॉल पूरा होने तक सटीक स्क्रॉल स्थिति प्राप्त करना संभव नहीं है। स्क्रॉल इवेंट (<body> पर) गति एनीमेशन समाप्त होने तक आग नहीं आता है। इसलिए जब आपका मूल प्रश्न एक बहती हुई <div> पर स्क्रॉल ईवेंट के बारे में है, तो यह तय करना आपके लिए पूरी तरह से सहायक नहीं हो सकता है।

यदि आप स्क्रॉल के साथ समय में अपडेट करने के लिए एनीमेशन चाहते हैं, तो आपको ब्राउज़र के मूल स्क्रॉल का उपयोग करने के बजाय प्रोग्राम को स्क्रॉल करने की आवश्यकता है। ऐसा करने के लिए सबसे अच्छी लाइब्रेरी iScroll है। this demo में देखा गया है कि आप लंबवत प्रभावों को बहुत आसानी से प्राप्त कर सकते हैं।

यदि आपको अधिक जटिल प्रभाव (चलने वाले चरित्र, आपके उदाहरण में) की आवश्यकता है, तो आप iScroll के "जांच" संस्करण का चयन कर सकते हैं जो कम प्रदर्शन के लिए स्क्रॉल स्थिति के पिक्सेल-परिपूर्ण मतदान की अनुमति देता है।

हालांकि, वहाँ iScroll का उपयोग कर के लिए कई कमियां हैं:

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

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