2012-01-23 3 views
5

का उपयोग कर डीआईवी पर कार्ड फ्लिप प्रभाव कैसे बनाएं I सरल जावास्क्रिप्ट और सीएसएस और कोई पुस्तकालय या प्लगइन्स का उपयोग करके डीआईवी पर कार्ड फ्लिप प्रभाव (वेबकिट संक्रमण और 3 डी ट्रांसफॉर्म के समान) बनाना चाहते हैं। इसे कैसे प्राप्त किया जा सकता है? चूंकि अधिकांश CSS3 गुण वेबकिट ब्राउज़र के लिए काम करते हैं। और अधिकांश जावास्क्रिप्ट समाधान jquery और इसके प्लगइन जैसे पुस्तकालयों का उपयोग करते हैं। मैं ऐसे समाधान की तलाश में हूं जो किसी पुस्तकालय का उपयोग नहीं करता है बल्कि केवल जावास्क्रिप्ट/सीएसएस का उपयोग करता है और अभी भी क्रॉस ब्राउज़र का काम करता है।जावास्क्रिप्ट

किसी भी मदद की सराहना की जाएगी।

सादर, manishekhawat

+3

क्रॉस ब्राउज़र के लिए एक काफी लंबा ऑर्डर है। –

+4

आप मौजूदा पुस्तकालयों को पुनर्जीवित करना समाप्त कर देंगे। पुस्तकालय का उपयोग करने में समस्या क्या है? –

+0

@ डैनियल, हाँ मैं सहमत हूं। मैं लंबे समय तक ऐसे समाधान की तलाश में था। लेकिन हमेशा वेबकिट ट्रांसफॉर्म या कुछ jquery प्लगइन पर समाप्त होता है। दुर्भाग्य से मैं इस बार इनका उपयोग नहीं कर सकता क्योंकि समाधान क्रॉस ब्राउज़र होना चाहिए। – manishekhawat

उत्तर

2

