2011-12-13 11 views
6

I'm working on a page turn animation। प्रदर्शन निराशाजनक है। विशेष रूप से यदि आप pages कक्षा लेते हैं और इसे 800px चौड़े (पेस्ट $('.pages').css({width: '960px', height: '600px'}); को अपने कंसोल में) बनाते हैं। मेरे पास लगभग 16 संक्रमण एक बार चलते थे और इसे 9 तक कम कर देते थे, जिनमें से कई बदल जाते हैं! मुझे नहीं पता कि मैं और क्या कर सकता हूं।सीएसएस संक्रमण, एनिमेशन में भयानक प्रदर्शन है, व्यवहार

क्रोम GPU का उपयोग नहीं कर रहा प्रतीत होता है। यह प्रारंभिक पृष्ठ मोड़ पर एफपीएस बढ़ जाता है, लेकिन फिर नियमित अंतराल (about:flags के साथ इस सक्षम) पर नीचे डिप:

Chrome showing FPS dips

सफारी में इसे आजमाएँ और आप बेहतर प्रदर्शन प्राप्त लेकिन देखते हैं कि एनिमेशन समन्वयित नहीं होगा ऊपर, अक्सर एक दूसरे के पीछे अंतराल, और एक अजीब wobblyness है कि एक ही ब्राउज़र में Román Cortés's project also suffered from (मैंने इसे अभी तक Fx में काम नहीं किया है)।

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

उत्तर

3

सेन्चा एनीमेटर के हमारे लॉन्च के लिए यहां a page flip I did है। यह रामन कॉर्ट्स के मूल से भी प्रेरित है, लेकिन जहां तक ​​मुझे याद है, विभिन्न तंत्र का उपयोग करता है। यह सफारी और आईओएस पर सुपर चिकनी है, लेकिन क्रोम डेस्कटॉप पर झटकेदार है। हालांकि अभी तक एंड्रॉइड 4 में इसे चेक नहीं किया है।

+0

अच्छा, मुझे इस तकनीक का अध्ययन करना होगा क्योंकि सफारी इसे बेहतर लग रहा है। हालांकि, मैक पर क्रोम इसे यादृच्छिक रूप से नीचे की परत को काले रंग में बदलने या पिक्सल के यादृच्छिक भाग के साथ प्रस्तुत करता है। –

+0

हां, जाहिर है क्रोम 15 (?) के वेबकिट संस्करण में एक बग है जहां परिवर्तन किए जाने पर अंतर्निहित जेड-ऑर्डर गड़बड़ हो जाते हैं। मैं स्पष्ट जेड-इंडेक्स सेटिंग्स के साथ एक संस्करण से निपटने जा रहा हूं और देख सकता हूं कि यह चीजों को ठीक करता है या नहीं। –

+0

मैंने अभी यह पता लगाया है कि क्या आप '-webkit-transform-style: preserve-3d' जोड़ते हैं, यह उस तरह झिलमिलाहट नहीं करता है। मुझे अभी भी कुछ क्लिपिंग मिलती है जहां इसे नहीं करना चाहिए। –

4

जीपीयू का लाभ उठाने के लिए आपको का उपयोग translate(x,y) के बजाय अपने-वेबकिट-ट्रैनफॉर्म में करना होगा। यह क्रोम को एनीमेशन प्रस्तुत करने के लिए जीपीयू का उपयोग करने के लिए मजबूर करेगा।

सावधान रहें कि कंप्यूटर के पास एक अच्छा वीडियो कार्ड होने पर प्रदर्शन में काफी वृद्धि होगी, यह धीमे हार्डवेयर पर भी गिरावट आएगी।

+0

धन्यवाद, मैंने क्रोम/मैकोज़ पर 3 डी का अनुवाद करने की कोशिश की और जब मेरे पास कुछ जटिल डीओएम संरचनाओं के 12 पृष्ठ थे तो यह बेहद धीमी थी। इससे पहले कि मैं एनिमेटेड कुछ भी हो, पूरा पृष्ठ क्रॉल में धीमा हो गया! तो दुर्भाग्यवश मैं किसी अन्य प्लेटफॉर्म को अपनाने के दौरान इसे एक प्लेटफॉर्म को अपनाने के लिए एक तरीका नहीं समझ सकता। –

2

मैं ओएसएक्स पर क्रोम 17 का उपयोग कर रहा हूं, और यह ठीक लगता है - लगभग 20-30fps पर चलता है, कोई डुबकी या ग्राफिकल समस्या नहीं होती है। मुझे संदेह है कि पुराने क्रोम के निर्माण के साथ यह एक मुद्दा है।

+1

नवीनतम बीटा में वास्तव में भारी प्रदर्शन लाभ है। धन्यवाद। –

2

एनिमेटिंग बॉक्स-छाया और -वेबिट-ग्रेडियंट बहुत महंगा है, यह देखने के लिए अस्थायी रूप से उन्हें हटाने का प्रयास करें कि यह प्रदर्शन में सुधार करता है या नहीं। यदि ऐसा होता है, तो देखें कि आप छवियों के साथ उन्हें बदलने के लिए क्या कर सकते हैं।

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