मुखपृष्ठ » कोडिंग » सीएसएस मास्क का उपयोग करके एक स्विच यूआई कैसे बनाएं

    सीएसएस मास्क का उपयोग करके एक स्विच यूआई कैसे बनाएं

    इमेज प्रोसेसिंग में, मास्किंग एक ऐसी तकनीक है जो आपको अनुमति देती है एक छवि छिपाएँ दूसरे के साथ। छवि के एक हिस्से को बनाने के लिए मास्क का उपयोग किया जाता है के माध्यम से देखना. आप सीएसएस का उपयोग करके मास्किंग गुणों की मदद से मास्किंग कर सकते हैं.

    आज की पोस्ट में हम दो PNG चित्र और CSS मास्किंग तकनीकों का उपयोग करके एक नकाबपोश छवि बनाएँगे, और उपयोगकर्ताओं को छवि के दो राज्यों को संभालने की अनुमति देंगे (दिन तथा रात) एक स्विच यूआई की मदद से.

    कुछ ब्राउज़र-संगतता समस्याओं के कारण - हर ब्राउज़र में सभी मास्किंग गुण समर्थित नहीं हैं (जून 2016 तक) - मैं दिखाऊंगा मास्क जोड़ने के लिए दो तकनीकें, वेबकिट-आधारित ब्राउज़र के लिए एक, और फ़ायरफ़ॉक्स के लिए एक। इस तीन-चरण ट्यूटोरियल में दो पहले चरण हर ब्राउज़र के लिए समान हैं, लेकिन तीसरे चरण में अंतर होगा.

    चरण 1. एक मूल स्विच बनाएं

    चूंकि एक सामान्य स्विच में दो राज्य होते हैं केवल एक सक्षम एक समय में, आप एक का उपयोग कर सकते हैं दो का रेडियो बटन समूह स्विच के काम के घटकों को बनाने के लिए। प्रत्येक रेडियो बटन को उनके मूल तत्व के बाएँ और दाएँ छोर पर रखें.

    रेडियो बटन समूह प्रत्येक रेडियो बटन को समान देकर बनाए जाते हैं नाम विशेषता। एक रेडियो बटन समूह में, केवल एक रेडियो बटन एक समय में जाँच की जा सकती है.

    हम निम्नलिखित HTML और CSS से शुरू करते हैं:

    एचटीएमएल

    सीएसएस

    नीचे सीएसएस में, मैंने स्क्रीन पर रेडियो बटन लगाने के लिए निरपेक्ष स्थिति का उपयोग किया, जहां मैं चाहता हूं.

    # राउटरवॉपर चौड़ाई: 450px; ऊंचाई: 90 पीएक्स; गद्दी: 10 पीएक्स; मार्जिन: 100px ऑटो 0 ऑटो; सीमा-त्रिज्या: 55px; बॉक्स-छाया: 0 0 10px 6px #EAEBED; पृष्ठभूमि: #fff;  #innerWrapper ऊंचाई: 100%; बॉर्डर-त्रिज्या: 45px; छिपा हुआ सैलाब; स्थिति: रिश्तेदार;  .radio चौड़ाई: 90px; ऊंचाई: 100%; स्थिति: पूर्ण; मार्जिन: 0; अपारदर्शिता: 0;  #rightRadio सही: 0;  .radio: नहीं (: चेक किया गया) कर्सर: पॉइंटर;  

    मैंने जोड़ा अस्पष्टता: 0 के लिए शासन .रेडियो क्रम में कक्षा रेडियो बटन छिपाएँ. नीचे दिए गए कोड ब्लॉक में अंतिम नियम, कर्सर: सूचक; अनियंत्रित रेडियो बटन के लिए सूचक कर्सर दिखाता है, ताकि उपयोगकर्ताओं को पता चले कि स्विच राज्य को चालू करने के लिए किस बटन पर क्लिक करना है.

    Chrome ब्राउज़र में रेडियो बटन के साथ स्विच UI का स्क्रीनशॉट

    चरण 2. स्विच में खाल जोड़ें

    इस चरण में, हम दो जोड़ेंगे

    हमारी HTML फ़ाइल में रेडियो बटन के नीचे दो खाल के लिए टैग, और हमारे सीएसएस में प्रत्येक त्वचा के लिए एक पृष्ठभूमि छवि.

    मैं "डे" और "नाइट" स्विच के दो राज्यों के रूप में उपयोग कर रहा हूं, जो मिन्ह केली ले द्वारा ड्रिबल शॉट से प्रेरित है।.

    दिन की त्वचा
    रात की त्वचा

    एचटीएमएल

    सीएसएस

    # दिनस्किन पृष्ठभूमि-छवि: url ('day.png');  # नाइटस्किन पृष्ठभूमि-छवि: url ('night.png');  .स्किन चौड़ाई: 100%; ऊंचाई: 100%; सूचक-घटनाएँ: कोई नहीं; स्थिति: निरपेक्ष; मार्जिन: 0; 

    सूचक-घटनाएँ: कोई नहीं; नियम को खाल में जोड़ा जाता है ताकि स्विच पर क्लिक की जाने वाली घटनाएं हो सकें उनके पास से गुजरो, तथा रेडियो बटन तक पहुँचें.

    पॉइंटर-ईवेंट सीएसएस संपत्ति के साथ आप उन परिस्थितियों को सेट कर सकते हैं जिनके तहत एक ग्राफिक तत्व हो सकता है माउस घटनाओं द्वारा लक्षित.

    ऊपर दिए गए कोड के विकल्प के रूप में, दो टैग (स्रोत छवियों के साथ) के अंदर

    टैग भी काम कर सकते हैं। वे होंगे दो स्विच राज्यों के लिए खाल.

    क्रोम में खाल के साथ स्विच का स्क्रीनशॉट

    चरण 3 ए। मास्क जोड़ें (वेबकिट संस्करण)

    क्रोम और अन्य वेबकिट-आधारित ब्राउज़रों के लिए, मैं इसका उपयोग करूंगा मुखौटा छवि सीएसएस संपत्ति, जो - इस पोस्ट के लेखन के रूप में - केवल साथ काम करती है -वेबकिट वेबकिट ब्राउज़र में उपसर्ग। मुखौटा छवि संपत्ति आपको देता है छवि निर्दिष्ट करें इस्तेमाल किया जाएगा के रूप में मुखौटा.

    सामान्य तौर पर, दो प्रकार के मास्किंग होते हैं: चमक तथा अल्फा.

    • में चमकदार मास्किंग, मुखौटा छवि का काला भाग उस छवि को छिपाता है जो मास्किंग है: गहरा हिस्सा मुखौटा छवि में है, और अधिक छिपा है कि भाग है छवि में मुखौटा.
    • में अल्फा मास्किंग, मुखौटा छवि का पारदर्शी भाग उस छवि को छिपाता है जो मास्किंग कर रही है: मुखौटा में जितना अधिक पारदर्शी एक भाग होता है, उतना ही अधिक छिपा हुआ भाग छवि में अंकित होता है.

    Chrome में (संस्करण 51.0.2704.103, Win10 के रूप में), केवल वर्तमान में काम करने के लिए अल्फ़ा लगता है.

    सीएसएस में, अल्फा तथा चमक के मान हैं मुखौटा प्रकार संपत्ति.

    यहाँ सीएसएस है कि एक मुखौटा जोड़ता है वेबकिट ब्राउज़र में छवियों को देखने के लिए:

    सीएसएस

    # नाइटस्किन पृष्ठभूमि-छवि: url ('night.png'); मुखौटा प्रकार: अल्फा; शेष भाग अपारदर्शी के साथ / * पारदर्शी वृत्त ;  / * जब दिन की त्वचा का चयन किया गया * / #leftadio: चेक किया गया ~ # नाइटस्किन मास्क-प्रकार: अल्फा; / * शेष भाग पारदर्शी के साथ अपारदर्शी सर्कल * / -webkit- मुखौटा-छवि: रेडियल-ग्रेडिएंट (सर्कल में 405px 45px, rgba (0,0,0,1) 45px, rgba (0,0,0,0,45px) ; 

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

    रात की त्वचा के लिए, मैंने एक पारदर्शी सर्कल बनाया, और मैंने कंटेनर के शेष भाग को अपारदर्शी बनाया। दिन की त्वचा के लिए, मैंने इसके विपरीत किया: के साथ एक अपारदर्शी चक्र बनाया रेडियल-ढाल () कार्य, और शेष भाग को पारदर्शी बनाया.

    हालाँकि यह अभी तक वेबकिट ब्राउज़र में समर्थित नहीं है, मैंने इसमें जोड़ा है मुखौटा प्रकार सीएसएस को भविष्य के संदर्भ के लिए संपत्ति.

    नाइट स्किन के साथ स्विच का स्क्रीनशॉट चयनित
    चयनित दिवस त्वचा के साथ स्विच का स्क्रीनशॉट

    जैसा कि आप ऊपर देख सकते हैं, सर्कल की सीमा बहुत चिकनी नहीं है। सेवा मेरे खुरदुरे किनारों को छिपाएं, एक जोड़ें

    एक बॉक्स छाया के साथ एक सर्कल (नकाब सर्कल के समान आकार) के आकार में खाल के बाद। छाया सर्कल के नकाब के मोटे किनारों को छिपाएगी.

    एचटीएमएल

    सीएसएस

    #switchBtnOutline चौड़ाई: 90px; ऊंचाई: 100%; बॉर्डर-त्रिज्या: 45px; बॉक्स-छाया: 0 0 2px 2px ग्रे इनसेट, 0 0 10px ग्रे; सूचक-घटनाओं: कोई नहीं; स्थिति: पूर्ण; मार्जिन: 0;  / * प्लेस #switchBtnOutline सही छोर पर जब दिन त्वचा का चयन किया जाता है * / #leftRadio: जाँच ~ ~ स्विचबटनऑनलाइन सही: 0; 
    मुखौटा सर्कल के खुरदुरे किनारों के साथ स्विच का स्क्रीनशॉट छिपा हुआ है

    चरण 3 बी। मास्क जोड़ें (फ़ायरफ़ॉक्स संस्करण)

    मुखौटा छवि CSS संपत्ति वास्तव में एक है लंबी संपत्ति, और यह आशुलिपि संपत्ति का हिस्सा है मुखौटा इससे आप छवि को मास्क के रूप में इस्तेमाल कर सकते हैं। जबकि मुखौटा छवि फ़ायरफ़ॉक्स में अभी तक समर्थित नहीं है, मुखौटा है.

    हालांकि मुखौटा संपत्ति के साथ बनाई गई छवि को स्वीकार करना चाहिए रेडियल-ढाल () सीएसएस फ़ंक्शन एक मूल्य के रूप में, जैसे मुखौटा छवि संपत्ति किया, फ़ायरफ़ॉक्स में अभी तक इसके लिए कोई समर्थन नहीं है.

    इसलिए, के बजाय ए रेडियल-ढाल () छवि, चलो मुखौटा प्रकार के साथ मुखौटा छवि के रूप में एक एसवीजी छवि का उपयोग करें चमक.

         

    एसवीजी छवि ऊपर के संयोजन की तरह दिखती है सफेद आयत और ए काला घेरा. इसे जोड़ें, और एक के साथ एक और एक काली आयत और ए सफेद घेरा HTML के मुखौटे के रूप में हमने वेबकिट संस्करण में उपयोग किया.

    एसवीजी छवि (मुखौटा के लिए सफेद आयत और काला घेरा)

    एचटीएमएल

                 

    के लिए CSS कोड को बदलें (या साथ मिलाएं) #nightSkin हमने निम्नलिखित कोड के साथ वेबकिट संस्करण में उपयोग किया है। और आपने कल लिया.

    अब हमारे पास दो अलग-अलग मुखौटा चित्र (सीएसएस ग्रेडिएंट और एसवीजी), दो अलग-अलग मुखौटा प्रकार (अल्फा और ल्यूमिनेंस) हैं, और दोनों वेबकिट और फ़ायरफ़ॉक्स समर्थन.

    सीएसएस

    # नाइटस्किन पृष्ठभूमि-छवि: url ('night.png'); मास्क-प्रकार: ल्यूमिनेन्स; मुखौटा: यूआरएल (#leftSwitchMask);  #leftRadio: ~ ~ नाइटस्किन मास्क-प्रकार: luminance की जाँच की; मुखौटा: यूआरएल (#rightSwitchMask); 

    डेमो देखें

    • डेमो
    • स्रोत डाउनलोड करें
    © Savtec
    उपयोगी जानकारी और वेब विकास युक्तियाँ। प्रोग्रामिंग, वेब डिज़ाइन, CSS, HTML, JAVASCRIPT। कॉन्फ़िगर करें और WINDOWS पुनर्स्थापित करें। खरोंच से साइटों और अनुप्रयोगों का निर्माण।