JavaScript が Taobao の虫眼鏡効果を模倣

JavaScript が Taobao の虫眼鏡効果を模倣

この記事では、淘宝虫眼鏡効果を実現するためのJavaScriptの具体的なコードを参考までに紹介します。具体的な内容は次のとおりです。

HTMLコード

 <div class="サムネイル">
        <img src="./img/12-1Z930152149 (2).jpg" alt="">
        <div class="拡大鏡"></div>
    </div>
    <div class="オリジナル">
        <img src="./img/12-1Z930152149 (2).jpg" alt="">
    </div>
<script src="./index.js"></script>

CSSコード

*{
            マージン: 0;
            パディング: 0;
        }
        .サムネイル、.オリジナル{
            幅: 400ピクセル;
            高さ: 400px;
            境界線: 1px 実線の赤;
            位置: 絶対;
        }
        。オリジナル{
            左: 450ピクセル;
            オーバーフロー: 非表示;
            表示: なし;
        }
        .サムネイル>画像{
            幅: 400ピクセル;
        }
        .オリジナル>画像{
            幅: 800ピクセル;
            位置: 絶対;
        }
        .拡大鏡{
            カーソル: 移動;
            幅: 200ピクセル;
            高さ: 200px;
            背景色:rgba(206, 198, 198, 0.5);
            位置: 絶対;
            上: 0;
            左: 0;
            表示: なし;
            
        }

jsコード

// サムネイル サムネイル // オリジナル オリジナル画像 // 拡大鏡 拡大鏡 $(".thumbnail").mouseover(function(){
    $(".拡大鏡").表示()
    $(".オリジナル").表示()
})
$(".thumbnail").mousemove(function(ev){
    // コンソール.log(ev)
    // ページに対するマウスの xy 座標 var mx = ev.pageX;
    var my =ev.pageY;
    
    var tx = mx - $(".thumbnail").offset().left
    var ty = my - $(".thumbnail").offset().top


    var l = tx -$(".magnifier").width()/2;
    var t = ty -$(".magnifier").height()/2;

    var maxX = $(".thumbnail").width() - $(".magnifier").width();
    var maxY = $(".thumbnail").height() - $(".magnifier").height()

    // 境界処理 if( l >maxX){
        l = 最大X
    }
    if(t >maxY){
        t = 最大Y
    }
    もし(l <0){
        0 = 0 です
    }
    t<0の場合{
        t=0
    }

    //虫眼鏡の位置 $(".magnifier").css({
        左: l +"px",
        上: t + "px"
    })

    //元の画像の場所$(".original >img").css({
        左:-l*2 +"px",
        上:-t*2 +"px"
    })
})
// マウスが元の画像から離れると虫眼鏡を非表示にします$(".thumbnail").mouseout(function(){
    $(".拡大鏡").非表示();
    $(".オリジナル").hide();

})

効果:

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

以下もご興味があるかもしれません:
  • Javascript サンプル プロジェクトでの虫眼鏡効果の実装プロセス
  • JavaScript で虫眼鏡の特殊効果を実現
  • JavaScript が Jingdong の虫眼鏡の特殊効果を模倣
  • 虫眼鏡ケースのJavaScriptオブジェクト指向実装
  • JavaScript が Jingdong の虫眼鏡効果を模倣
  • 虫眼鏡効果を実現するJavaScript
  • js で虫眼鏡効果を実現するためのアイデアとコード
  • 虫眼鏡の詳細のJavaScript実装

<<:  CSSを使用して中央に固定された2つの列と適応型列を実現する方法

>>:  Docker Machineの詳細な説明

推薦する

Webデザインにおけるフォームデザインテクニックのまとめ

「脳が多数の領域間の関係を処理できるように、入力は論理的なグループに分割する必要があります。」 – ...

トップ 10 Js 画像処理ライブラリ

目次導入1. 異食症2. レナ3. コンプレッサー4. ファブリック5. ぼかす6. 画像を結合する...

Dockerデータストレージの概要

この記事を読む前に、ボリューム、バインドマウント、tmpfs マウントの基本を理解しておいてください...

JavaScript スコープチェーンの基本原理のグラフィカルな説明

目次序文範囲1. スコープとは何ですか? 2. [[スコープ]] プロパティ3. スコープチェーン4...

MySQL count(1)、count(*)、count(field)の違い

目次1. COUNTの初見2. COUNT(フィールド)、COUNT(定数)、COUNT(*)の違い...

nginx と Tencent Cloud の無料証明書を使用して https を作成する方法

httpsを取得する方法を勉強しています。最近、Tencent Cloud が提供する無料の SSL...

CSSはletter-spacingプロパティを通じて単語間の間隔を制御します。

letter-spacing プロパティ: 文字間のスペース (文字間隔) を増減します。このプロ...

W3C チュートリアル (8): W3C XML スキーマのアクティビティ

XML スキーマは、DTD に代わる XML ベースのものです。 XML スキーマは、DTD に代わ...

Dockerがsudo操作を使用する必要がある問題を解決する

手順は以下のとおりです1. dockerグループを作成する: sudo groupadd docke...

SWFObjectを使用すると、HTMLにFlashを挿入する際のブラウザ互換性の問題を完全に解決できます。

一緒に学びましょう1. 伝統的な方法コードをコピーコードは次のとおりです。 <object c...

MySQL のデッドロックとデータベースおよびテーブル シャーディングの問題の詳細な説明

MySQL 運用上の問題点を記録します。ビジネスシナリオと問題の説明外部インターフェースをリクエスト...

CSS スタイルにおける中国語フォントのフォントファミリーに対応する英語名の詳細な説明

ソングティ: SimSun太字: SimHeiマイクロソフト YaHei: マイクロソフト YaHe...

JavaScript の useRef と useState の紹介

目次1. useStateフック2. useRefフック3. useRef と useState 4...

Vue で Excel インポート機能を実装する詳細な手順

1. フロントエンド主導の実装手順最初のステップは、ページのインポートボタンをクリックしてExcel...

Vue カスタム オプション時間カレンダー コンポーネント

この記事の例では、参考のためにvueカスタムオプションタイムカレンダーコンポーネントの具体的なコード...