CSS에서 원형 진행률 표시줄을 구현하는 방법: 먼저 정사각형을 그린 다음 정사각형에 동일한 크기의 두 개의 직사각형을 그립니다. 마지막으로 CSS3의 "transform:rotate" 속성을 사용하여 중첩된 링을 실제 백분율로 변환합니다. 실제 비율 회전 각도가 충분합니다.
추천: "css 비디오 튜토리얼"
진행률 표시줄의 효과는 다음과 같습니다:
전체 원의 효과 처리가 더 간단해지고 불완전 루프의 구현이 더 자세히 설명됩니다. 구현 로직 및 프로세스는 다음과 같습니다.
진행 표시줄 구성:
링: 진행 표시줄의 두 가지 색상이 잔액이 50% 미만일 때 진행 표시줄의 색상이 녹색에서 노란색으로 변경됩니다. 진행률 표시줄 구조는 두 개의 중첩된 링으로 구성됩니다. 위쪽에 중첩된 링은 남은 양(어두운 색상)을 표시하고, 아래쪽에 중첩된 링은 총량의 100%(밝은 색상)를 표시합니다.
스타일 구현:
1: 그림의 음영 부분에 표시된 대로 정사각형을 그립니다.
2: 정사각형을 균등하게 나누는 동일한 크기의 두 개의 직사각형을 그립니다. (각 직사각형은 설정되어야 합니다. 오버플로) : 숨김) 그림의 음영 부분에 표시된 대로:
3: 진행률 표시줄은 두 개의 겹쳐진 링으로 구성되어 있으므로 첫 번째 단계에서 동일한 크기의 직사각형 4개를 정사각형에 그려야 서로 다른 내용을 표시할 수 있습니다. 반지의 일부.
4: 링을 표시하려면 각 직사각형에 동일한 크기의 정사각형을 그립니다. 왼쪽 절반 직사각형의 링은 위쪽 테두리만 설정하고 오른쪽 절반 직사각형의 링은 테두리만 설정합니다. 그림의 그림자로 표시된 테두리:
5: 진행률 표시줄의 동적 백분율 진행을 실현하려면 CSS3의 변환:회전을 사용하여 위쪽 겹쳐진 링을 실제 회전으로 변환합니다. 각도는 실제 백분율을 기준으로 합니다.
남은 양이 50%보다 큰 경우 왼쪽의 중첩된 환형 회전 각도를 변경할 필요가 없으며 오른쪽의 중첩된 환형 회전 각도만 계산하면 됩니다.
남은 양이 50% 미만일 때 링 회전이 왼쪽에 겹쳐지면 왼쪽 절반 링이 완전한 하프 링으로 표시됩니다. 이때 링 부분을 덮기 위해 왼쪽 절반 링이 필요합니다. 진행 범위를 초과하는 왼쪽 사이드 링;
html 코드는 다음과 같습니다:
<p class="progress_wrap js_halfClassNameObj"> <p class="right under"> <p class="circleProgress rightcircle"></p> </p> <p class="left under"> <p class="circleProgress leftcircle"></p> </p> <p class="right up"> <p class="circleProgress rightcircle js_progressRight" style="-webkit-transform:rotate('+circleData.rightRotate.toString()+'deg)"></p> </p> <p class="left up"> <p class="circleProgress leftcircle js_progressLeft" style="-webkit-transform:rotate('+circleData.leftRotate.toString()+'deg)"></p> </p> //percent小于50时需要使用遮罩进行遮挡超出环形范围部分 <p class="left up_left_cover js_giftLeftCover" style="display:'+circleData.leftCircleDisplay+'"> <p class="circleProgress leftcircle color_border_t_l04"></p> </p> <p class="num"> <p>剩余</p> <p class="js_giftPercent">'+circleData.percent+'%</p> </p> </p>
css 코드:
.progress_wrap{ position: relative; margin:0 0 0 .14rem; width:.92rem;height:.92rem; //little和more用来展示黄色和绿色的效果 &.little{ .under{ .rightcircle,.leftcircle{ border-top:$progress_border_under_little; } .rightcircle{ border-right:$progress_border_under_little; } .leftcircle{ border-left:$progress_border_under_little; } } .up{ .rightcircle,.leftcircle{ border-top:$progress_border_up_little; } .rightcircle{ border-right:$progress_border_up_little; } .leftcircle{ border-left:$progress_border_up_little; } } //用遮挡实现左侧剩余百分比,遮住超出环形范围部分;核心是使用同心圆进行边框进行遮挡 .up_left_cover{ width:.47rem;height:.92rem; .leftcircle{ top:-.02rem; width:.74rem;height:.74rem; border:.11rem solid transparent; border-top:$progress_border_up_left_cover_little; border-left:$progress_border_up_left_cover_little; //实际值为195deg,被遮挡环颜色值深有光晕,需要将角度进行微调(-191deg)进行完全遮挡 -webkit-transform:rotate(-191deg); } } } &.more{ .under{ .rightcircle,.leftcircle{ border-top:$progress_border_under; } .rightcircle{ border-right:$progress_border_under; } .leftcircle{ border-left:$progress_border_under; } } .up{ .rightcircle,.leftcircle{ border-top:$progress_border_up; } .rightcircle{ border-right:$progress_border_up; } .leftcircle{ border-left:$progress_border_up; } } } .right,.left{ position: absolute;top:0;overflow:hidden; width:.46rem;height:.92rem; .circleProgress{ position: absolute; top:0; width: .78rem; height: .78rem; border:.07rem solid transparent; border-radius: 50%; } .rightcircle{ right:0; -webkit-transform: rotate(15deg); } .leftcircle{ left:0; -webkit-transform: rotate(-15deg); } } .right{ right:0; } .left{ left:0; } .num{ position: absolute;left:50%;top:50%; width:.5rem; transform:translate(-50%,-50%); font-size:.12rem;color:$public_auxiliary_col;text-align:center;line-height:.26rem; } }
링 회전 각도 변환 다양한 요구에 따라 미세 조정이 필요합니다.
좋은 제안이 있으면 자유롭게 공유해 주세요.
위 내용은 CSS에서 순환 진행률 표시줄을 구현하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

React Ecosystem은 모두 드래그 앤 드롭의 상호 작용에 중점을 둔 많은 라이브러리를 제공합니다. 우리는 React-dnd, React-beautiful-dnd를 가지고 있습니다.

나는 자주 배경 클립을 사용한다고 말할 수 없습니다. I ' D WART IT IT는 일상적인 CSS 작업에서 거의 사용되지 않았습니다. 그러나 나는 Stefan Judis의 게시물에서 그것을 상기시켰다.

requestAnimationFrame을 사용하여 애니메이션은 쉬워야하지만 React의 문서를 철저히 읽지 않으면 몇 가지 문제가 발생할 수 있습니다.

아마도이를 사용자에게 제공하는 가장 쉬운 방법은 요소의 ID를 대상으로하는 링크 일 것입니다. 그래서 ...처럼 ...

들어보세요, 나는 GraphQL 전문가가 아니지만 함께 일하는 것을 좋아합니다. 프론트 엔드 개발자로서 데이터를 노출시키는 방법은 꽤 멋지다. 메뉴와 같습니다

이번 주에 타이포그래피를 검사하기위한 편리한 북마크 인 Roundup, JavaScript 모듈과 Facebook의 Facebook 등을 어떻게 가져 오는지 땜질하기 위해 대기하는 편리한 북마크 인 Roundup과 Facebook의


핫 AI 도구

Undresser.AI Undress
사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover
사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool
무료로 이미지를 벗다

Clothoff.io
AI 옷 제거제

AI Hentai Generator
AI Hentai를 무료로 생성하십시오.

인기 기사

뜨거운 도구

안전한 시험 브라우저
안전한 시험 브라우저는 온라인 시험을 안전하게 치르기 위한 보안 브라우저 환경입니다. 이 소프트웨어는 모든 컴퓨터를 안전한 워크스테이션으로 바꿔줍니다. 이는 모든 유틸리티에 대한 액세스를 제어하고 학생들이 승인되지 않은 리소스를 사용하는 것을 방지합니다.

스튜디오 13.0.1 보내기
강력한 PHP 통합 개발 환경

맨티스BT
Mantis는 제품 결함 추적을 돕기 위해 설계된 배포하기 쉬운 웹 기반 결함 추적 도구입니다. PHP, MySQL 및 웹 서버가 필요합니다. 데모 및 호스팅 서비스를 확인해 보세요.

VSCode Windows 64비트 다운로드
Microsoft에서 출시한 강력한 무료 IDE 편집기

WebStorm Mac 버전
유용한 JavaScript 개발 도구
