電子商取引ウェブサイトでよく使用される js 虫眼鏡効果_画像の特殊効果
jsFiddleRun again Edit this fiddle Result HTML


<script> <br>function PhotoZoomer(elements){ <br>this.mask = elements.mask; //蒙版 <br>this.container = elements.container //原图容器 <br>this.originimg = elements.originimg; //原图 <br>this.eventproxy = elements.eventproxy; <br>this.bigContainer = elements.bigContainer; //大图容器 <br>this.bigimg = elements.bigimg; //大图 <br>this.visible = false; <br>this._bind(); <br>} <br>PhotoZoomer.prototype = { <br>display: function(style){ <br>var self = this; <br>self.mask.style.display = style; <br>self.bigContainer.style.display = style; <br>}, <br>//计算放大蒙版位置 <br>zoom: function(clientX, clientY){ <br>var self = this, <br>//位置比例 <br>rate = {}, <br>//放大蒙版最大活动范围 <br>maxrange = { <br>offsetLeft: self.container.offsetWidth - self.mask.offsetWidth, <br>offsetTop: self.container.offsetHeight - self.mask.offsetHeight <br>}, <br>//mask left <br>left = clientX - self.container.offsetLeft - self.mask.offsetWidth/2, <br>//mask top <br>top = clientY - self.container.offsetTop - self.mask.offsetHeight/2; <br>if(left < 0) { <BR>left = 0; <BR>}else if(left> maxrange.offsetLeft) { <br>left = maxrange.offsetLeft; <br>} <br>if(top < 0) { <BR>top = 0; <BR>}else if(top > maxrange.offsetTop){ <br>top = maxrange.offsetTop; <br>} <br>//alert(maxrange.offsetTop); <br>rate.left = left / maxrange.offsetLeft; <br>rate.top = top / maxrange.offsetTop; <br>self.mask.style.left = left + 'px'; <br>self.mask.style.top = top + 'px'; <br>self.bigimg.style.left = -rate.left * (self.bigimg.offsetWidth - self.bigContainer.offsetWidth) + "px"; <br>self.bigimg.style.top = -rate.top * (self.bigimg.offsetHeight - self.bigContainer.offsetHeight) + "px"; <br>}, <br>_bind: function(){ <br>var self = this; <br>self.container.onmouseover = function(e){ <br>e = e || window.event; <br>var target = e.targe || e.srcElement; <br>self.display("block"); <br>this.visible = true; <br>}; <br>self.container.onmouseout = function(e){ <br>e = e || window.event; <br>var target = e.targe || e.srcElement; <br>self.display("none"); <br>this.visible = false; <br>}; <br>self.container.onmousemove = function(e){ <br>e = e || window.event; <br>if(!this.visible )return;//防止元素大小计算错误 <br>self.zoom(e.clientX, e.clientY); <br>}; <br>} <br>}; <br>function get(id){ <br>return document.getElementById(id) <br>} <br>var elements = { <br>mask: get("m"), <br>container: get("p1"), <br>originimg: get("z1"), <br>bigContainer: get("p2"), <br>bigimg: get("z2"), <br>eventproxy: get("eventproxy") <br>}; <br>var zoomer = new PhotoZoomer(elements); <br>// alert(elements.container.offsetParent.tagName) <br></script>


<script> <br>function PhotoZoomer(elements){ <br>this.mask = elements.mask; //マスク<br>this.container = elements.container<br> .originimg = elements.originimg; //元のイメージ<br>this.eventproxy = elements.bigContainer; //ビッグイメージコンテナ<br>this.bigimg = elements.bigimg; /大きい画像<br>this.visible = false; <br>this._bind(); <br>PhotoZoomer.prototype = { <br>display: function(style){ <br>var self = this ; <br>self.mask.style.display = style; <br>}, <br>//ズームマスクの位置を計算します<br>zoom: function( , clientY){ <br>var self = this, <br>//位置比<br>rate = {}, <br>//マスクの最大アクティビティ範囲を拡大します<br>maxrange = { <br>offsetLeft : self.container.offsetWidth - self.mask.offsetWidth, <br>offsetTop: self.container.offsetHeight - self.mask.offsetHeight <br>}, <br>//マスク左 <br>left = clientX - self.コンテナ .offsetLeft - self.mask.offsetWidth/2, <br>//マスク トップ <br>top = clientY - self.container.offsetTop - self.mask.offsetHeight/2; <br>if(left left = 0; <br>}else if(left> maxrange.offsetLeft) { <br>left = maxrange.offsetLeft; <br>} <br>if(top < 0) { <BR>top = 0; <BR>}else if(top > maxrange.offsetTop){ <br>top = maxrange.offsetTop; <br>//alert(maxrange.offsetTop); left / maxrange.offsetLeft; <br>rate.top = トップ / maxrange.offsetTop; <br>self.mask.style.left = left 'px'; ; <br>self.bigimg.style.left = -rate.left * (self.bigimg.offsetWidth - self.bigContainer.offsetWidth) "px"; <br>self.bigimg.style.top = -rate.top * ( self.bigimg.offsetHeight - self.bigContainer.offsetHeight) "px"; <br>}, <br>_bind: function(){ <br>var self = this; <br>self.container.onmouseover = function( e ){ <br>e = e || <br>var target = e.srcElement; <br>this.visible = true ; <br>}; <br>self.container.onmouseout = function(e){ <br>e = e || <br>var target = e.srcElement; self .display("none"); <br>this.visible = false; <br>self.container.onmousemove = function(e){ <br>e = e || 🎜 >if(!this.visible )return;//要素サイズの計算エラーを防ぐ<br>self.zoom(e.clientX, e.clientY) <br>} <br>}; > function get(id){ <br>return document.getElementById(id) <br>} <br>var elements = { <br>マスク: get("m"), <br>コンテナ: get("p1" ) 、<br>originimg: get("z1")、<br>bigContainer: get("p2")、<br>bigimg: get("z2")、<br>eventproxy: get("eventproxy") <br>}; <br>varzoomer(elements); <br></script> < ;/html>

ホットAIツール

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

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

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

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

人気の記事

ホットツール

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

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

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

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

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

ホットトピック









JavaScript で画像の拡大鏡効果を実現するにはどうすればよいですか? Web デザインでは、詳細な商品画像を表示するために画像拡大鏡効果がよく使用されます。マウスを画像上に置くと、マウスの位置に拡大レンズが表示され、画像の一部が拡大され、詳細がより鮮明に表示されます。この記事では、JavaScript を使用して画像の拡大鏡効果を実現する方法とコード例を紹介します。 1. HTML 構造 まず、虫眼鏡を使用したページ レイアウトを作成する必要があります。 HTML テキスト内

HTML5 で虫眼鏡機能を実装する方法: 1. HTML サンプル ファイルを作成する; 2. html5 Canvas タグを使用して画像を初期化する; 3. Canvas オブジェクトと画像オブジェクトを取得する; 4. 「関数drawAnchor」などのメソッドで選択範囲を選択する() {...}" 領域を拡大し、2 つの領域の中心点が一致するように元の画像上に描画します。

Vue で画像のスケーリングと虫眼鏡効果を実装するにはどうすればよいですか? Web テクノロジーの継続的な発展に伴い、Web サイト上の画像の表示効果に対するユーザーの要求はますます高まっています。その中でも、画像のズームと虫眼鏡効果は比較的一般的な要件です。 Vueでは画像の拡大縮小や虫眼鏡の効果を比較的簡単に実装することができますので、次に具体的な実装方法を詳しく紹介していきます。 1. 基本的な方法 まず、基本的な画像の拡大縮小効果を実現する方法を見てみましょう。実装方法は簡単で、Vueの組み込み命令を利用するだけです。

CSS を使用して虫眼鏡効果を実装するためのヒントと方法 要約: CSS は Web デザインにおいて重要な役割を果たしており、テキストや画像のスタイルを制御するだけでなく、クールな特殊効果も実現できます。この記事では、CSS を使用して虫眼鏡効果を実装する方法と、具体的なコード例を紹介します。 1. 準備 開始する前に、いくつかの画像リソースと基本的な HTML 構造が必要です。 <!DOCTYPEhtml><html><head>

win11 システムには多くの包括的な機能があり、ユーザーに異なる使用体験を提供しますが、多くのユーザーは win11 虫眼鏡 150 の操作方法を知りたいと思っています。ユーザーは、スタート アイコンの下にある [設定] を直接クリックし、操作する補助オプションを選択できます。このサイトでは、win11の拡大・縮小用の虫眼鏡ショートカットキーを共有する方法をユーザーに丁寧に紹介します。 Win11 拡大鏡ズーム ショートカット キー共有ユーザーは、コンピューターのデスクトップの下のタスクバーにスタート アイコンを簡単に見つけることができます。クリックすると、スタート タブがポップアップ表示され、設定アイコンを選択して設定インターフェイスに入ります。 3. 次に、ユーザーは右側のページで画像セクションを見つけて虫眼鏡オプションをクリックすると、新しいページが開きます。 5.

Windows 11 で虫眼鏡ツールを使用する方法 PC とモニターでは、画面上のテキストやオブジェクトを俯瞰で見ることができない場合は、虫眼鏡を使用する必要があります。拡大鏡を起動するには、次の手順を実行します。 Windows キーを押し、拡大鏡を検索し、上位の結果を選択します。拡大鏡ユーティリティを開くと、コントロールを備えた小さなバーが表示されます。項目を拡大したい場合は、プラスボタンをクリックします。虫眼鏡を使用すると、テキストやその他のオブジェクトが拡大されます。ズームを小さくするには、マイナス ボタンをクリックします。見やすくする必要があるものを拡大または縮小できます。虫眼鏡には読み取りオプションがあることも注目に値します。再生ボタンをクリックすると、システムのスピーカーまたは接続されたヘッドフォンを通じてテキストが読み上げられます。それはあなたのために大声で話すことができます

Vue を使用して画像の虫眼鏡効果を実現する方法 はじめに: 画像の虫眼鏡効果は、一般的な Web ページのインタラクティブな効果で、画像の上にマウスを置くと、画像が拡大され、拡大された部分の詳細が表示されます。 。この記事では、Vue フレームワークを使用して画像の拡大鏡効果を実現する方法を紹介し、参考として具体的なコード例を示します。 1. 要件分析: Vue プロジェクトに画像の拡大鏡効果を実装する必要があります。ユーザーが画像の上にマウスを置くと、画像が拡大され、拡大された部分の詳細が表示されます。具体的には以下の機能を実現する必要があります

Vue を使用して画像拡大鏡効果を実装する方法 はじめに: インターネット技術の継続的な発展に伴い、画像は私たちの日常生活においてますます重要な役割を果たしています。ユーザーエクスペリエンスと視覚効果を向上させるために、画像拡大鏡効果はWebデザインで広く使用されています。この記事では、Vue フレームワークを使用して単純な画像の虫眼鏡効果を実装する方法と、具体的なコード例を紹介します。 1. 準備: 開始する前に、Vue フレームワークが正しくインストールされ、Vue プロジェクトが作成されていることを確認してください。 2. コンポーネント設計:
