Die Gesamtidee besteht darin, durch Ausschneiden zwei Halbkreise zu erzeugen, um einen statischen Fortschrittsbalken anzuzeigen, und dann durch Drehen und Winkeländerung einen dynamischen Effekt zu erzeugen.
(1) Ein ungewöhnliches Attribut von CSS:
1 |
|
Dieses Attribut gibt ein zugeschnittenes Rechteck an. Die durch top und angegebenen Offsets bottom wird vom oberen Rand des Elementfelds berechnet, und die durch right und left angegebenen Versätze werden vom linken Rand des Elementfelds berechnet ( Was hier beachtet werden muss ist die Berechnungsmethode von unten und rechts). Schauen Sie sich das superklare Bild unten an (Ich habe das Bild direkt von w3cplus verschoben, es ist nicht illegal, ein Wasserzeichen zu haben, oder?):
Es ist zu beachten, dass das clip-Attribut nur funktionieren kann, wenn das Element mit dem Attribut „position:absolute“ oder „position:fixed“ festgelegt ist. Clip funktioniert nicht bei den Einstellungen „position:relative“ und „position:static“.
Bezüglich Clip,
(2) Ein weiteres Attribut von CSS:
1 |
|
Um einen bestimmten Winkel im Uhrzeigersinn drehen.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 |
|
Der Effekt ist wie folgt:
Zu diesem Zeitpunkt ist das Element pie-right vollständig vom Element right abgedeckt.
Dann drehen wir es:
1 2 3 |
|
Der Effekt nach der Drehung ist wie folgt:
Wie Sie sehen können, stellt der rote Teil bei einer Drehung um 30 Grad den gewünschten Fortschritt dar. Dies ist die Farbe des rechten Kreiselements. Die Farbe des rechten Elements im blauen Teil ist der Fortschritt, den wir noch nicht erreicht haben.
Die Implementierung des kreisförmigen Fortschrittsbalkens bedeutet, dass wir links und rechts zwei Halbkreise benötigen, daher muss die HTML-Struktur geändert werden:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 |
|
Die Der Effekt ist ähnlich:
Der Fortschritt ist zu diesem Zeitpunkt 0, drehen wir ihn, drehen wir ihn zuerst um 30 Grad
1 2 3 |
|
So wird es. Es geht so: [Bitte denken Sie immer daran, dass der rote Teil der aktuelle Fortschritt ist. 】
Drehen Sie es dann um 210 Grad, um den Effekt zu sehen [210 Grad bedeutet, dass die rechte Seite vollständig gedreht ist und die linke Seite um 30 Grad gedreht ist ]:
1 2 3 4 5 6 |
|
sieht so aus:
Wenn schließlich der Fortschrittswert dynamisch ansteigt, kann der Fortschritt erreicht werden durch Ändern des Drehwinkels durch js Der Balken hat sich dynamisch verändert.
Jedes Mal, wenn der Fortschrittswert um 1 erhöht wird, erhöht sich der Winkel um 3,6 Grad. Es ist auch zu beachten, dass sich der linke Fortschrittsbalken nicht ändert, wenn er größer als 50 % ist. Der linke Fortschrittsbalken beginnt sich zu ändern.
Wir können eine Funktion schreiben:
1 2 3 4 5 6 7 8 9 |
|
Wenn sich der Fortschrittswert ändert, rufen Sie einfach diese Funktion auf.
Das obige ist der detaillierte Inhalt vonDetaillierte Erläuterung von CSS3+jQuery zur Implementierung eines kreisförmigen Fortschrittsbalkens. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!