製品の拡大鏡効果を実現する JavaScript

製品の拡大鏡効果を実現する JavaScript

この記事では、参考までに、製品拡大鏡を実装するための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 を応援していただければ幸いです。

以下もご興味があるかもしれません:
  • js 虫眼鏡拡大画像効果
  • 虫眼鏡の効果を実現するために js を使用する簡単な例
  • JavaScript 画像拡大鏡効果コード [コードは比較的シンプルです]
  • 魔法のJavascript画像拡大鏡
  • JavaScript 画像拡大鏡(ドラッグ アンド ドロップ、ズーム効果)
  • ネイティブ js で記述された虫眼鏡効果
  • 電子商取引サイトでよく使用される js 虫眼鏡効果
  • JavaScript 画像切り取り効果(虫眼鏡)
  • 虫眼鏡アイコンを使用した画像拡大鏡 jquery.jqzoom.js の使用例
  • js画像拡大鏡効果の実装方法を詳しく解説

<<:  MySQL スロークエリログの有効化と設定

>>:  使用場所によって混乱しやすいXHTMLタグ

推薦する

MySQLでユーザーを作成し、権限を管理する方法

1. ユーザーとパスワードの作成方法1. MySQLデータベースに入る mysql> mysq...

jQuery を使用して、iframe 下の無効なページ アンカー ポイントの問題を修正する

適用シナリオ: iframe ページにスクロール バーがなく、親ウィンドウにスクロール バーが表示さ...

Docker コンテナのマウントディレクトリ操作の表示

Dockerコンテナのマウントディレクトリ情報のみを表示する docker 検査 --format ...

MySQLとNavicatプレミアムのインストールと設定の詳細な手順

前提条件: Mac、zsh がインストールされ、bash のときに mysql がダウンロードされ、...

VMware Workstation のインストール Linux システム

始める段階から初心者になるまで、Linux オペレーティング システムは不可欠です。最初のステップは...

Vue ページレンダリングにおけるキーの適用例チュートリアル

導入フロントエンドプロジェクトの開発プロセスでは、el-table によって表示される結果列がコンポ...

CSS を使用して物流の進行状況のスタイルを実装するためのサンプルコード

効果: CSS スタイル: <スタイル タイプ="text/css">...

NginxとLuaによるグレースケールリリースの実装

memcachedをインストールする yum インストール -y memcached #memcac...

よく使われる Docker コマンドと例の概要と分析

目次1. コンテナライフサイクル管理(1)ドッカー実行(2)スタート/ストップ/リスタート(3)ドッ...

地域のカスタムカラーのためのechars 3Dマップソリューション

目次質問伸ばす問題を解決する要約する質問プロジェクトの要件に従って、以下の州地図で個々の都市を(異な...

Centos7でmysql6の初期化インストールパスワードをインストールする方法

1. まずデータベースサーバーを停止しますサービスmysqld停止2.vim /etc/my.cnf...

CentOS 7.4 64 ビット版に MySQL 8.0 をインストールして設定するための詳細な手順

ステップ1: MySQL YUMソースを取得するMySQLの公式サイトにアクセスして、RPMパッケー...

新しい ECMAscript オブジェクト機能の紹介

目次1. オブジェクトのプロパティ1.1 属性表記2. プロパティ名を計算する3.オブジェクトメソッ...

docker compose を使ってワンクリックで分散構成センター Apollo を展開するプロセスの詳細な説明

導入分散について話すときは、分散構成センター、分散ログ、分散リンク トラッキングなどについて考える必...

Vue プロジェクトで TS (TypeScript) を使用するための入門チュートリアル

目次1. Typescriptの紹介2. 設定ファイル webpack 設定3. プロジェクトに.t...