ホームページ ウェブフロントエンド jsチュートリアル JavaScript を使用して画像をコンテナ内に制限しながらドラッグしたりズームしたりするにはどうすればよいですか?

JavaScript を使用して画像をコンテナ内に制限しながらドラッグしたりズームしたりするにはどうすればよいですか?

Oct 20, 2023 pm 04:19 PM
引っ張る ズーム 限界

JavaScript 如何实现图片的拖动缩放同时限制在容器内?

JavaScript 画像のドラッグとズームをコンテナ内に限定して実現するにはどうすればよいでしょうか?

Web 開発では、画像のドラッグやズームが必要になることがよくあります。この記事では、JavaScriptを使用して画像のドラッグやズーム、コンテナ内での操作を制限する方法を紹介します。

1. 画像をドラッグします

画像のドラッグを実現するには、マウス イベントを使用してマウスの位置を追跡し、それに応じて画像の位置を移動します。以下はサンプル コードです:

// 获取图片元素
var image = document.getElementById('image');

var isDragging = false; // 是否正在拖动
var startX = 0; // 开始拖动时的鼠标水平位置
var startY = 0; // 开始拖动时的鼠标垂直位置
var offsetX = 0; // 图片偏移量
var offsetY = 0; // 图片偏移量

// 鼠标按下时的事件处理函数
image.onmousedown = function(e) {
  isDragging = true;
  startX = e.clientX;
  startY = e.clientY;
  offsetX = image.offsetLeft;
  offsetY = image.offsetTop;
};

// 鼠标移动时的事件处理函数
document.onmousemove = function(e) {
  if (isDragging) {
    var deltaX = e.clientX - startX;
    var deltaY = e.clientY - startY;
    image.style.left = offsetX + deltaX + 'px';
    image.style.top = offsetY + deltaY + 'px';
  }
};

// 鼠标松开时的事件处理函数
document.onmouseup = function() {
  isDragging = false;
};
ログイン後にコピー

上記のコードでは、3 つのイベント処理関数 onmousedownonmousemoveonmouseup を使用して次のことを実現します。ドラッグ効果。 onmousedown では、マウスの位置と画像の初期オフセットを記録します。 onmousemove では、ドラッグしている場合、マウスの変位を計算し、画像の位置を更新します。 onmouseup では、ドラッグ フラグ isDraggingfalse に設定します。

2. 画像のズーム

画像のズームを実現するには、マウス ホイール イベントを使用してマウスのスクロールをリッスンし、画像のサイズを変更します。以下はサンプル コードです:

// 获取图片元素
var image = document.getElementById('image');

var scaleFactor = 1; // 缩放比例

// 鼠标滚轮事件处理函数
image.onmousewheel = function(e) {
  e.preventDefault();
  
  var delta = Math.max(-1, Math.min(1, (e.wheelDelta || -e.detail))); // 跨浏览器兼容性处理

  // 计算缩放比例
  if (delta > 0) {
    scaleFactor *= 1.1;
  } else {
    scaleFactor *= 0.9;
  }

  // 设置图片的缩放
  image.style.transform = 'scale(' + scaleFactor + ')';
};
ログイン後にコピー

上記のコードでは、ブラウザのホイール イベントを使用してマウス スクロールを監視します。スクロールホイールの方向を判断して、ズーム率 scaleFactor を変更します。次に、transform 属性を使用して画像のズームを設定します。

3. コンテナに制限する

画像をコンテナに制限するには、ドラッグおよびズームのコードにいくつかの制限を追加する必要があります。以下はサンプル コードです。

// 获取图片元素和容器元素
var image = document.getElementById('image');
var container = document.getElementById('container');

// 容器的宽度和高度
var containerWidth = container.offsetWidth;
var containerHeight = container.offsetHeight;

// 获取图片的原始宽度和高度
var imageWidth = image.offsetWidth;
var imageHeight = image.offsetHeight;

// 计算边界
var maxX = containerWidth - imageWidth;
var maxY = containerHeight - imageHeight;

// 拖动图片时的事件处理函数
// ...

// 缩放图片时的事件处理函数
// ...
ログイン後にコピー

