أثناء تدريبي السابق، كان لدي متطلب لتضمين صفحة H5 على جانب Android لتحقيق الإدخال الصوتي وتضمين الرسوم المتحركة وكرات القفز أثناء الإدخال. ومن خلال استشارة مواد مختلفة واستنادًا إلى سيناريوهات الطلب الفعلي، تم تحقيق وظيفتها أخيرًا. دعونا نراجعها ونسجلها هنا.
أولاً، أدرك ضرب كرة واحدة.
التحليل: تبدأ الكرة من الأعلى، وتصل إلى الأسفل في الفترة الوسطى، وتعود أخيراً إلى الأعلى، وهي حلقة لا نهاية لها. يتم تحقيق ذلك من خلال الجمع بين الموضع النسبي والإطارات الرئيسية لـ CSS3.
<div class="ball"></div>
.كرة { العرض: 20 بكسل؛ الارتفاع: 20 بكسل؛ نصف قطر الحدود: 50%؛ الموقف: نسبي؛ اسم الرسوم المتحركة: كذاب؛ // اسم الرسوم المتحركة مدة الرسوم المتحركة: 1.6 ثانية؛ // عدد تكرار الرسوم المتحركة: لا نهائي؛ // خلفية حلقة الرسوم المتحركة: rgb(244, 7, 7); لون} // الرسوم المتحركة للإطار الرئيسي @keyframes bouncing { 0% { أعلى: 0px؛ // في البداية في الأعلى} 50% { أعلى: 100 بكسل؛ // المنتصف في الأسفل} 100% { أعلى: 0px؛ // أخيرًا العودة إلى الأعلى} }
التحليل: تضرب عدة كرات صغيرة في نفس الوقت، ويجب أن يكون الوضع النسبي مختلفًا. ثانيًا، هناك اختلاف زمني في الرسوم المتحركة لكل كرة صغيرة. والثاني هو لون الكرة الصغيرة.
/** الكرات = [1,2,3,4,5] كرات متعددة*/ <div v-for="ball in balls" :key="ball" :class="['ball', `ball${ball}`]"></div>
// استخراج النمط العام. الكرة { العرض: 20 بكسل؛ الارتفاع: 20 بكسل؛ نصف قطر الحدود: 50%؛ الموقف: نسبي؛ اسم الرسوم المتحركة: كذاب؛ // مدة الرسوم المتحركة لمدة الرسوم المتحركة: 1.6 ثانية؛ .كرة 1 { @تمديد .ball; اليسار: 0؛ الخلفية: rgb(244, 7, 7); } .ball2 { @تمديد .ball; تأخير الرسوم المتحركة: 0.25 ثانية؛ // تأخير الرسوم المتحركة اليسار: 30 بكسل؛ الخلفية: رغب (16، 106، 241)؛ } .ball3 { @تمديد .ball; تأخير الرسوم المتحركة: 0.5 ثانية؛ // تأخير الرسوم المتحركة اليسار: 60 بكسل؛ الخلفية: رغب (251، 236، 13)؛ } .ball4 { @تمديد .ball; تأخير الرسوم المتحركة: 0.75 ثانية؛ // تأخير الرسوم المتحركة اليسار: 90 بكسل؛ الخلفية: رغب (233، 23، 233)؛ } .ball5 { @تمديد .ball; تأخير الرسوم المتحركة: 1.0 ثانية؛ // تأخير الرسوم المتحركة اليسار: 120 بكسل؛ الخلفية: rgb(6, 247, 6); } // الرسوم المتحركة للإطار الرئيسي @keyframes bouncing { 0% { أعلى: 0px؛ // في البداية في الأعلى} 50% { أعلى: 100 بكسل؛ // المنتصف في الأسفل} 100% { أعلى: 0px؛ // أخيرًا العودة إلى الأعلى} }
تجريبي
التحليل: مراقبة أحداث الربط، ويتم عرض الرسوم المتحركة للضغط لفترة طويلة على الزر، ويتم إخفاء الرسوم المتحركة لتحرير الزر.
وأخيرًا، حان الوقت لاستخدامه ورؤية التأثير الذي تم تحقيقه.
<el-button id="bouncingBallBtn">الإدخال الصوتي</el-button> <bouncing-ball v-if="showBouncing" />
/** عرض البيانات: خطأ */ شنت () { Let theBouncingBtn = document.getElementById("bouncingBallBtn"); // محطة متنقلة theBouncingBtn.addEventListener("touchstart", this.startBouncing, false); theBouncingBtn.addEventListener("touchend", this.endBouncing, false); // جانب الكمبيوتر الشخصي theBouncingBtn.addEventListener("mousedown", this.startBouncing, false); theBouncingBtn.addEventListener("mouseup", this.endBouncing, false); } /** عرض الرسوم المتحركة*/ بداية الارتداد (الحدث) { Event.preventDefault(); this.showBouncing = true; }, /** إخفاء الرسوم المتحركة*/ نهاية الارتداد (الحدث) { Event.preventDefault(); this.showBouncing = false; },
بهذا نختتم هذه المقالة حول الرسوم المتحركة لـ CSS3 لتنفيذ الكرات المرتدة المتعددة (رسوم متحركة للإدخال الصوتي). لمزيد من المعلومات حول الكرات المرتدة لـ CSS3، يرجى البحث في المقالات السابقة على موقع downcodes.com أو متابعة تصفح المقالات ذات الصلة أدناه. كوم أكثر في المستقبل!