ホームページ  >  記事  >  ウェブフロントエンド  >  HTML5 でキャンバス コンテキストをマウス カーソルにズームするにはどうすればよいですか?

HTML5 でキャンバス コンテキストをマウス カーソルにズームするにはどうすればよいですか?

Mary-Kate Olsen
Mary-Kate Olsenオリジナル
2024-10-24 18:47:04564ブラウズ

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

キャンバス コンテキストをマウス カーソルに合​​わせてズームする

スクロール ホイールを使用した画像のズームを伴う HTML5 キャンバス プロジェクトでは、次のような課題が発生する可能性があります。 Google マップの機能と同様に、カーソルに向かってズームします。この効果を実現するには、一連の計算が必要です。

動きの計算

  1. キャンバス コンテキスト変換の決定:

    • カーソルのオフセット (pt.xpt.y) によってキャンバス コンテキストを移動します。
    • 次を使用してコンテキストをスケールします。ズーム係数 (factor)。
    • カーソルのオフセットの負の値でコンテキストを戻します。
    <code class="js">ctx.translate(pt.x, pt.y);
    ctx.scale(factor, factor);
    ctx.translate(-pt.x, -pt.y);</code>
  2. カーソル位置の変換:

    • 正確にズームするには、カーソルの画面空間座標を変換されたキャンバス コンテキスト座標に変換する必要があります。

サンプル デモンストレーション

以下を含む実際の例については、次のリンクにアクセスしてください。

  • キャンバス画像のカーソルへのズーム
  • ドラッグサポート
  • クリックして拡大、Shift キーを押しながらクリックして縮小
  • スクロールホイールのズーム

デモ: http://phrogz.net/tmp/canvas_zoom_to_cursor.html

注: Safari では、ズーム動作が Chrome や Firefox とは異なる場合があります。

以上がHTML5 でキャンバス コンテキストをマウス カーソルにズームするにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。