Heim > Web-Frontend > js-Tutorial > Hauptteil

Wie zoomt man in HTML5 einen Canvas-Kontext auf den Mauszeiger?

Mary-Kate Olsen
Freigeben: 2024-10-24 18:47:04
Original
563 Leute haben es durchsucht

How do you Zoom a Canvas Context to the Mouse Cursor in HTML5?

Zoomen des Canvas-Kontexts auf den Mauszeiger

Bei einem HTML5-Canvas-Projekt, bei dem das Zoomen von Bildern mithilfe des Scrollrads erforderlich ist, kann es sein, dass Sie auf die Herausforderung stoßen Zoomen in Richtung des Cursors, ähnlich der Funktionalität in Google Maps. Um diesen Effekt zu erzielen, ist eine Reihe von Berechnungen erforderlich.

Berechnung der Bewegungen

  1. Bestimmung der Canvas-Kontexttransformation:

    • Übersetzen Sie den Canvas-Kontext um den Versatz des Cursors (pt.x, pt.y).
    • Skalieren Sie den Kontext mit ein Zoomfaktor (Faktor).
    • Übersetze den Kontext um das Negativ des Cursor-Versatzes zurück.
    <code class="js">ctx.translate(pt.x, pt.y);
    ctx.scale(factor, factor);
    ctx.translate(-pt.x, -pt.y);</code>
    Nach dem Login kopieren
  2. Transformation der Cursorposition:

    • Die Koordinaten des Bildschirmbereichs des Cursors müssen für ein genaues Zoomen in die Koordinaten des transformierten Leinwandkontexts umgewandelt werden.

Beispieldemonstration

Besuchen Sie den folgenden Link für ein funktionierendes Beispiel, das Folgendes enthält:

  • Leinwand Bild zoomt zum Cursor
  • Drag-Unterstützung
  • Zum Vergrößern klicken, Umschalt-Klick zum Verkleinern
  • Scrollrad-Zoom

Demo: http://phrogz.net/tmp/canvas_zoom_to_cursor.html

Hinweis: In Safari kann sich das Zoomverhalten von Chrome oder Firefox unterscheiden.

Das obige ist der detaillierte Inhalt vonWie zoomt man in HTML5 einen Canvas-Kontext auf den Mauszeiger?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
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
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage
Über uns Haftungsausschluss Sitemap
Chinesische PHP-Website:Online-PHP-Schulung für das Gemeinwohl,Helfen Sie PHP-Lernenden, sich schnell weiterzuentwickeln!