上記のコードでは、最初にコンテナ要素の幅と高さ、およびピクチャ要素の元の幅と高さを取得します。次に、コンテナ内で画像が移動できる境界を計算しました。ドラッグおよびズームのイベント ハンドラーでは、これらの境界を使用して画像の位置とサイズを制限します。

要約すると、上記のコードを使用して画像のドラッグとズームを実現し、それをコンテナーに限定することができます。これにより、ユーザーはコンテナ内で画像を自由にドラッグしたりズームしたりできます。もちろん、特定のニーズに応じてコードを変更および最適化することもできます。

以上がJavaScript を使用して画像をコンテナ内に制限しながらドラッグしたりズームしたりするにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

Video Face Swap

Video Face Swap

完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

中国語版、とても使いやすい

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)

Windows 11 でのディスプレイ スケーリング ガイド Windows 11 でのディスプレイ スケーリング ガイド Sep 19, 2023 pm 06:45 PM

Windows 11 のディスプレイ スケーリングに関しては、好みが人それぞれ異なります。大きなアイコンを好む人もいれば、小さなアイコンを好む人もいます。ただし、適切なスケーリングが重要であることには誰もが同意します。フォントのスケーリングが不十分であったり、画像が過度にスケーリングされたりすると、作業中の生産性が大幅に低下する可能性があるため、システムの機能を最大限に活用するためにカスタマイズする方法を知る必要があります。カスタム ズームの利点: これは、画面上のテキストを読むのが難しい人にとって便利な機能です。一度に画面上でより多くの情報を確認できるようになります。特定のモニターおよびアプリケーションにのみ適用するカスタム拡張プロファイルを作成できます。ローエンド ハードウェアのパフォーマンスの向上に役立ちます。画面上の内容をより詳細に制御できるようになります。 Windows 11の使用方法

iPhone の Safari ズームの問題: これで解決します iPhone の Safari ズームの問題: これで解決します Apr 20, 2024 am 08:08 AM

Safari でズーム レベルを制御できない場合、作業が困難になることがあります。したがって、Safari がズームアウトしているように見える場合は、それが問題である可能性があります。 Safari でのこの小さなズームの問題を解決する方法をいくつか紹介します。 1. カーソル拡大率:Safari メニューバーの「表示」>「カーソル拡大率」を選択します。これにより、カーソルが画面上でより見やすくなり、制御が容易になります。 2. マウスを移動します。これは簡単に聞こえるかもしれませんが、マウスを画面上の別の場所に移動するだけで、マウスが自動的に通常のサイズに戻ることがあります。 3. キーボード ショートカットを使用する 解決策 1 – ズーム レベルをリセットする Safari ブラウザから直接ズーム レベルを制御できます。ステップ 1 – Safari を使用している場合

Wordでページを並べて拡大縮小する方法 Wordでページを並べて拡大縮小する方法 Mar 19, 2024 pm 07:19 PM

Word文書を使ってファイルを編集する場合、ページ数が多く、並べて表示して全体の効果を確認したいのですが、操作方法が分からず、長時間スクロールしなければならないことがよくあります。ページごとに表示します。あなたも同様の状況に遭遇したことがあるかどうかはわかりませんが、実際、Word のズーム ページを並べて設定する方法を学べば、現時点では簡単に解決できます。以下、見て一緒に学びましょう。まず、Word 文書内に新しいページを作成して開き、区別しやすくするために簡単なコンテンツを入力します。 2. たとえば、ワードズームと並べて表示を実現したい場合は、図に示すように、メニューバーで[表示]を見つけ、表示ツールオプションで[複数ページ]を選択する必要があります。 3. [複数ページ] を見つけて、クリックします。

動画アカウントのコメント制限を解除するにはどうすればよいですか?動画アカウントのコメントの文字数制限はどのくらいですか? 動画アカウントのコメント制限を解除するにはどうすればよいですか?動画アカウントのコメントの文字数制限はどのくらいですか? Mar 22, 2024 pm 02:11 PM

