JavaScript で Taobao 虫眼鏡を実装する 2 つの方法の紹介 (コード例)
この記事で紹介するのは、JavaScript で淘宝虫眼鏡を実装する 2 つの方法 (コード例) です。必要な方は参考にしていただければ幸いです。
淘宝虫眼鏡とは
これは、マウスを左側のメイン画像の上に移動すると、虫眼鏡が表示されます右 拡大した写真。これを虫眼鏡と呼びます。
おおよその方法
最初の方法は、左側に小さな画像、右側に元の画像を配置し、その小さな画像の上にマウスを移動すると、変更されます。同期移動を実現するための左と上の値 (元の画像の位置属性は絶対に設定されます)
2 番目の方法は、元の画像の背景位置を変更することです。マウスを小さい値上で移動すると、同期して移動します。
キー操作
最初のステップは、小さな画像上のマウスの位置を取得し、マウスの後に続くボックスを配置することです (どのブロックなのかを知っておくべきです。
//e.offsetX ,offsetY是鼠标的位置 //方块的left top在你的鼠标的左上方(网页左上角是原点),因此是减去一个方块的一半。 var x = e.offsetX - 方块.offsetWidth / 2; var y = e.offsetY - 方块.offsetHeight / 2; 方块.style.left = x + 'px'; 方块.style.top = y + 'px';
これでは明らかに不十分です。
極端な位置/状況も考慮する必要があります
上記の設定のみを使用すると、マウスを画像の端に移動すると、正方形の半分が外側に表示されます。絵。
正解は次のとおりです。ブロックが端に触れると、ブロックは移動できなくなります。マウスはまだ「有効範囲」の外に移動します。下の図の「マウスの活動領域」。
次に、コードを追加する必要があります
if (x 小图.offsetWidth - 方块.offsetWidth) { x = 小图.offsetWidth - 方块.offsetWidth; } if (y > 小图.offsetHeight - 方块.offsetHeight) { y = 小图.offsetHeight - 方块.offsetHeight; }
2 番目のステップは、左上または背景の位置を制御することです。全体像
//第一种方法:需要注意的是这里的left 和 top得反过来,你鼠标在小图上往下移的时候,对应的大图其实是往上移的。 //所以:大图上的left = -小图上的left * 他们的缩放倍率 大图.style.display = "block"; 大图.style.left = -x * 大图.offsetWidth / 小图.offsetWidth + 'px'; 大图.style.top = -y * 大图.offsetHeight / 小图.offsetHeight + 'px'; //第二种方法,这里需要注意 backgroundPosition的值是从0 - 100%的(得用百分比表示); //需要注意的是何时为百分百,从上面的极端情况判定我们可以知道 //x 是从0 到 mask.offsetWidth - rect.offsetWidth; //因此这就是0 - 100%;y同理 大图.style.display = "block"; 大图.style.backgroundPosition =`${x/(mask.offsetWidth - rect.offsetWidth)*100}% ${y/(mask.offsetHeight- rect.offsetHeight)*100}%`;
Notes
上で、mousemove イベントを小さな画像 img にバインドしてボックスを検索すると述べました。実際の操作では、img を直接使用してバインドすることはできませんが、バインドする img と同じサイズのマスク レイヤーを使用する必要があります。そうしないと、マウスを動かすと画像が 狂ったように点滅します。 ###クレイジー!クレイジー!
#これを調整したい場合は、機能の調整もあります。 - もう 1 つの非常に重要な点は、大きな画像
- を表示する右側の
の p のサイズは、 小さな画像のボックスのサイズでなければならないということです。ピクチャ* ズーム 倍率 のサイズが大きすぎると、余白が多くなり、小さすぎると表示が不完全になります。以下に、家に持ち帰って Crazy Test を実行できるコードがあります。
#もう少し詳しく
rreeee
以上がJavaScript で Taobao 虫眼鏡を実装する 2 つの方法の紹介 (コード例)の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ホットAIツール

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

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

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

AI Hentai Generator
AIヘンタイを無料で生成します。

人気の記事

ホットツール

メモ帳++7.3.1
使いやすく無料のコードエディター

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

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

ドリームウィーバー CS6
ビジュアル Web 開発ツール

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

ホットトピック











WebSocketとJavaScript:リアルタイム監視システムを実現するためのキーテクノロジー はじめに: インターネット技術の急速な発展に伴い、リアルタイム監視システムは様々な分野で広く利用されています。リアルタイム監視を実現するための重要なテクノロジーの 1 つは、WebSocket と JavaScript の組み合わせです。この記事では、リアルタイム監視システムにおける WebSocket と JavaScript のアプリケーションを紹介し、コード例を示し、その実装原理を詳しく説明します。 1.WebSocketテクノロジー

PHP と Vue: フロントエンド開発ツールの完璧な組み合わせ 今日のインターネットの急速な発展の時代において、フロントエンド開発はますます重要になっています。 Web サイトやアプリケーションのエクスペリエンスに対するユーザーの要求がますます高まっているため、フロントエンド開発者は、より効率的で柔軟なツールを使用して、応答性の高いインタラクティブなインターフェイスを作成する必要があります。フロントエンド開発の分野における 2 つの重要なテクノロジーである PHP と Vue.js は、組み合わせることで完璧なツールと見なされます。この記事では、PHP と Vue の組み合わせと、読者がこれら 2 つをよりよく理解し、適用できるようにするための詳細なコード例について説明します。

フロントエンド開発のインタビューでは、HTML/CSS の基本、JavaScript の基本、フレームワークとライブラリ、プロジェクトの経験、アルゴリズムとデータ構造、パフォーマンスの最適化、クロスドメイン リクエスト、フロントエンド エンジニアリング、デザインパターン、新しいテクノロジーとトレンド。面接官の質問は、候補者の技術スキル、プロジェクトの経験、業界のトレンドの理解を評価するように設計されています。したがって、候補者はこれらの分野で自分の能力と専門知識を証明するために十分な準備をしておく必要があります。

JavaScript チュートリアル: HTTP ステータス コードを取得する方法、特定のコード例が必要です 序文: Web 開発では、サーバーとのデータ対話が頻繁に発生します。サーバーと通信するとき、多くの場合、返された HTTP ステータス コードを取得して操作が成功したかどうかを判断し、さまざまなステータス コードに基づいて対応する処理を実行する必要があります。この記事では、JavaScript を使用して HTTP ステータス コードを取得する方法を説明し、いくつかの実用的なコード例を示します。 XMLHttpRequestの使用

Django は、迅速な開発とクリーンなメソッドを重視した Python で書かれた Web アプリケーション フレームワークです。 Django は Web フレームワークですが、Django がフロントエンドなのかバックエンドなのかという質問に答えるには、フロントエンドとバックエンドの概念を深く理解する必要があります。フロントエンドはユーザーが直接対話するインターフェイスを指し、バックエンドはサーバー側プログラムを指し、HTTP プロトコルを通じてデータと対話します。フロントエンドとバックエンドが分離されている場合、フロントエンドとバックエンドのプログラムをそれぞれ独立して開発して、ビジネス ロジックとインタラクティブ効果、およびデータ交換を実装できます。

フロントエンド ESM とは何ですか? 特定のコード サンプルが必要です。フロントエンド開発では、ESM は ECMAScript 仕様に基づいたモジュール式開発メソッドである ECMAScriptModules を指します。 ESM は、より優れたコード構成、モジュール間の分離、再利用性など、多くの利点をもたらします。この記事では、ESM の基本概念と使用法を紹介し、いくつかの具体的なコード例を示します。 ESM の基本概念 ESM では、コードを複数のモジュールに分割することができ、各モジュールは他のモジュール用のいくつかのインターフェイスを公開します。

JavaScript で HTTP ステータス コードを取得する方法の紹介: フロントエンド開発では、バックエンド インターフェイスとの対話を処理する必要があることが多く、HTTP ステータス コードはその非常に重要な部分です。 HTTP ステータス コードを理解して取得すると、インターフェイスから返されたデータをより適切に処理できるようになります。この記事では、JavaScript を使用して HTTP ステータス コードを取得する方法と、具体的なコード例を紹介します。 1. HTTP ステータス コードとは何ですか? HTTP ステータス コードとは、ブラウザがサーバーへのリクエストを開始したときに、サービスが

Go 言語は、高速で効率的なプログラミング言語として、バックエンド開発の分野で広く普及しています。ただし、Go 言語をフロントエンド開発と結びつける人はほとんどいません。実際、フロントエンド開発に Go 言語を使用すると、効率が向上するだけでなく、開発者に新たな視野をもたらすことができます。この記事では、フロントエンド開発に Go 言語を使用する可能性を探り、読者がこの分野をよりよく理解できるように具体的なコード例を示します。従来のフロントエンド開発では、ユーザー インターフェイスの構築に JavaScript、HTML、CSS がよく使用されます。
