1. 程式人生 > >純css3實現的圓形進度條

純css3實現的圓形進度條

<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<style type="text/css">
			.spinner{ /*半透明藍色的圓弧,形成進度條的背景,透明的半圓弧和藍色的半圓弧交替旋轉構成進度條*/
				font-size: 20px;
				width: 1em;
				height: 1em;
				border-radius: 50%;
				box-shadow:inset 0 0 0 .1em rgba(58, 168, 237, .2);
			}
			.spinner i {  /*創造了一個透明矩形的一半*/
				position:absolute;
				width:1em;
				height:1em;
				clip: rect(0, 1em, 1em, .5em);
				animation: spinner-circle-clipper 1s ease-in-out infinite;
			}
			@keyframes spinner-circle-clipper {
				0% {
					transform: rotate(0deg);
				}
				100% {
					transform: rotate(180deg);
				}
			}
			.spinner i:after { /*l藍色的半圓弧*/
				position:absolute;
				clip: rect(0, 1em, 1em, .5em);
				width:1em;
				height:1em;
				content: '';
				animation: spinner-circle 1s ease-in-out infinite;
				border-radius: 50%;
				box-shadow:inset 0 0 0 .1em #3aa8ed;
			}
			@keyframes spinner-circle {
			    0% {
			        transform: rotate(-180deg);
			    }

			    100% {
			        transform: rotate(180deg);
			    }
			}

		</style>
	</head>
	<body>
		<div class="spinner"><i></i></div>
	</body>
</html>

主要由三部分構成,半透明圓弧,透明矩形的一半,藍色半圓弧。透明半圓弧和藍色半圓弧交替旋轉。

這裡需要注意的是css3中的clip,用來實現剪裁。