Heim  >  Fragen und Antworten  >  Hauptteil

Einen kreisförmigen SVG-Temperaturregler in Angular erstellen?

Dies ist eine statische Demonstration des kreisförmigen Daumenziehers, den ich in Angular erstellen möchte. Es funktioniert wie erwartet mit rinkle-dashoffset="-260" 设置将拇指/拖动器定位在靠近拇指后面的圆形路径的末端,可以看出 -260 negativem Offset.

    <body style="width: 200px; height: 200px;">
    <svg
      (mousedown)="onMouseDown($event)"
      #svgRoot
      id="svgclick"
      version="1.1"
      viewBox="0 0 79.375 79.375"
      xmlns="http://www.w3.org/2000/svg"
    >
      <path
        transform="rotate(90)"
        d="m64.961-15.355a34.984 34.412 0 0 1-49.474 1e-6 34.984 34.412 0 0 1-1e-6 -48.666 34.984 34.412 0 0 1 49.474-2e-6"
        fill="none"
        stroke="#000"
        stroke-linecap="round"
        stroke-linejoin="round"
        stroke-width="10.583"
      />
      <path
        #thumb
        transform="rotate(90)"
        d="m64.961-15.355a34.984 34.412 0 0 1-49.474 1e-6 34.984 34.412 0 0 1-1e-6 -48.666 34.984 34.412 0 0 1 49.474-2e-6"
        fill="none"
        stroke-linecap="round"
        stroke-linejoin="round"
        stroke="#F66"
        stroke-width="18"
        pathlength="270"
        stroke-dasharray="0 270"
        stroke-dashoffset="-260"
        id="thumb"
      />
    </svg>
  </body>

Wenn ich in diesem Angular Stackblitz denselben Code verwende, funktioniert rinkle-dashoffset="-260" anders.

Dies ist eine Live-Dragger-Demo. Wenn Sie versuchen, Ihren Daumen zu ziehen, wird das Ziehen „beschleunigt“ und Ihr Daumen wird immer weiter weggedrückt. Beachten Sie, dass der der Offset-Berechnung entsprechende Wert und der durch Klicken oder Ziehen dargestellte Grad aufgezeichnet werden.

https://stackblitz.com/edit/angular-ptzvsm?file=src%2Fmain.ts

Irgendwelche Ideen, warum das so gemacht wird?

P粉135799949P粉135799949180 Tage vor395

Antworte allen(1)Ich werde antworten

  • P粉176151589

    P粉1761515892024-04-04 00:57:57

    所提供的 Angular Stackblitz 中的圆形拇指拖动器的问题是由对描边-dashoffset 值的错误计算引起的。要解决此问题,您可以使用Stroke-dasharray值来确定圆形路径的长度,并根据拇指绕圆移动的距离更新Stroke-dashoffset

    Antwort
    0
  • StornierenAntwort