Inhaltsverzeichnis
Implementierungsprinzip
Das Schrittattribut der jQuery-Animationsmethode animate()
Einführung in die einzelnen Schritte
Der zweite Parameter der Schrittmethode - fx
Heim Web-Frontend CSS-Tutorial CSS3-Methode zum Implementieren des Ring-Fortschrittsbalkens

CSS3-Methode zum Implementieren des Ring-Fortschrittsbalkens

Jan 27, 2018 pm 03:06 PM
css css3

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
})
Nach dem Login kopieren

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)"
});
Nach dem Login kopieren

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) //控制台输出,看看这个动画被分解成了几个片段
    }
});
Nach dem Login kopieren

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
})
Nach dem Login kopieren

Verwandte Empfehlungen:

Detaillierte Erläuterung der Instanzmethode zum Implementieren von Bogen- und Ring-Fortschrittsbalken Canvas

Verwenden eines CSS-Clips zum Implementieren eines Tutorialbeispiels für einen Ring-Fortschrittsbalken für die Audiowiedergabe

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!

Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn

Heiße KI -Werkzeuge

Undresser.AI Undress

Undresser.AI Undress

KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover

AI Clothes Remover

Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool

Undress AI Tool

Ausziehbilder kostenlos

Clothoff.io

Clothoff.io

KI-Kleiderentferner

Video Face Swap

Video Face Swap

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

Heiße Werkzeuge

Notepad++7.3.1

Notepad++7.3.1

Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version

SublimeText3 chinesische Version

Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1

Senden Sie Studio 13.0.1

Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6

Dreamweaver CS6

Visuelle Webentwicklungstools

SublimeText3 Mac-Version

SublimeText3 Mac-Version

Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

So verwenden Sie Bootstrap in Vue So verwenden Sie Bootstrap in Vue Apr 07, 2025 pm 11:33 PM

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.

Die Rollen von HTML, CSS und JavaScript: Kernverantwortung Die Rollen von HTML, CSS und JavaScript: Kernverantwortung Apr 08, 2025 pm 07:05 PM

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.

So schreiben Sie geteilte Zeilen auf Bootstrap So schreiben Sie geteilte Zeilen auf Bootstrap Apr 07, 2025 pm 03:12 PM

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.

HTML, CSS und JavaScript verstehen: Ein Anfängerhandbuch HTML, CSS und JavaScript verstehen: Ein Anfängerhandbuch Apr 12, 2025 am 12:02 AM

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

So verwenden Sie die Bootstrap -Taste So verwenden Sie die Bootstrap -Taste Apr 07, 2025 pm 03:09 PM

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

So ändern Sie Bootstrap So ändern Sie Bootstrap Apr 07, 2025 pm 03:18 PM

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

So richten Sie das Framework für Bootstrap ein So richten Sie das Framework für Bootstrap ein Apr 07, 2025 pm 03:27 PM

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.

So fügen Sie Bilder auf Bootstrap ein So fügen Sie Bilder auf Bootstrap ein Apr 07, 2025 pm 03:30 PM

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.

See all articles