この記事では、参考までに、製品拡大鏡を実装するためのJavaScriptの具体的なコードを紹介します。具体的な内容は次のとおりです。 HTML+CSS部分: <スタイル> 。小さい{ 位置: 相対的; 幅: 400ピクセル; 高さ: 450px; 境界線: 1px 実線 #ccc; } .small画像{ 幅: 100%; 高さ: 100%; } .small .mask{ 位置: 絶対; 左: 0; 上: 0; 幅: 300ピクセル; 高さ: 300px; 背景色: rgba(0, 255, 0, .2); } 。大きい{ 位置: 絶対; 左: 450ピクセル; 上: 8px; 幅: 550ピクセル; 高さ: 550px; 境界線: 1px 実線 #ccc; オーバーフロー: 非表示; 表示: なし; } .bigimg{ 位置: 絶対; 左: 0; 上: 0; } </スタイル> <本文> <div class="small"> <img src="./img/small.jpg"> <div class="mask"></div> </div> <div class="big"> <img src="./img/big.jpg"> </div> </本文> JS部分: <スクリプト> var small = document.querySelector('.small'); var マスク = document.querySelector('.mask'); var big = document.querySelector('.big'); var bigImg=document.querySelector('.big>img'); // 大きな画像の幅と高さを取得します。var bigWidth=bigImg.offsetWidth; var bigHeight=bigImg.offsetHeight; // 関数move(e){ var x = e.pageX - this.offsetLeft; var y = e.pageY - this.offsetTop; コンソールログ(x,y); // マスクの位置を移動します var maskHeight = mask.offsetHeight/2; var maskWidth = mask.offsetWidth/2; mask.style.left = x - maskWidth+'px'; mask.style.top = y - maskHeight + 'px'; // マスクの移動範囲を制限する // console.log('mask.offsetTop',mask.offsetTop); // console.log('mask.offsetLeft',mask.offsetLeft); var maxLeft=small.offsetWidth - mask.offsetWidth; if(mask.offsetTop<0){ マスクスタイルトップ=0; } if(mask.offsetLeft > small.offsetWidth - mask.offsetWidth){ mask.style.left =maxLeft+'px'; } if(mask.offsetLeft<0){ マスクスタイル左 = 0; } if(mask.offsetTop > small.offsetHeight - mask.offsetHeight){ mask.style.top = small.offsetHeight - mask.offsetHeight + 'px'; } // bigImg 大きな画像 大きなボックス 大きな画像の移動 // (bigImg.offsetWidth - big.offsetWidth) / (samll.offsetWidtth - mask.offsetWidth) // 大きな画像の最大移動距離 = - マスクの移動距離 * 大きな画像の最大距離 / マスクの最大移動距離 bigImg.style.left = -mask.offsetLeft*(bigImg.offsetWidth - big.offsetWidth) / (small.offsetWidth - mask.offsetWidth)+"px"; bigImg.style.top = -mask.offsetTop*(bigImg.offsetHeight - big.offsetHeight) / (small.offsetHeight - mask.offsetHeight)+"px"; } // 小さい画像上のマスクを移動しますsmall.addEventListener('mousemove',move); small.addEventListener('mouseover',function(){ big.style.display='ブロック'; mask.style.display='ブロック'; }) small.addEventListener('mouseout',function(){ big.style.display='なし'; マスクスタイル表示='なし'; }) </スクリプト> 効果のデモンストレーション: 以上がこの記事の全内容です。皆様の勉強のお役に立てれば幸いです。また、123WORDPRESS.COM を応援していただければ幸いです。 以下もご興味があるかもしれません:
|
序文gdb は Linux で非常に便利なデバッグ ツールです。コマンドライン モードのデバッグ ツ...
MTR は Mini-Transaction の略です。名前が示すように、これは「最小のトランザクシ...
序文前回の面接では、実行計画について質問されたとき、多くの人がそれが何なのか知りませんでした。実行計...
目次1. コンセプトメモリ管理モード住所種別分類例: 2. ページ管理x86 アーキテクチャ 32 ...
目次1 つの Redis 設定ファイル2 Dockerコマンドの開始3 docker-compose...
この記事では、GobangゲームのWebバージョンを実装するためのJavaScriptの具体的なコー...
現在多くの携帯電話には、下部のタブバーを切り替える機能があります。私も最近、同様の機能を見つけました...
HTML5 は HTML 標準の次のバージョンです。ますます多くのプログラマーが、Web サイトの構...
目次1. 通常どのようなコンテンツを処理する必要があるか2. 基本的な考え方3. 具体的な実践の詳細...
序文この記事は Meituan の大物によって書かれました。とても素晴らしいので、皆さんと共有したい...
背景会社のサブプロジェクトが増えるにつれて、さまざまなサイズのプロジェクトが10個以上になります(バ...
改訂版のプレビューこの記事は 3 日前に書かれたものです。先輩の同僚から改訂の提案をいくつかいただき...
1. Windows Server 2019 のインストールVmware に Windows Se...
この記事では、divのドラッグ可能な高さを実現するためのVueの具体的なコードを参考までに共有します...
この記事では、CSSの透明な境界線の背景クリップの素晴らしい使い方を主に紹介し、みんなと共有し、自分...