jsはショッピングサイトの虫眼鏡機能を実現します

jsはショッピングサイトの虫眼鏡機能を実現します

この記事では、ショッピングサイトの虫眼鏡機能を実現するためのjsの具体的なコードを紹介します。具体的な内容は次のとおりです。

まず効果図を見てみましょう:

まずレイアウトですが、左側にマウス移動フレームを含む小さなフレーム、右側に拡大フレームがあります。

<div class="box">
        <div class="small">
            <img src="small3.jpg" alt="">
            <div class="move"></div>
        </div>
        <div class="big">
            <img src="big3.jpg" alt="">
        </div>
</div>

CSSを書く

。小さい{
    位置: 相対的;
    フロート: 左;
    幅: 450ピクセル;
    高さ: 450px;
    境界線:1px実線 #000;
}
.small .move{
    位置: 絶対;
    トップ:0;
    幅: 300ピクセル;
    高さ: 300px;
    背景色: rgba(0,0,0,0.4);
    カーソル:移動;
    表示: なし;
}
。大きい{
    位置: 相対的;
    フロート: 左;
    幅: 540ピクセル;
    高さ: 540px;
    左マージン: 20px;
    オーバーフロー: 非表示;
    境界線:1px実線 #000;
    表示: なし;
}
.bigimg{
    位置: 絶対;
    トップ:0;
    左: 0;
}

js部分:

var box=document.getElementsByClassName('box')[0],small=box.getElementsByClassName('small')[0],move=small.getElementsByClassName('move')[0],smallImg=small.getElementsByTagName('img')[0],big=box.getElementsByClassName('big')[0],bigImg=big.getElementsByTagName('img')[0];
    //まず、必要な要素をすべて取得します。small.onmouseover=function(){
        move.style.display='ブロック';
        big.style.display="ブロック";
    };
    small.onmouseout=関数(){
        移動スタイルの表示='なし';
        big.style.display="なし";
    };
    small.onmousemove=関数(e){
        e=e||window.event; //互換性に関する考慮事項 var x=e.clientX-smallImg.getBoundingClientRect().left-move.offsetWidth/2;
        var y=e.clientY-smallImg.getBoundingClientRect().top-move.offsetHeight/2;
        x<0の場合{
            0 の場合
        }
        if(x>smallImg.offsetWidth-move.offsetWidth){
            x = smallImg.offsetWidth-move.offsetWidth;
        }
        y<0の場合{
            y=0;
        }
        if(y>smallImg.offsetHeight-move.offsetHeight){
            y = smallImg.offsetHeight - move.offsetHeight;
        }
        move.style.left=x+"px";
        移動スタイルトップ=y+"px";
        //マウスの動きに合わせて左に移動するブロックを実装するコード var scale = bigImg.offsetWidth/smallImg.offsetWidth;
        //比率に応じて拡大します bigImg.style.left='-'+x*scale+'px';
        // 画像を左と上に移動する必要があるため、マイナス記号を追加する必要があります bigImg.style.top='-'+y*scale+'px';
    }

虫眼鏡効果を実現!

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

以下もご興味があるかもしれません:
  • 画像拡大鏡効果のJSバージョン
  • jsを使用してシンプルな虫眼鏡効果を実現します
  • js を使ってシンプルな虫眼鏡効果を実現
  • js 虫眼鏡拡大画像効果
  • 虫眼鏡の効果を実現するために js を使用する簡単な例
  • JavaScript 画像拡大鏡効果コード [コードは比較的シンプルです]
  • 魔法のJavascript画像拡大鏡
  • JavaScript 画像拡大鏡(ドラッグ アンド ドロップ、ズーム効果)
  • ネイティブ js で記述された虫眼鏡効果
  • シンプルな虫眼鏡効果を実現するJavaScript

<<:  MySQL マルチテーブル共同クエリ操作例の分析

>>:  Windows 10 でカスタムドメイン名をバインドするように Hexo と GitHub を構成する方法

推薦する

HTML テーブルに複雑なテーブル ヘッダーを実装するためのサンプル コード

複雑な表を作成するには HTML を使用します。複雑なテーブルでは通常、td の rowspan 属...

意外と知らないLinuxのSSHコマンドの使い方7選を徹底解説

システム管理者は複数のサーバーを同時に管理する場合があり、これらのサーバーは異なる場所に配置されてい...

測定画像HTTPリクエスト

一般的なブラウザでテスト ページを開き、Fiddler で http リクエストを表示してください。...

vue3.0+vant3.0の迅速なプロジェクト構築の実装

目次1. プロジェクトの構築2. Vue3 体験 + Vant 紹介2020年9月18日にvue.j...

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

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

Docker データ管理 (データ ボリュームとデータ ボリューム コンテナー) の詳細な説明

実稼働環境で Docker を使用する場合、多くの場合、データを複数のコンテナ間で永続化または共有す...

Linux コマンドにおける Ctrl+z、Ctrl+c、Ctrl+d の違いと使い方

Linux で Ctrl+c、Ctrl+d、Ctrl+z はどういう意味ですか? Ctrl+c と ...

VMware15 の CentOS7 インストールの詳細なプロセスとよくある問題 (画像とテキスト)

1. インストールパッケージの準備VMware-player-15.0.4-12990004、非商...

コード例を通してページ置換アルゴリズムの原理を理解する

ページ置換アルゴリズム: 本質は、限られたメモリをワイヤレス プロセスに対応できるようにすることです...

このようなシェル スクリプトを使用して、多数の MySQL データベースを強制終了します (推奨)

朝早くに電話で起こされました。あるプロジェクトのデータベースがダウンしていて起動できないとのことでし...

Vue.jsはアイコンをクリックしてズームインし、

前回の記事では、Vue で画像の切り抜きや拡大・縮小、回転を実現する方法を紹介しました。今回は、アイ...

Vue はクリックフリップ効果を実現します

参考までに、vueを使用してクリックフリップエフェクトを簡単に実装します。具体的な内容は次のとおりで...

Ubuntu 18.04 に mysql5.7.23 をインストールするチュートリアル

この記事では、Ubuntu18.04にmysql5.7.23をインストールする具体的な方法を参考まで...

純粋な CSS 実装 (スクリプトなし) HTML コマンド スタイルのツールチップ テキスト プロンプト効果

実行プロセスを分析します。マウスをノードに移動して、ノードにツールチップ実装を開くための識別子 (...

MySQL マルチマスターと 1 スレーブのデータバックアップ方法のチュートリアル

概要いずれかのデータベースに対する操作は他のデータベースに自動的に適用され、2 つのデータベースのデ...