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の詳細な説明

推薦する

MySQL インストール図の概要

MySQL 5.5 のインストールと設定方法のグラフィックチュートリアルMySQL 5.5 のインス...

CSSを使用してHTMLテキストボックス内のテキストの垂直方向の中央を制御する

Text の height 属性が定義されている場合、Text に入力されたテキストは垂直方向に中央...

MySQL 最適化 Zabbix パーティション最適化

zabbix を利用する上での最大のボトルネックはデータベースです。zabbix のデータストレージ...

Vueはツリー構造の追加、削除、変更、チェックのサンプルコードを実装します

実は多くの会社がユーザー権限ツリーに似た機能を持っています。最近、追加、削除、修正のツリー構造を書き...

Reactマウスの複数選択機能の設定方法

一般的に、リストには選択機能があり、単一選択、二重選択、複数選択が非常に一般的です。カスタム ループ...

CSS の ::before と ::after 疑似要素について知らないこと

CSS には、一般的には使用されない 2 つの疑似クラス、before と :after があります...

ウェブデザインとは何か

<br />元の記事: http://www.alistapart.com/articl...

Vueのプラグインの仕組みとインストールの詳細を深く理解する

序文: Vue を使用する場合、多くの場合、カスタム プラグインをいくつか使用して記述し、 Vue....

VSCode+CMake+Clang+GCC 環境構築チュートリアル (Win10 の場合)

大学院入試に備えて、C/C++ を使って基本的なデータ構造とアルゴリズムを実装する予定です。アルゴリ...

MySQL シリーズ 6 のユーザーと認証

目次チュートリアルシリーズ1. ユーザー管理1. ユーザーアカウント2. アカウントの追加と削除3....

IE6 での背景画像キャッシュ

IE6 での CSS 背景画像のちらつきバグ (IE6 の背景画像キャッシュの問題) IE6 は、背...

Js でオブジェクトのディープ オブジェクトを安全に取得するメソッドの例

目次序文文章パラメータ例Lodash 実装:トーキー機能: castPath関数: stringTo...

大きな MySQL テーブルに列を追加する方法

質問は https://www.zhihu.com/question/440231149 から参照さ...

Linux でディスク IO を表示し、読み取りと書き込みで高い IO を占有するプロセスを見つけます。

背景 - オンラインアラートオンライン サーバーがアラームを発し、ディスク使用率 disk.util...

Podmanはコンテナを自動的に起動し、Dockerと比較します

目次1. podmanの紹介2. Dockerと比較した利点3. 互換性4. バックグラウンド サー...