JavaScript は、シンプルな虫眼鏡の最も完全なコード分析を実装します (ES5)

JavaScript は、シンプルな虫眼鏡の最も完全なコード分析を実装します (ES5)

この記事では、参考までに、シンプルな虫眼鏡を実装するためのJavaScriptの具体的なコードを紹介します。具体的な内容は次のとおりです。

完全なコード:

<!DOCTYPE html>
<html>
<ヘッド>
    <メタ文字セット="UTF-8">
    <title>ES5 拡大鏡</title>
    <スタイル>
        。箱 {
            幅: 170ピクセル;
            高さ: 180ピクセル;
            マージン: 100px 200px;
            境界線: 1px 実線 #ccc;
            位置: 相対的;
        }
        。小さい {
            位置: 相対的;
        }
        。大きい {
            幅: 300ピクセル;
            高さ: 320px;
            位置: 絶対;
            上: 30px;
            左: 220px;
            オーバーフロー: 非表示;
            境界線: 1px 実線 #ccc;
            表示: なし;
        }
        。マスク {
            幅: 100ピクセル;
            高さ: 100px;
            背景: rgba(255,255,0,0.3);
            位置: 絶対;
            上: 0;
            左: 0;
            カーソル: 移動;
            表示: なし;
        }
        .bigimg{
            位置: 絶対;
            左: 0;
            上: 0;
        }
    </スタイル>
</head>
<本文>
    <div class="box" id="box">
        <div class="small">
            <img src="img/shirt_1.jpg" alt="画像"/>
            <div class="mask"></div>
        </div>
        <div class="big">
            <img src="img/shirt_1_big.jpg" alt="画像"/>
        </div>
    </div>
</本文>
<スクリプト>
 var box = document.getElementById('box');
 var small = box.children[0];//小さい画像用のボックス var big = box.children[1];//拡大画像用のボックス var mask = small.children[1];//半透明のマウスがボックスに沿って動きます var bigImage = big.children[0];//大きな画像 small.onmouseover = function(event){
     big.style.display = 'ブロック';
     mask.style.display = 'ブロック';
 }
 small.onmouseout = 関数(){
     big.style.display = 'なし';
     マスクスタイル表示 = 'なし';
 }
 //イベントを移動します。マスクの位置はサンプルに相対的であることに注意してください。
 small.onmousemove = 関数(イベント){
     var event = event || window.event; //イベントオブジェクト // console.log(this.offsetLeft); //0、offsetLeft によって返される距離は、配置された親の左の距離であることに注意してください var x = event.clientX-this.offsetParent.offsetLeft-mask.offsetWidth/2; //ここでは小さい offsetLeft は使用できません。obj offsetLeft を使用してください
     var y = event.clientY-this.offsetParent.offsetTop-mask.offsetHeight/2;
     // 半透明のボックスを境界外に制限する if (x < 0) {
         0 の場合
     }そうでない場合、(x > small.offsetWidth - mask.offsetWidth){
         x = small.offsetWidth - mask.offsetWidth;
     }
     y < 0 の場合{
         y = 0;
     }そうでない場合(y > small.offsetHeight - mask.offsetHeight){
         y = small.offsetHeight - mask.offsetHeight;
     }
     mask.style.left = x + "px";
     マスクスタイルのトップ = y + "px";
     // 大きな画像を拡大します bigImage.style.left = -x*big.offsetWidth/small.offsetWidth + 'px';
     bigImage.style.top = -y*big.offsetHeight/small.offsetHeight + 'px';
     //big.offsetWidth/small.offsetWidth は拡大率です //マウスは小さい画像の場合は下に、大きい画像の場合は上に移動するため、負の数が使用されます}
</スクリプト>
</html>

写真:

以上がこの記事の全内容です。皆様の勉強のお役に立てれば幸いです。また、123WORDPRESS.COM を応援していただければ幸いです。

以下もご興味があるかもしれません:
  • jsを使用してシンプルな虫眼鏡効果を実現します
  • jsはショッピングサイトの虫眼鏡機能を実現します
  • js を使ってシンプルな虫眼鏡効果を実現
  • 虫眼鏡コンポーネントのネイティブ js 実装
  • js 虫眼鏡拡大画像効果
  • 虫眼鏡の効果を実現するために js を使用する簡単な例
  • 魔法のJavascript画像拡大鏡
  • ネイティブ js で記述された虫眼鏡効果
  • 虫眼鏡アイコンを使用した画像拡大鏡 jquery.jqzoom.js の使用例
  • 画像拡大鏡効果のJSバージョン

<<:  docker nginxコンテナの起動とローカルへのマウントの詳細な説明

>>:  MySQL における SQL ページングクエリのいくつかの実装方法と利点と欠点

推薦する

Jenkins を使用した Vue プロジェクトのワンクリック パッケージングと公開の実装

目次Jenkinsのインストールインストールポート番号を変更します(デフォルトのポートは8080です...

WeChatアプレットはふるいを振る効果を実現

この記事では、WeChatアプレットの具体的なコードを参考までに共有します。具体的な内容は次のとおり...

ウェブページのフラッシュアニメーションが表示されない問題の解決策

<br />解決手順は次のとおりです。スタート -> 実行 -> reged...

vue3を使用して人間と猫のコミュニケーションアプレットを実装する

目次序文プロジェクトを初期化するデザインコードの実装オンデマンドロードオーディオを再生録音長押しイベ...

CentOS 7 で RPM パッケージを使用して MySQL 5.7.9 をインストールするチュートリアル

MySQL 5.7.9 のインストールチュートリアルを録画してみんなと共有しましょう環境の紹介:オペ...

MySQLの保存場所を新しいディスクに移行する方法

1. 新しいディスクを準備し、現在のルートパーティションと同じファイルシステムでフォーマットし、ディ...

非常に実用的なMySQL関数の包括的な概要、詳細な例の分析チュートリアル

目次1. MySQLの関数の説明2. 単行関数の分類3. キャラクター機能4. 数学関数5. 日付と...

Robots.txtの詳細な紹介

Robots.txt はプレーンテキスト ファイルであり、Web サイト管理者は、ロボットによるアク...

VMware は Centos7 システムの PXE+kickstart 無人インストールの詳細なプロセスを実装します

目次PXEはサーバーの無人バッチ展開を実装します1. PXEの概要1.1 PXEとは何か1.2 キッ...

W3Cチュートリアル(1):W3Cを理解する

1994 年に設立された組織である W3C は、共通プロトコルの開発を促進し、それらの相互運用性を確...

MySQL インデックス使用状況監視スキル (収集する価値あり!)

概要リレーショナル データベースでは、インデックスは、データベース テーブル内の 1 つ以上の列の値...

MySQL クエリの重複データ (重複データを削除し、ID が最も小さいデータのみを保持します)

開発の背景:最近、私はバッチ データを MySQL データベースにインポートする機能に取り組んでいま...

MySQL GTID の総合概要

目次01 GTIDの紹介02 GTIDの仕組み03 GTIDの利点と欠点04 テスト環境構築05 テ...

Nginx でファイル ホットリンク保護サービスを構築する方法を学ぶ例

序文多くのサイトが、ポイントやゴールドコインなど、情報のダウンロードに料金を請求していることは誰もが...

グリーンスタイルのウェブデザイン作品18点の最新コレクション

トイ・ストーリー3 オンラインマーケティングウェブサイトゼンモバイル鉄から鉄へスプラウトファンドバー...