In diesem Artikelbeispiel wird der spezifische JS-Code zur Realisierung des Ziehens und Schiebens des kreisförmigen Fortschrittsbalkens zu Ihrer Information geteilt. Der spezifische Inhalt ist wie folgt EffektanzeigeHalbkreisförmiger Fortschrittsbalkeneffekt Kreisförmiger Fortschrittsbalken Code-Implementierung<!doctype html> <html lang="de"> <Kopf> <meta charset="UTF-8" /> <meta http-equiv="X-UA-kompatibel" content="IE=edge,chrome=1" /> <title>Ziehen und verschieben Sie den kreisförmigen Fortschrittsbalken</title> </Kopf> <Text> <canvas id="canvasId" width="400" height="400"></canvas> <Skripttyp="text/javascript"> var canvas = document.getElementById("canvasId"); var ctx = canvas.getContext("2d"); var ox = 200; var oy = 200; var oder = 180; var br = 15; var moveFlag = false; Funktion Offset (r, d) {//Berechnen Sie die Offset-Koordinaten basierend auf Radiant und Entfernung. Return {x: -Math.sin (r) * d, y: Math.cos (r) * d}. }; Funktion zeichnen(n) { ctx.clearRect(0,0,Leinwandbreite,Leinwandhöhe); ctx.strokeStyle = "#99a"; ctx.Linienbreite = 5; ctx.beginPath(); ctx.arc(ox,oy,or,0,Math.PI,true);//Halbkreis// ctx.arc(ox,oy,or,0,2*Math.PI,true);//Vollkreisctx.stroke(); ctx.strokeStyle = "#69f"; ctx.Linienbreite = 5; ctx.beginPath(); ctx.arc(ox,oy,or,Math.PI,(n*2+0,5)*Math.PI,false); // ctx.arc(ox,oy,or,0.5*Math.PI,(n*2+0.5)*Math.PI,false); ctx.stroke(); ctx.fillStyle = "#69f"; ctx.font = "80px Arial"; ctx.textAlign = "zentriert"; ctx.textBaseline = "Mitte"; ctx.fillText(Math.round(n*100-25)+"%",ox,oy); ctx.fillStyle = "#00f"; ctx.beginPath(); var d = Offset (n * 2 * Math.PI, oder); ctx.arc(ox+dx,oy+dy,br,0,2*Math.PI,true); ctx.fill(); } var on = ("ontouchstart" im Dokument)? { Start: „touchstart“, Bewegung: „touchmove“, Ende: „touchend“ } : { Start: "Maustaste gedrückt", Bewegung: "Maustaste bewegt", Ende: "Maustaste hoch" }; Funktion getXY(e,obj) { var et = e.touches? e.touches[0] : e; var x = et.clientX; var y = et.clientY; zurückkehren { x : x - obj.offsetLeft + (document.body.scrollLeft || document.documentElement.scrollLeft), y: y – Objekt.OffsetTop + (Dokument.Body.ScrollTop || Dokument.DocumentElement.ScrollTop) } } canvas.addEventListener(beim Start, Funktion(e) { VerschiebeFlag = wahr; }, FALSCH); canvas.addEventListener(beim Verschieben, Funktion(e) { wenn (Flagge verschieben) { var k = getXY(e,Leinwand); var r = Math.atan2(kx-ox, oy-ky); var hd = (Math.PI+r)/(2*Math.PI); // Gleitbereich des Halbkreises bestimmen if (hd <= 0.75 && hd >= 0.25) { zeichnen(hd); } } }, FALSCH); canvas.addEventListener(am Ende, Funktion(e) { moveFlag = falsch; }, FALSCH); zeichnen(0,25); </Skript> </body> </html> Das Obige ist der vollständige Inhalt dieses Artikels. Ich hoffe, er wird für jedermanns Studium hilfreich sein. Ich hoffe auch, dass jeder 123WORDPRESS.COM unterstützen wird. Das könnte Sie auch interessieren:
|
<<: So verwenden Sie eine VLAN-getaggte Ethernet-Karte im CentOS/RHEL-System
>>: HTML-Tabellen-Tag-Tutorial (45): Tabellen-Body-Tag
<br />Durch die Frame-Struktur ist die gleic...
Das Installationstutorial für MySQL 8.0.11 WinX64...
In diesem Artikelbeispiel wird der spezifische Co...
Inhaltsverzeichnis 1. Was ist Lazy Loading von Ro...
Ich habe VMware und Ubuntu neu installiert, aber ...
Async Hooks ist eine neue Funktion von Node8. Sie...
Inhaltsverzeichnis Frage Reproduktion Implizite K...
Inhaltsverzeichnis 1. Was ist SVN? 2. Methoden zu...
Ⅰ. Problembeschreibung: Verwenden Sie CSS, um kon...
1. Virtuelle Umgebung folgt dem Projekt, erstelle...
In diesem Artikel wird der spezifische JavaScript...
Anaconda bezeichnet eine Open-Source-Python-Distr...
Dieser Artikel fasst hauptsächlich einige häufig ...
Inhaltsverzeichnis Problembeschreibung Rendern Dr...
Harbor ist ein Registry-Server auf Unternehmenseb...