"إذا أراد العامل أن يؤدي عمله بشكل جيد، فعليه أولاً أن يشحذ أدواته." - كونفوشيوس، "مختارات كونفوشيوس. لو لينجونج"
الصفحة الأمامية > برمجة > عرض الرسوم المتحركة لموضوع الانتقال

عرض الرسوم المتحركة لموضوع الانتقال

تم النشر بتاريخ 2024-11-04
تصفح:145

View transition theme animations

أضف تأثيرًا رائعًا عند الانتقال من الوضع الفاتح إلى الوضع الداكن باستخدام CSS وعرض التحولات

منقول من @jhey على تويتر

[!ملحوظة]
يفترض هذا أن لديك بالفعل إعدادًا لوضع الضوء الداكن مع نوع من الوظائف لتحديث المظهر الخاص بك

  1. أضف ملف CSS
  /* Angled */
  [data-style='angled']::view-transition-old(root) {
    animation: none;
    z-index: -1;
  }

  [data-style='angled']::view-transition-new(root) {
    animation: unclip 1s;
    clip-path: polygon(-100vmax 100%, 100% 100%, 100% -100vmax);
  }

  @keyframes unclip {
    0% {
      clip-path: polygon(100% 100%, 100% 100%, 100% 100%);
    }
  }

  1. تأكد من تعيين سمة data-style = "angled" على العنصر الجذر في رد فعل SPA نستخدم خطاف useEffect
  useEffect(() => {
    // set the data-style attribute
    document.documentElement.dataset.style = "angled";
  }, []);

في SSR يمكن ضبطه مباشرة في علامة html

  1. قم بلف وظيفة تغيير المظهر في documnet.startViewTransition لبدء انتقال العرض
  function transitionColors() {
    if (typeof window !== "undefined") {
      document.startViewTransition(() => {
        const newTheme = theme  === "light" ? "dark" : "light";
        document.documentElement.dataset.theme = newTheme;
        updateTheme(newTheme);
      });
    }
  }

يمكن إضافة المزيد من أنماط الانتقال عن طريق تضمين ملف CSS المقابل وإضافة سمة نمط البيانات الصحيحة

      

مثال للرد

إذا كنت تحب هذا النوع من حيل CSS، ففكر في اتباع jhey

بيان الافراج تم نشر هذه المقالة على: https://dev.to/tigawanna/view-transition-theme-animations-8n1?1 إذا كان هناك أي انتهاك، يرجى الاتصال بـ [email protected] لحذفه
أحدث البرنامج التعليمي أكثر>

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

Copyright© 2022 湘ICP备2022001581号-3