الصفحة الرئيسية » الترميز » كيفية إنشاء رمز التبديل واجهة المستخدم باستخدام قناع المغلق

    كيفية إنشاء رمز التبديل واجهة المستخدم باستخدام قناع المغلق

    في معالجة الصور, اخفاء هي تقنية تسمح لك إخفاء صورة مع آخر. يستخدم القناع لعمل جزء من الصورة شفاف. يمكنك إجراء التقنيع باستخدام CSS بمساعدة خصائص التقنيع.

    في منشور اليوم ، سنقوم بإنشاء صورة مقنعة باستخدام صورتي PNG وتقنيات إخفاء CSS ، والسماح للمستخدمين بمعالجة حالتين الصورة (يوم و ليل) مع مساعدة من واجهة المستخدم التبديل.

    نظرًا لبعض مشكلات توافق المتصفح - لن يتم عرض جميع خصائص التقنيع في كل متصفح (اعتبارًا من يونيو 2016) - سأعرض طريقتين لإضافة الأقنعة, واحد للمتصفحات المستندة إلى Webkit وواحد لمتصفح فايرفوكس. تعتبر الخطوتين الأوليين في هذا البرنامج التعليمي المكون من ثلاث خطوات هي نفسها لكل متصفح ، ولكن سيكون هناك اختلاف في الخطوة الثالثة.

    الخطوة 1. إنشاء مفتاح أساسي

    منذ التبديل نموذجي لديه دولتين مع واحد فقط تمكين في وقت واحد ، يمكنك استخدام مجموعة زر الراديو من اثنين لإنشاء مكونات العمل من التبديل. ضع كل زر راديو في الأطراف اليمنى واليسرى للعنصر الرئيسي.

    يتم إنشاء مجموعات أزرار الاختيار عن طريق إعطاء كل زر اختيار نفس الشيء اسم صفة، عزا. في مجموعة زر الراديو, زر راديو واحد فقط يمكن التحقق في وقت واحد.

    نبدأ باستخدام HTML و CSS التاليين:

    HTML

    CSS

    في CSS أدناه ، استخدمت الموضع المطلق لوضع أزرار الاختيار على الشاشة بالضبط حيث أريد.

    #outerWrapper width: 450px؛ الارتفاع: 90 بكسل ؛ الحشو: 10px. الهامش: 100px auto 0 auto ؛ نصف قطر الحدود: 55 بكسل ؛ box-shadow: 0 0 10px 6px #EAEBED؛ الخلفية: #fff؛  #innerWrapper height: 100٪؛ الحدود بين دائرة نصف قطرها: 45px؛ إخفاء الفائض؛ الموقف: النسبية.  .radio width: 90px؛ الطول: 100٪؛ الموقف: مطلقة؛ هامش: 0؛ التعتيم: 0؛  #rightRadio right: 0؛  .radio: not (: check) المؤشر: pointer؛  

    أضفت التعتيم: 0 حكم على .راديو الطبقة من أجل إخفاء أزرار الراديو. القاعدة الأخيرة في كتلة التعليمات البرمجية أدناه, المؤشر: المؤشر ؛ يعرض مؤشر المؤشر لزر الاختيار غير المحدد ، حتى يعرف المستخدمون أي زر للنقر لتبديل حالة التبديل.

    لقطة شاشة للتبديل UI مع أزرار الاختيار في متصفح Chrome

    الخطوة 2. إضافة الجلود إلى التبديل

    في هذه الخطوة ، سنضيف اثنين

    علامات للجلدين أسفل أزرار الاختيار في ملف HTML الخاص بنا ، وصورة خلفية لكل سطح في CSS الخاص بنا.

    أنا أستخدم "Day" و "Night" كحالتين للتبديل ، مستوحاة من لقطة Dibbble التي أطلقها Minh Killy Le.

    يوم الجلد
    بشرة ليلية

    HTML

    CSS

    #daySkin background-image: url ('day.png')؛  #nightSkin background-image: url ('night.png') ؛  .skin width: 100٪؛ الارتفاع: 100 ٪ ؛ أحداث المؤشر: لا شيء ؛ الموقف: مطلق ؛ الهامش: 0 

    ال أحداث المؤشر: لا شيء ؛ تتم إضافة القاعدة إلى الأسطح بحيث يمكن لأحداث النقر على المفتاح التبديل مر بها, و الوصول إلى أزرار الراديو.

    باستخدام خاصية CSS لمؤشرات الأحداث ، يمكنك ضبط الظروف التي يمكن أن يكون عنصر الرسوم في ظلها المستهدفة من أحداث الماوس.

    كبديل للرمز أعلاه ، اثنان العلامات (مع صور المصدر) داخل

    العلامات يمكن أن تعمل أيضا. سيكونون الجلود لحالات التبديل اثنين.

    لقطة شاشة للتبديل مع جلود في الكروم

    الخطوة 3 أ. إضافة قناع (إصدار Webkit)

    بالنسبة إلى Chrome والمتصفحات الأخرى المستندة إلى Webkit ، سأستخدم قناع صورة خاصية CSS ، والتي - حتى كتابة هذا المنشور - تعمل فقط مع -بكت بادئة في متصفحات Webkit. ال قناع صورة الملكية تتيح لك حدد الصورة لاستخدامها كما قناع.

    بشكل عام ، هناك نوعان من التقنيع: الانارة و ألفا.

    • في اخفاء النصوع, يخفي الجزء المظلم من صورة القناع الصورة التي يخفيها: كلما كان الجزء القاتم في صورة القناع, أكثر خفية هذا الجزء هو في الصورة يجري ملثمين.
    • في اخفاء الفا, يخفي الجزء الشفاف من صورة القناع الصورة التي يخفيها: كلما كان الجزء الأكثر شفافية في صورة القناع ، كلما كان الجزء المخفي في الصورة مخفيًا.

    في Chrome (بدءًا من الإصدار 51.0.2704.103 و Win10) ، يبدو أن alpha فقط يعمل حاليًا.

    في CSS, ألفا و الانارة هي قيم قناع من نوع خاصية.

    هنا هو المغلق ذلك يضيف قناع لصور الخلفية في متصفحات Webkit:

    CSS

    #nightSkin background-image: url ('night.png') ؛ قناع من نوع: ألفا. / * دائرة شفافة مع الجزء المتبقي غير شفاف * / -Webkit-mask-image: انحدار شعاعي (دائرة في 45px 45 بكسل ، rgba (0،0،0،0) 45px ، rgba (0،0،0،1) 45px) .  / * عند تحديد بشرة اليوم * / #leftRadio: check ~ # nightSkin mask-type: alpha؛ / * دائرة معتمة مع الجزء المتبقي شفاف * / -Webkit-mask-image: انحدار شعاعي (دائرة في 405 بكسل × 45 بكسل ، rgba (0،0،0،1) 45 بكسل ، rgba (0،0،0،0) 45 بكسل) . 

    لقد استخدمت -بكت قناع صورة خاصية لإنشاء صورة قناع الأولي. قيمتها تستخدم شعاعي التدرج() وظيفة CSS المستخدمة لإنشاء صورة من شكل محدد مسبقًا ، وتدرج شعاعي ، ومركز التدرج اللوني.

    بالنسبة للجلد الليلي ، قمت بإنشاء دائرة شفافة ، وجعلت الجزء المتبقي من حاوية معتمة. لجلد اليوم ، فعلت العكس: خلقت دائرة معتمة مع شعاعي التدرج() وظيفة ، وجعل الجزء المتبقي شفافة.

    على الرغم من أنها غير مدعومة في متصفحات Webkit ، إلا أنني أضفتها قناع من نوع الخاصية إلى CSS للرجوع إليها في المستقبل.

    لقطة شاشة للتبديل مع تحديد لون البشرة ليلا
    لقطة شاشة للتبديل مع تحديد بشرة اليوم

    كما ترون أعلاه ، فإن حدود الدائرة ليست سلسة للغاية. إلى إخفاء الحواف الخشنة, أضف

    بعد الجلود في شكل دائرة (بنفس حجم دائرة القناع) بظل مربع. سيخفي الظل الحواف القاسية لقناع الدائرة.

    HTML

    CSS

    #switchBtnOutline width: 90px؛ الطول: 100٪؛ الحدود بين دائرة نصف قطرها: 45px؛ صندوق الظل: 0 0 2px 2px رمادي أقحم ، 0 0 10px رمادي ؛ مؤشر-الأحداث: لا شيء؛ الموقف: مطلقة؛ هامش: 0؛  / * ضع #switchBtnOutline في الطرف الأيمن عند تحديد بشرة اليوم * / #leftRadio: check ~ # switchBtnOutline right: 0؛ 
    لقطة شاشة للتبديل مع حواف دائرة الدائرة القناع مخفية

    الخطوة 3 ب. إضافة قناع (إصدار Firefox)

    ال قناع صورة خاصية CSS هي في الواقع الملكية منذ فترة طويلة, وهو جزء من خاصية الاختزال قناع يتيح لك تحديد الصورة التي سيتم استخدامها كقناع أيضًا. في حين قناع صورة غير معتمد في Firefox حتى الآن, قناع هو.

    على الرغم من أن قناع يجب أن تقبل الخاصية صورة تم إنشاؤها باستخدام شعاعي التدرج() تعمل CSS كقيمة ، تمامًا مثل قناع صورة فعلت الملكية ، ليس هناك دعم لذلك في فايرفوكس حتى الآن.

    لذلك ، بدلا من أ شعاعي التدرج() دعونا نستخدم صورة SVG كصورة قناع بنوع القناع الانارة.

         

    صورة SVG أعلاه تبدو وكأنها مزيج من مستطيل أبيض و دائرة سوداء. أضف هذا ، وآخر مع أ مستطيل أسود و دائرة بيضاء كأقنعة لـ HTML استخدمناها في إصدار Webkit.

    صورة SVG (مستطيل أبيض ودائرة سوداء للقناع)

    HTML

                 

    استبدل (أو ادمج مع) كود CSS الخاص بـ #nightSkin استخدمنا في إصدار Webkit مع التعليمات البرمجية التالية. وانت انتهيت.

    لدينا الآن صورتان مختلفتان للقناع (تدرج CSS و SVG) ، ونوعان مختلفان من القناع (Alpha & Luminance) ، ويدعم كل من Webkit و Firefox.

    CSS

    #nightSkin background-image: url ('night.png') ؛ قناع نوع: الإنارة. قناع: رابط (#leftSwitchMask)؛  #leftRadio: محددًا ~ # nightSkin mask-type: luminance؛ قناع: رابط (#rightSwitchMask)؛ 

    تحقق من التجريبي

    • عرض
    • تحميل المصدر
    © Savtec
    معلومات مفيدة ونصائح تطوير الشبكة. البرمجة ، تصميم المواقع ، CSS ، HTML ، JAVASCRIPT. تكوين وإعادة تثبيت WINDOWS. إنشاء المواقع والتطبيقات من الصفر.