Tôi đang cố gắng vẽ một vòng tròn có bán kính đường viền và tạo hiệu ứng động. Tôi có thể làm điều này, nhưng những gì tôi không thể làm là các phần tử lớp phủ và đặt nền vòng tròn thành trong suốt, mà không làm ẩn mặt nạ. Tôi không thể làm cho nó trong suốt hơn các yếu tố bởi vì mặt nạ cần phải được áp dụng để ẩn nửa bên trái của vòng tròn khi nó quay để bắt chước hiệu ứng vẽ.CSS CHỈ Animate Vẽ vòng tròn với bán kính đường viền và nền trong suốt
HTML
<div class="background">
<div class="wrapper">
<div class="pie spinner"></div>
<div class="pie filler"></div>
<div class="mask"></div>
</div>
</div>
CSS
.background{
background:green;
z-index: 1000;
}
.wrapper {
width: 250px;
height: 250px;
position: relative;
margin: 40px auto;
background: rgba(0,0,255,1);
}
.wrapper, .wrapper * {
-moz-box-sizing: border-box;
-webkit-box-sizing: border-box;
box-sizing: border-box;
}
.wrapper .pie {
width: 50%;
height: 100%;
transform-origin: 100% 50%;
position: absolute;
background: transparent;
border: 5px solid rgba(0,0,0,0.9);
}
.wrapper .spinner {
border-radius: 100% 0 0 100%/50% 0 0 50%;
z-index: 0;
border-right: none;
-webkit-animation: rota 5s linear infinite;
}
.wrapper:hover .spinner,
.wrapper:hover .filler,
.wrapper:hover .mask {
animation-play-state: running;
}
.wrapper .filler {
border-radius: 0 100% 100% 0/0 50% 50% 0;
left: 50%;
opacity: 0;
-webkit-animation: opa 5s steps(1, end) infinite reverse;
border-left: none;
}
.wrapper .mask {
width: 50%;
height: 100%;
position: absolute;
background: inherit;
opacity: 1;
-webkit-animation: opa 5s steps(1, end) infinite;
}
@-webkit-keyframes rota {
0% {transform: rotate(0deg);border-color:red;}
100% {transform: rotate(360deg);z-index:0;}
}
@-webkit-keyframes opa {
0% {opacity: 1;}
50%, 100% {opacity: 0;}
}
http://jsfiddle.net/BuzzSmarter/gmvban4p/
Trong ví dụ của tôi, tôi cần phải thay đổi nền màu xanh để minh bạch, không khi hiện các border-radius trước khi nó bắt đầu quay.
Xin lỗi màu sắc, đây không phải là những gì tôi sẽ làm việc, nhưng cung cấp cách tiếp cận rõ ràng hơn cho vấn đề.
Đây là sản phẩm tạm thời của tôi, nơi tôi phải xóa bản vẽ để hoàn thành tính minh bạch. http://jsfiddle.net/BuzzSmarter/gmvban4p/
liên quan http://stackoverflow.com/questions/23385924/css-animate-circle-border-filling-with-color –
Cảm ơn @NikosM gợi ý. nhưng câu hỏi liên quan không cố gắng giải quyết câu hỏi của tôi. Tôi cần phần bên trong của vòng tròn để minh bạch. Câu hỏi liên quan không đề cập đến tính trong suốt của nền. – BuzzSmarter
Vâng tôi nghĩ bạn có thể sử dụng sth như giải pháp trong câu hỏi đó và thêm bất kỳ nội dung nào khác ** bên trong ** vòng tròn hoạt hình (để nó bao gồm nền của đĩa và chỉ có chu vi hiển thị) –