3 डी CSS3 में बदल वर्तमान में केवल वेबकिट ब्राउज़रों पर काम करते हैं। क्षमा करें - जेएस पॉलीफिल का उपयोग किए बिना अन्य ब्राउज़रों में ऐसा करने का कोई तरीका नहीं है जैसे कि cssSandpaper (http://www.useragentman.com/blog/csssandpaper-a-css3-javascript-library/)।

हालांकि यह अनुशंसित नहीं है, क्योंकि जेएस संस्करण लोड करते समय प्रदर्शन में गंभीर कमी आएगी।

3 डी ट्रांसफॉर्म और कीफ्रेम एनिमेशन अभी भी CSS3 spec की एक (बिल्कुल) ब्रांड नई सुविधा है, और इसलिए इसे सबसे अद्यतित ब्राउज़र (सफारी, क्रोम) में ही अपनाया जाता है। यदि आप एक क्रॉस-ब्राउज़र समाधान चाहते हैं जिसके लिए जावास्क्रिप्ट की आवश्यकता नहीं है तो आपको कुछ वर्षों तक अपने अंगूठे पर बैठना होगा।

2

यह कैसे लागू करने के लिए:

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

<div class="flip-container" ontouchstart="this.classList.toggle('hover');"> 
    <div class="flipper"> 
     <div class="front"> 
      <!-- front content --> 
     </div> 
     <div class="back"> 
      <!-- back content --> 
     </div> 
    </div> 
</div> 

दो सामग्री शीशे, "सामने" कर रहे हैं और:

एचटीएमएल

HTML संरचना दो तरफा प्रभाव को पूरा करने के रूप में आप इसे होने की उम्मीद होती है "वापस", जैसा कि आप उम्मीद करेंगे, लेकिन उनके सीएसएस द्वारा बहुत विशिष्ट भूमिकाओं वाले तत्वों सहित दो तत्व भी शामिल हैं। ऑनटचस्टार्ट टुकड़ा भी ध्यान दें जो पैन को टच स्क्रीन पर स्वैप करने की अनुमति देता है।

सीएसएस

/* entire container, keeps perspective */ 
.flip-container { 
    perspective: 1000; 
} 
    /* flip the pane when hovered */ 
    .flip-container:hover .flipper, .flip-container.hover .flipper { 
     transform: rotateY(180deg); 
    } 

.flip-container, .front, .back { 
    width: 320px; 
    height: 480px; 
} 

/* flip speed goes here */ 
.flipper { 
    transition: 0.6s; 
    transform-style: preserve-3d; 

    position: relative; 
} 

/* hide back of pane during swap */ 
.front, .back { 
    backface-visibility: hidden; 

    position: absolute; 
    top: 0; 
    left: 0; 
} 

/* front pane, placed above back */ 
.front { 
    z-index: 2; 
    /* for firefox 31 */ 
    transform: rotateY(0deg); 
} 

/* back, initially hidden pane */ 
.back { 
    transform: rotateY(180deg); 
} 

यहाँ प्रक्रिया का एक किसी न किसी तरह सिंहावलोकन है:

  • दूरस्थ कंटेनर सेट पूरे एनीमेशन क्षेत्र के नजरिए

  • आंतरिक कंटेनर है वह तत्व जो वास्तव में फ़्लिप करता है, 180 कताई करता है डिग्री जब पैरेंट कंटेनर पर आच्छादित है। यह भी है जहां आप संक्रमण की गति को नियंत्रित करते हैं। रोटेशन को -180deg में बदलने से तत्वों को विपरीत दिशा में स्पिन किया जाता है।

  • सामने और पीछे तत्व बिल्कुल स्थित हैं ताकि वे एक ही स्थिति में "ओवरले" कर सकें; उनकी बैकफ़ेस-दृश्यता छिपी हुई है इसलिए फ़्लिप किए गए तत्वों के पीछे एनीमेशन के दौरान प्रदर्शित नहीं होता है।

  • सामने तत्व वापस तत्व तुलना में एक उच्च z- सूचकांक है तो सामने तत्व पहले कोडित किया जा सकता है लेकिन यह अभी भी शीर्ष

  • पर प्रदर्शित करता है वापस तत्व घुमाने 180 डिग्री है, तो के रूप में के रूप में कार्य पीछे।

वास्तव में यह सब कुछ है! इस सरल संरचना को जगह में रखें और फिर प्रत्येक पक्ष को स्टाइल करें जैसा आप चाहें!

सीएसएस फ्लिप टॉगल

अगर आप चाहते हैं तत्व केवल जावास्क्रिप्ट के माध्यम से आदेश पर फ्लिप, तो एक सरल सीएसएस वर्ग टॉगल चाल करना होगा:

.flip-container:hover .flipper, .flip-container.hover .flipper, .flip-container.flip .flipper 
{ 
    transform: rotateY(180deg); 
} 

फ्लिप वर्ग को जोड़ने कंटेनर तत्व जावास्क्रिप्ट का उपयोग कर कार्ड फ्लिप करेगा - कोई उपयोगकर्ता होवर आवश्यक नहीं है। एक जावास्क्रिप्ट टिप्पणी

document.querySelector("#myCard").classList.toggle("flip") फ्लिप करेगा!

सीएसएस कार्यक्षेत्र फ्लिप

एक ऊर्ध्वाधर फ्लिप प्रदर्शन अक्ष flipping और बदलने मूल धुरी मूल्य जोड़ने के रूप में के रूप में आसान है। फ्लिप के मूल अद्यतन किया जाना चाहिए और कार्ड अन्य तरीके से घुमाया:

.vertical.flip-container { 
    position: relative; 
} 

    .vertical .back { 
     transform: rotateX(180deg); 
    } 

    .vertical.flip-container .flipper { 
     transform-origin: 100% 213.5px; /* half of height */ 
    } 

    .vertical.flip-container:hover .flipper { 
     transform: rotateX(-180deg); 
    } 

आप देख सकते हैं कि एक्स पहुँच इस्तेमाल किया जाता है नहीं वाई

सभी क्रेडिट डेवलपर डेविड वाल्श को जाता है, मैंने अभी सामग्री को पुन: उत्पन्न किया है।

+0

लिंक को मरने की स्थिति में इसे लागू करने के तरीके के बारे में कुछ विवरण जोड़ें। लिंक केवल जवाब अच्छी तरह से किराया नहीं है। – krillgar

+1

@ क्रिलगर मैंने जरूरी काम किया है –

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