이전 인턴십 동안 음성 입력을 구현하고 입력 중에 애니메이션과 점핑 공을 포함하려면 Android 측에 H5 페이지를 삽입해야 한다는 요구 사항이 있었습니다. 다양한 자료를 컨설팅하고 실제 수요 시나리오를 바탕으로 최종적으로 그 기능을 구현했습니다. 여기에서 검토하고 기록해 보겠습니다.
첫째, 단일 공의 치는 것을 실현합니다.
분석: 공은 위에서 시작하여 중간에 바닥에 도달하고 마침내 다시 위로 돌아가는 무한 루프이다. CSS3 키프레임과 상대 위치 지정을 결합하여 달성됩니다.
<div 클래스="공"></div>
.공 { 너비: 20px; 높이: 20px; 테두리 반경: 50%; 위치: 상대; animation-name: bounce; // 애니메이션 이름 animation-duration: 1.6s; // 단일 애니메이션 지속 시간 animation-iteration-count: unlimited; // 애니메이션 무한 루프 배경: rgb(244, 7, 7); 색상} //키프레임 애니메이션 @keyframes 튀는 { 0% { top: 0px; //처음에는 맨 위에 있습니다.} 50% { 상단: 100px; // 하단 중간} 100% { top: 0px; // 마지막으로 맨 위로 돌아갑니다.} }
분석: 여러 개의 작은 공이 동시에 치고 상대적인 위치가 달라야 합니다. 둘째, 각 작은 공의 애니메이션에 시간 차이가 있습니다. 두 번째는 작은 공의 색상입니다.
/** 공 = [1,2,3,4,5] 여러 공*/ <div v-for="ball in ball" :key="ball" :class="['ball', `ball${ball}`]"></div>
//공개 스타일 추출.공 { 너비: 20px; 높이: 20px; 테두리 반경: 50%; 위치: 상대; animation-name: bounce; // 애니메이션 이름 animation-duration: 1.6s; // 단일 애니메이션 지속 시간 animation-iteration-count: Infinite; .ball1 { @extend .ball; 왼쪽: 0; 배경: rgb(244, 7, 7); } .ball2 { @extend .ball; animation-delay: 0.25s; // 남은 애니메이션 지연: 30px; 배경: rgb(16, 106, 241); } .ball3 { @extend .ball; animation-delay: 0.5s; // 남은 애니메이션 지연: 60px; 배경: rgb(251, 236, 13); } .ball4 { @extend .ball; animation-delay: 0.75s; // 남은 애니메이션 지연: 90px; 배경: rgb(233, 23, 233); } .ball5 { @extend .ball; animation-delay: 1.0s; // 남은 애니메이션 지연: 120px; 배경: rgb(6, 247, 6); } //키프레임 애니메이션 @keyframes 튀는 { 0% { top: 0px; //처음에는 맨 위에 있습니다.} 50% { 상단: 100px; // 하단 중간} 100% { top: 0px; // 마지막으로 맨 위로 돌아갑니다.} }
데모
분석: 바인딩 이벤트 모니터링, 버튼 길게 누르기 애니메이션이 표시되고 버튼 놓기 애니메이션이 숨겨집니다.
마지막으로, 이를 사용하여 달성된 효과를 확인할 시간입니다.
<el-button id="bounceBallBtn">음성 입력</el-button> <bounce-ball v-if="showBounce" />
/** 데이터 showBounce: false */ 탑재() { let theBounceBtn = document.getElementById("bounceBallBtn"); //모바일 단말기 theBounceBtn.addEventListener("touchstart", this.startBounce, false); theBounceBtn.addEventListener("touchend", this.endBounce, false); // PC 측 theBounceBtn.addEventListener("mousedown", this.startBounce, false); theBounceBtn.addEventListener("mouseup", this.endBounce, false); } /** 애니메이션 표시*/ startBounce(이벤트) { event.preventDefault(); this.showBounce = true; }, /** 애니메이션 숨기기*/ endBounce(이벤트) { event.preventDefault(); this.showBounce = 거짓; },
이것으로 여러 개의 튀는 공(음성 입력 애니메이션)을 구현하는 CSS3 애니메이션에 대한 기사를 마칩니다. CSS3 튀는 공에 대한 자세한 내용은 downcodes.com에서 이전 기사를 검색하거나 아래의 관련 기사를 계속 탐색해 보시기 바랍니다. 앞으로 더 많이 com!