0. 정적 렌더링
1. 호 그리기를 위한 코드
width: 3em; height: 3em; border: 7px transparent solid; border-left: 7px #4DB6AC solid; border-radius: 50%;
* 여기 또 다른 방법이 있습니다
border-left:7px #4DB6AC solid; border-radius: 50%; border-top:7px transparent solid; border-bottom:7px transparent solid;
후자는 회전으로 되어있습니다 애니메이션 효과는 예전만큼 좋지 않고, 육안으로 차이를 느낄 수 있습니다. chrome49.
2. 부채 모양을 그리는 코드
border: 7px transparent solid; border-left: 7px #4DB6AC solid; border-radius: 50%;
* 부채 모양을 그릴 때 너비와 길이는 호를 그리는 것과 같습니다
3.less는 호와 섹터를 그리는 코드를 캡슐화합니다
.arc(@direction,@style){ @color:~`"@{style}".split(/,\s+/)[1]`; @width:~`"@{style}".split(/,\s+/)[0].replace("[","")`; @shape:~`"@{style}".split(/,\s+/)[2].replace("]","")`; border: @width transparent @shape; @length:length(@direction); .setStyle(@length,@style,@direction); border-radius: 50%; .setStyle(@length,@style,@direction) when (@length>0){ @index:@length - 1; @pos:extract(@direction,@length); border-@{pos}:@style ; .setStyle(@index,@style,@direction); } } //使用方式: @driection 可以是top、left、right、bottom中的一个或多个 @style 需要严格按照 7px solid red 这样的顺序 .arc(left,7px solid red); .arc(left top,7px solid red);
4. 애니메이션 전체 코드 불러오기
<!DOCTYPE html><html lang="en"><head><meta charset="UTF-8"><title>Document</title><style> html,body { overflow: hidden; width: 100%; height: 100%;}.container { display: -webkit-box; display: -ms-flexbox; display: flex; -ms-flex-wrap: wrap; flex-wrap: wrap; -webkit-box-pack: space-around; -ms-flex-pack: space-around; justify-content: space-around; margin: 0 auto; max-width: 650px; min-width: 200px;}.container .canvas { -webkit-box-align: center; -ms-flex-align: center; align-items: center; display: -webkit-box; display: -ms-flexbox; display: flex; -webkit-box-pack: center; -ms-flex-pack: center; justify-content: center; background: #eee; border-radius: 50%; -webkit-box-shadow: 0 5px 20px rgba(0, 0, 0, 0.2); box-shadow: 0 5px 20px rgba(0, 0, 0, 0.2); height: 10em; width: 10em; margin: 1em 1em 2em 1em;}.container .canvas .spinner4 { width: 3em; height: 3em; border: 7px transparent solid; border-left: 7px #4DB6AC solid; border-radius: 50%; -webkit-animation: spinner4 1s linear infinite; animation: spinner4 1s linear infinite;}@-webkit-keyframes spinner4 { 100% { -webkit-transform: rotate(360deg);-ms-transform: rotate(360deg);-o-transform: rotate(360deg);transform: rotate(360deg); }} @keyframes spinner4 { 100% { -webkit-transform: rotate(360deg);-ms-transform: rotate(360deg);-o-transform: rotate(360deg);transform: rotate(360deg); }} .container .canvas .spinner5 { border: 1.5em transparent solid; border-right: 1.5em #4DB6AC solid; border-left: 1.5em #4DB6AC solid; border-radius: 50%; -webkit-animation: spinner5 1s linear infinite; animation: spinner5 1s linear infinite;}@-webkit-keyframes spinner5 { 0% { transform: rotate(0deg); } 50% {transform: rotate(60deg); } 100% {transform: rotate(360deg); }} @keyframes spinner5 { 0% { transform: rotate(0deg); } 50% {transform: rotate(60deg); } 100% {transform: rotate(360deg); }} .container .canvas .spinner6 { width: 1em; height: 1em; border-radius: 50%; background-color: #4db6ac; margin: 0.1em; -webkit-animation: fall 1s linear infinite; animation: fall 1s linear infinite;} </style></head><body><div class="container"><div class="canvas"><div class="spinner4"></div></div><div class="canvas"><div class="spinner5"></div></div></div></body></html>
케이스 코드는 인터넷에서 본 코드인데 직접 따라해봤는데 예전만큼은 아니네요. 효과와 방법면에서요.
원리를 알게 되어 기쁘지만, 세부적인 부분은 아직 연습이 필요합니다.위 내용은 호 및 섹터 로딩 애니메이션을 작성하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!