ソーシャルメディアでのビデオアカウントの人気により、ますます多くの人がビデオアカウントを使用して日常生活、洞察、ストーリーを共有し始めています。ただし、一部のユーザーはコメントが制限されているため、混乱や不満を感じる可能性があります。 1. 動画アカウントのコメント制限を解除するにはどうすればよいですか?動画アカウントのコメント制限を解除するには、アカウントが正しく登録され、実名認証が完了していることを確認する必要があります。動画アカウントにはコメント要件があり、実名認証を完了したアカウントのみコメント制限を解除できます。アカウントに何らかの異常がある場合は、コメント制限を解除する前に問題を解決する必要があります。 2. 動画アカウントのコミュニティ基準に準拠します。動画アカウントではコメント内容に一定の基準があり、違法な内容が含まれるコメントの場合は発言が制限されます。コメント制限を解除するには、動画アカウントのコミュニティに従う必要があります

Word 文書編集のヒント: 2 ページのコンテンツを 1 ページにまとめる Word 文書編集のヒント: 2 ページのコンテンツを 1 ページにまとめる Mar 25, 2024 pm 06:06 PM

Microsoft Word 文書では、特に用紙を節約する必要がある場合や両面文書を印刷する必要がある場合に、2 ページのコンテンツを 1 ページに結合する状況がよく発生します。この目標を達成するための一般的な方法をいくつか以下に紹介します。方法 1: ページの余白を調整する まず Word 文書を開き、メニュー バーの [ページ レイアウト] オプションを見つけます。クリックすると、ページ レイアウト設定メニューがポップアップ表示されます。ここでは、上下左右の余白を含むページの余白を調整できます。一般に、上下の余白を小さくすると、コンテンツが 1 ページ内に収まるようになります。味わうことができます

JavaScript を使用して画像の左右のドラッグ切り替え効果を実現するにはどうすればよいですか? JavaScript を使用して画像の左右のドラッグ切り替え効果を実現するにはどうすればよいですか? Oct 21, 2023 am 09:27 AM

JavaScript で画像の左右のドラッグ切り替え効果を実現するにはどうすればよいですか?最新の Web デザインでは、動的な効果によってユーザー エクスペリエンスと視覚的な魅力が向上します。画像の左右のドラッグ切り替え効果は一般的な動的効果であり、ユーザーは画像をドラッグすることで異なるコンテンツを切り替えることができます。この記事では、JavaScript を使用してこの画像切り替え効果を実現する方法と、具体的なコード例を紹介します。まず、複数の画像を含む画像を作成するための HTML および CSS コードを準備する必要があります。

Excelの表全体を拡大・縮小する方法 Excelの表全体を拡大・縮小する方法 Mar 20, 2024 pm 05:16 PM

コンピュータ技術、ネットワーク技術、およびソフトウェア技術の発展により、オフィスオートメーションに大きな展望がもたらされました。現在のオフィス業務プロセスはすべて電子的に実行できるため、作業時間を大幅に節約できます。Excel テーブルは一般的にソフトウェア操作で使用されます。紙や組版の問題に基づいて、Excel テーブル全体を拡大または縮小する必要がある場合があります。設定がある場合は、私たちのニーズを満たすことができる操作方法があれば、次のコースを見てみましょう。 1. まず Excel ソフトウェアを開き、次の図に示すように関連情報を入力します。 2. 次に、右下隅のアイコンをクリックして左または右に移動すると、次の図に示すように、プラス記号は拡大し、マイナス記号は縮小することができます。 3. 2 番目の方法では、Ctrl + マウス ホイールを使用することもできます。

JavaScript を使用して画像をコンテナ内に制限しながらドラッグしたりズームしたりするにはどうすればよいですか? JavaScript を使用して画像をコンテナ内に制限しながらドラッグしたりズームしたりするにはどうすればよいですか? Oct 20, 2023 pm 04:19 PM

JavaScript はコンテナ内に限定しながら画像のドラッグとズームをどのように実装するのでしょうか? Web 開発では、画像をドラッグしてズームする必要がよくあります。この記事では、JavaScriptを使用して画像のドラッグやズーム、コンテナ内での操作を制限する方法を紹介します。 1. 画像をドラッグする 画像をドラッグするには、マウス イベントを使用してマウスの位置を追跡し、それに応じて画像の位置を移動します。以下はサンプルコードです: //ピクチャ要素 varimage を取得します。

See all articles