CSS3-Methode zum Implementieren des Ring-Fortschrittsbalkens
Als ich anfing, diesen Ring zu schreiben, habe ich mich auf den im Beitrag angegebenen CSS-Code bezogen und ihn entsprechend meinen eigenen Bedürfnissen ersetzt. Ich stellte fest, dass sich der Ring perfekt drehen ließ, aber es schien, dass ich ihn damit nicht steuern konnte Prozentsatz, also habe ich aufgegeben und es beiläufig kopiert. Eine fertige Idee, es ist immer noch notwendig, Ihr Gehirn zu benutzen.
Implementierungsprinzip
Es gibt viele Möglichkeiten, Kreise in CSS zu implementieren. Ich denke, die meisten davon werden durch die Verwendung von Rahmen (border) + Clipping (clip:rect()) implementiert, also bin ich es auch vorbereitet Nehmen Sie diesen Ansatz.
Es ist hauptsächlich ein Layoutproblem. Ich denke, dass die meisten Kreisfortschrittsbalken ähnlich sind, aber die Layout- und Rotationsmethoden sind unterschiedlich.
// html <p id="loading" class="loading"> <p class="circle"> <p class="percent left"></p> <p class="percent right wth0"></p> </p> <p class="per"></p> </p> // css .loading { position: fixed; top: 50%; left: 50%; overflow: hidden; z-index: 9999; -webkit-transform: translate(-50%,-50%); transform: translate(-50%,-50%); } .circle{ -webkit-box-sizing: border-box; -moz-box-sizing: border-box; box-sizing: border-box; border:10px solid #fff; clip:rect(0,100px,100px,50px); } .clip-auto{ clip:rect(auto, auto, auto, auto); } .percent{ -webkit-box-sizing: border-box; -moz-box-sizing: border-box; box-sizing: border-box; top:-10px; left:-10px; } .left{ -webkit-transition:-webkit-transform ease; transition:-webkit-transform ease; transition:transform ease; border:10px solid #E54B00; clip: rect(0,50px,100px,0); } .right{ border:10px solid #E54B00; clip: rect(0,100px,100px,50px); } .wth0{ width:0; } // js $('.left').animate({ deg: per*3.6 }, { step: function(n, fx) { if(per>180){ $('.circle').addClass('clip-auto'); $('.right').removeClass('wth0'); } $(this).css({ "-webkit-transform":"rotate("+n+"deg)", "-moz-transform":"rotate("+n+"deg)", "transform":"rotate("+n+"deg)" }); }, duration:500 })
Durch Bearbeiten von .circle(the left und rechte Kreise Das Zuschneiden des übergeordneten Elements) zeigt nur den Ring auf der linken Seite an, und die Breite des Rings auf der rechten Seite ist direkt 0. Wenn der Fortschrittsbalken 50 % erreicht, beträgt der Drehwinkel des linken Rings Transformieren: Drehen (180 Grad), Entfernen des Ausschnitts von .circle (.clip-auto) und Wiederherstellen der Breite des rechten Kreises. Das ist im Grunde die Routine.
Das Schrittattribut der jQuery-Animationsmethode animate()
Wenn Sie nur
$(this).css({ "-webkit-transform":"rotate("+n+"deg)", "-moz-transform":"rotate("+n+"deg)", "transform":"rotate("+n+"deg)" });
verwenden, um die Drehung des Winkels zu steuern, sieht es ohne Animation steif aus Zu diesem Zeitpunkt sollten Sie darüber nachdenken, eine Animation hinzuzufügen. Die von jq bereitgestellte Funktion animate kann nur Animationen für numerische Werte erstellen, jedoch keine Animationen für Werte vom Typ Zeichenfolge.
Zu diesem Zeitpunkt müssen Sie das Schrittattribut von animate verwenden.
Einführung in die einzelnen Schritte
Das Fortschrittsattribut von animate wird häufig zum Bedienen der Attribute numerischer Werte verwendet, die Attribute von Zeichenfolgenwerten können jedoch derzeit nicht damit bedient werden. Wir brauchen ein Schrittattribut.
Schritt besteht, wie der Name schon sagt, darin, eine Animation in Schritte zu zerlegen. Bei der Animationsmethode wird die Art und Weise, wie jeder Schritt zerlegt wird, nicht durch den von uns festgelegten CSS-Eigenschaftswert und die Animationsdauer bestimmt, sondern durch das System. von.
$(".left").animate({left:50},{ duration:100, step:function(now,fx){ console.log(now) //控制台输出,看看这个动画被分解成了几个片段 } });
Dieser Ort erklärt hauptsächlich, warum dem Winkel hier ein Wert zugewiesen wird. In wie viele Fragmente er den Wert unterteilt, liegt übrigens nicht unter unserer menschlichen Kontrolle.
Der zweite Parameter der Schrittmethode - fx
$(".demo").animate({ first:2, second:10 }, { step:function(n,fx){ // 动画元素的每个动画属性每一次动画效果的执行都将调用的函数。第1个参数是当前动画正在改变的属性的实时值(每1次动画过程中,属性值的实时反馈呈现);第2个参数为修改Tween 对象提供了一个机会来改变animate第1个参数中设置的属性在动画结束时的值。 // fx: jQuery.fx 原型对象的一个引用,其中包含了多项属性,比如 // 执行动画的元素:elem; // 动画正在改变的属性:prop; // 正在改变属性的当前值:now; // 正在改变属性的结束值:end; // 正在改变属性的单位:unit;等 // 可在这里改变animate第1个参数中设置的属性second在动画结束时的值 if(fx.prop=="second"){fx.end=5} console.log(fx.prop+": "+n); }, duration:2000 })
Verwandte Empfehlungen:
Verwenden von CSS3 zum Erstellen eines Beispiels für einen Ring-Fortschrittsbalken
Das obige ist der detaillierte Inhalt vonCSS3-Methode zum Implementieren des Ring-Fortschrittsbalkens. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Heiße KI -Werkzeuge

Undresser.AI Undress
KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover
Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool
Ausziehbilder kostenlos

Clothoff.io
KI-Kleiderentferner

Video Face Swap
Tauschen Sie Gesichter in jedem Video mühelos mit unserem völlig kostenlosen KI-Gesichtstausch-Tool aus!

Heißer Artikel

Heiße Werkzeuge

Notepad++7.3.1
Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version
Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1
Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6
Visuelle Webentwicklungstools

SublimeText3 Mac-Version
Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Heiße Themen



Die Verwendung von Bootstrap in Vue.js ist in fünf Schritte unterteilt: Startstrap installieren. Bootstrap in main.js. Verwenden Sie die Bootstrap -Komponente direkt in der Vorlage. Optional: benutzerdefinierter Stil. Optional: Verwenden Sie Plug-Ins.

HTML definiert die Webstruktur, CSS ist für Stil und Layout verantwortlich, und JavaScript ergibt eine dynamische Interaktion. Die drei erfüllen ihre Aufgaben in der Webentwicklung und erstellen gemeinsam eine farbenfrohe Website.

Es gibt zwei Möglichkeiten, eine Bootstrap -Split -Zeile zu erstellen: Verwenden des Tags, das eine horizontale Split -Linie erstellt. Verwenden Sie die CSS -Border -Eigenschaft, um benutzerdefinierte Style Split -Linien zu erstellen.

WebdevelopmentRelieSonHtml, CSS und JavaScript: 1) HtmlStructuresContent, 2) CSSstylesit und 3) JavaScriptaddssinteraktivität, Bildung von TheBasisofModerernwebexperiences.

Wie benutze ich die Bootstrap -Taste? Führen Sie Bootstrap -CSS ein, um Schaltflächenelemente zu erstellen, und fügen Sie die Schaltfläche "Bootstrap" hinzu, um Schaltflächentext hinzuzufügen

Um die Größe der Elemente in Bootstrap anzupassen, können Sie die Dimensionsklasse verwenden, einschließlich: Einstellbreite:.

Um das Bootstrap -Framework einzurichten, müssen Sie die folgenden Schritte befolgen: 1. Verweisen Sie die Bootstrap -Datei über CDN; 2. Laden Sie die Datei auf Ihrem eigenen Server herunter und hosten Sie sie. 3.. Fügen Sie die Bootstrap -Datei in HTML hinzu; 4. Kompilieren Sie Sass/weniger bei Bedarf; 5. Importieren Sie eine benutzerdefinierte Datei (optional). Sobald die Einrichtung abgeschlossen ist, können Sie die Grid -Systeme, -Komponenten und -stile von Bootstrap verwenden, um reaktionsschnelle Websites und Anwendungen zu erstellen.

Es gibt verschiedene Möglichkeiten, Bilder in Bootstrap einzufügen: Bilder direkt mit dem HTML -IMG -Tag einfügen. Mit der Bootstrap -Bildkomponente können Sie reaktionsschnelle Bilder und weitere Stile bereitstellen. Legen Sie die Bildgröße fest und verwenden Sie die IMG-Fluid-Klasse, um das Bild anpassungsfähig zu machen. Stellen Sie den Rand mit der img-beliebten Klasse ein. Stellen Sie die abgerundeten Ecken ein und verwenden Sie die IMG-Rund-Klasse. Setzen Sie den Schatten, verwenden Sie die Schattenklasse. Größen Sie die Größe und positionieren Sie das Bild im CSS -Stil. Verwenden Sie mit dem Hintergrundbild die CSS-Eigenschaft im Hintergrund.
