Ich versuche, einen Kreis mit Border-Radius zu zeichnen, und animiere es. Ich kann das tun, aber was ich nicht tun kann, ist Elemente zu überlagern und den Hintergrund der Kreise transparent zu machen, ohne die Maske sichtbar zu machen. Ich bin nicht in der Lage, es über Elemente transparent zu machen, weil die Maske angewendet werden muss, um die linke Hälfte des Kreises zu verbergen, während er sich dreht, um den Zeicheneffekt zu imitieren.CSS ONLY Animieren Zeichnen Kreis mit Rahmen-Radius und transparentem Hintergrund
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/
In meinem Beispiel, ich brauche den blauen Hintergrund transparent zu ändern, ohne den border-radius Sichtbarmachen, bevor es zu drehen beginnt.
Entschuldigen Sie die Farben, diese sind nicht das, womit ich arbeiten werde, aber bieten eine klarere Herangehensweise an das Problem.
Dies ist mein temporäres Produkt, wo ich die Zeichnung entfernen muss, um die Transparenz zu erreichen. http://jsfiddle.net/BuzzSmarter/gmvban4p/
bezogen http://stackoverflow.com/questions/23385924/css-animate-circle-border-filling-with-color –
Danke für den Vorschlag @NikosM. aber die verwandte Frage versucht nicht, meine Frage zu lösen. Ich brauche den inneren Teil des Kreises, um transparent zu sein. Die zugehörige Frage erwähnt die Hintergrundtransparenz nicht. – BuzzSmarter
Nun ich denke, Sie können etw wie die Lösung in dieser Frage verwenden und anderen Inhalt hinzufügen ** innerhalb ** der animierten Kreis (so dass es den Hintergrund der Disc und nur der Umfang ist sichtbar) –